商務流程
一、 尋找客戶,確定網站開發意向。在與客戶交流的過程中,可能要向客戶展示以前實施的樣板項目,還可能要給客戶製作網站範例(圖片及文字說明)。
二、 簽定網站項目開發合約。客戶方預付一定數量的款項。
三、 項目實施完畢,客戶交付全部項目款。
需求分析
一、 進行客戶電腦應用水平調查。
二、 確定客戶方項目負責人員。
三、 召開使用者需求調研會議(最少一次)
參加會議人員:
客戶方:領導,客戶方項目負責人,業務代表,技術員等。
我方:商務人員,專案經理,技術人員(儘可能都參加)。
討論的內容及成果:以使用者需求為中心,共同討論,產生網站的欄目規劃(用樹形圖表示),標出哪些是靜態頁面,哪些是動態網頁面。制定網站的介面架構,包括首頁構圖,及各頁面間的鉤稽關係。這一步可能需要反覆迴圈迭代若干次,直到客戶滿意。
需求分析要考慮使用者的當前業務,還要適當考慮將來業務的擴充。需求分析記錄的資料必須可靠。
需求分析必須針對使用者的現實需求,既不能隱瞞技術細節,欺騙客戶,也不能產生"過度需求",無限偏離公司的技術力量甚至產生一些"不可能"的需求。
需求分析的成果就是《項目需求說明書》。
四、雙方對《項目需求說明書》確認後簽字,作為下一步開發的技術依據。簽字的目的是確保使用者需求在項目實施期間的穩定性。因為需求的大量更改,甚至"無限需求",會大量增加開發成本,最終延誤工期,還會影響項目品質。
開發流程及規範
Web 開發的分散性和互動性,決定了 Web 開發必須遵從一定的開發規範和技術約定,只有每個開發人員都按照一個共同的規範去設計、溝通、開發、測試、部署,才能保證整個Team Dev協調一致的工作,從而提高開發工作效率,提升工程項目品質。
一、 項目的角色劃分
如果不包括前、後期的市場推廣和產品銷售人員,Team Dev一般可以劃分為項目負責人、程式員、美工三個角色。
項目負責人在我們中國習慣稱為"專案經理",負責項目的人事協調、時間進度等安排,以及處理一些與項目相關的其它事宜。程式員主要負責項目的需求分析、策劃、設計、代碼編寫、網站整合、測試、部署等環節的工作。美工負責網站的介面設計、版面規劃,把握網站的整體風格。如果項目比較大,可以按照三種角色把人員進行分組。
角色劃分是Web項目技術分散性甚至地理分散性特點的客觀要求,分工的結果還可以明確工作責任,最終保證了項目的品質。分工帶來的負效應就是增加了團隊溝通、協調的成本,給項目帶來一定的風險。所以專案經理的協調能力顯得十分重要,程式開發人員和美工在項目開發的初期和後期,都必須有充分的交流,共同完成項目的規劃和測試、驗收。
二、 開發工具的選取
不象C/S結構程式開發,可以一門語言從頭到尾,你用Delphi,就是Delphi程式員,你用VC++,你就是VC程式員。B/S結構的Web開發工作,工具的選擇是一件痛苦的事情。從Windows到Linux,從IIS到 Apache,從J2EE到 .NET,從COM到.NET到EJB組件……還有 Asp、Asp.net、Jsp、Php、Perl、Javascript、Vbscript……
美工也輕鬆不了多少,什麼"網頁三劍客" "新網頁三劍客"、FrontPage、Photoshop、CorelDraw……誰都說自己是最強大的!
我們的經驗是,選用工具時最好是統一的,比如美工統一用DreamwaverMX製作網頁,程式員全部用文字編輯器書寫代碼。統一工具的好處是可以保持同一個項目文檔的一致性,便於開發人員的交流和文檔的儲存。
但是也不必刻意強求一致,比如美工可以使用任何自己熟悉的圖形處理軟體,只要最後能產生瀏覽器支援的圖片就可以了。正是Web開發工具的多樣性,才成就了今天互連網多姿多彩的局面。
只要程式員的純Html和 Javascript 代碼的功夫足夠過硬,就能勝任最後的網站整合工作。
三、 項目開發流程
如果項目真正談下來了,就需要正式確定前階段的需求分析,該補充的步驟必須補上。然後進行詳細的總體設計,其實也基本是前階段工作的重複和完善。
產生各欄目檔案夾的結構圖(一些公用檔案夾如images、scripts、 styles等需要固定存放,共同調用)。
然後由美工根據內容表現的需要,設計靜態網頁和其它動態網頁面介面架構,該切分的圖片要根據尺寸切割開來。給需要程式動態實現的頁面預留頁面空間。制定字型、字型大小、超級連結等CSS樣式等。
在美工設計頁面的同時,程式員著手開發背景程式代碼,做一些必要的測試。
美工介面完成後,由程式員添加程式碼,整合網站。
由項目組共同聯調測試,發現bug,完善一些具體的細節。
製作協助文檔、使用者操作手冊。向使用者交付必要的產品設計文檔。
然後進行網站部署、客戶培訓。
最後進入網站維護階段。這一階段也可以不包括在該項目中,而作為公司的服務內容。
以上的每一部都會產生一些階段性成果,專案經理需要及時進行監督、審核,發現問題及時糾正。
為了控制項目的進度,應當實施填寫"項目進度表"制度,即每天填寫工作日誌,記錄當天的工作細目和工作量,以及需要解決和已經解決的問題。
四、 一些技術規則
1, 資料庫命名規範(參考了"匈牙利命名法")
資料庫(Database):格式 [db]_[ desc]。
表(Table):格式 [tab]_[desc]。表名長度不能超過30個字元,單詞首寫字母大寫,多個單詞間不用串連符號。
欄位(Field or Column):格式f_[type]_[desc]。f:表明這是一個欄位名稱;type:可選,表明欄位類型,字元型為c,整型為i,邏輯型為b,貨幣類型為m,浮點型為f,日期型為d,時間型為t,二進位為bl。如果類型為字元型,可以省略。desc:對欄位屬性的有意義的描述,可以用英語單詞、單詞縮寫、漢語拼音、欄位實際含義的拼音縮寫等,單詞之間可以用單字首大寫軟分割(推薦),也可以用"_"隔開。舉例:
f_name (姓名)
f_c_ UserInfo 或 f_c_ User_Info
f_xm (姓名)
f_grp_id (組標識)
索引(Index):格式 [idx]_[desc]。
視圖(View):格式 [View]_[表A]_[表B]_[表C]…,其中View表示"視圖"。這個視圖由幾個表產生就用連字號"_"串連幾個表的名,如果表過多可以將表名適當簡化。
預存程序:格式 [sp]_[表名]_[存取過程名(縮寫)],比如sp_User_Delete。
觸發器(Trigger):格式 [trg]_[d][i[[u]_[desc]。trg 代表觸發器;d,i,u表明觸發器類型(Delete,Insert,Update)定義,書寫順序為d、i、u;desc是表的名稱,表明觸發器所在的表。
資料庫裝置(Database Device):格式 [dev]_[desc]。
約束(Constraint):格式 [cns]_[desc]。
2, SQL語句書寫規範
SQL語句中,SQL關鍵字全部大寫,其它的遵照"資料庫命名規範"。例如:
SELECT * FROM tabNewsInfo WHERE f_UserName=' ORDER BY f_i_autoid
3, 檔案夾命名規範
公用檔案夾:
/images 公用圖片
/styles 樣式表
/scripts 指令碼
/ftps 下載
/doc 網站相關素材、文檔
/readme.txt 網站說明文檔
/helps.htm 網站協助文檔
/mylogs.txt 網站維護記錄
其它欄目的命名,可以用拼音首字母簡稱,也可以用英文單詞。全部檔案夾的含義在readme.txt檔案中說明。
4,對象及變數命名規範
每個變數名必須先定義,再使用。在ASP檔案的最開頭添加語句可以強制變數定義。代碼塊必須採用縮排格式。每個函數前必須標明函數的功能、輸入參數、傳回值的相關資訊。
變數類型 縮寫首碼
String str 或 s
Integer Int
Date Dt
Object obj或 o
Boolean bol或 b
Byte Byt
Double Dbl
Error Err
Long Lng
Single Sng
5,繪圖物件約定
圖片的格式:最後產生 jpg,gif,png,swf 格式的圖形檔案
圖片的位元組大小:最大不能超過30k
圖片的尺寸:根據需要確定,最好使用小圖片,大的圖片必須切割成小圖片使用。
圖片的留白:圖片的邊界不能留白,圖片只包含有效色彩元素
6,媒體對象約定
流媒體的格式: asf,wmv,wma,rm,不建議使用 avi 格式的動畫檔案
7,頁面配置的基本約定
中文段落必須有2個漢字的縮排。字間距採用預設大小。行間距為16pt~20pt。文字布局必須留有"天""地""左""右",不能把版面佔滿。
頁面配置必須保持色彩平衡。注意上下、左右的呼應。注意頁面的整體協調。提倡畫面和文字的融合,而不是畫面和文字的明顯分離。
要按照設計廣告的要求來設計網頁頁面 - 特別是一些產品展示性的頁面。
五、 一些經驗和教訓
1,能用靜態網頁表現的內容,盡量不用程式碼動態實現。
2,設計階段,必須和使用者進行充分的交流,完全、準確的瞭解使用者的需求。既不能歪曲使用者的意思,也不能一味迎合使用者的非正當需求,也不能對自己沒有把握的技術甚至不可能實現的技術誇下海口。需求分析是一個溝通、交流、引導、教育、鬥爭、妥協的過程。需求分析結果要有文字資料存檔。
3,技術參數必須瞭解準確。比如使用者的軟體平台是linux系列,那你的系統就要考慮用Java或者 Php 加MySQL開發了,這時候你的ASP.NET技術就用不上了。
4,最好讓使用者對已經確定的需求內容簽字,蓋章。
5,任何交流,必須有書面記錄。對一些喜歡"健忘"-實際上是懶惰的開發人員,要求他必須每天花10分鐘寫工作日誌。
6,每個項目的有關文檔,全部、統一集中歸檔。