眾所周知蹂午,做軟件的目的就是要滿足客戶的需求,這個(gè)需求包括功能彬碱、觀豆胸、操作、時(shí)間及性能等各方面巷疼。那么晚胡,在軟件開發(fā)過(guò)程中那部分最重要呢,程序員說(shuō)“毋庸置疑嚼沿,我編寫的程序?qū)崿F(xiàn)了客戶提出的功能以及業(yè)務(wù)流程估盘,肯定我是最重要的”,美工說(shuō)“你開發(fā)的功能如果沒(méi)有我的頁(yè)面美化骡尽,是無(wú)法呈現(xiàn)給客戶的遣妥,要知道,很多客戶并不很了解內(nèi)部復(fù)雜的功能攀细,首先映入眼簾的就是界面的效果箫踩,就像人一樣,如果你不是美女谭贪,那么他看了你一眼之后境钟,就沒(méi)有想和你再繼續(xù)溝通和發(fā)展的積極性了”,測(cè)試聽了不高興了俭识,說(shuō)“漏洞百出的產(chǎn)品慨削,哪怕你外觀再漂亮,實(shí)現(xiàn)的功能再多套媚,也是不成熟的產(chǎn)品缚态,客戶是不會(huì)使用的〈战祝”眾說(shuō)紛紜猿规,各執(zhí)一詞。
以上所說(shuō)都很有道理宙橱,每個(gè)角色都是軟件成功必不可少的姨俩,每個(gè)人都好比是一塊積木蘸拔,只有組合起來(lái)才能搭成既美觀又穩(wěn)固的造型。
另一方面环葵,他們卻又都不是最重要的调窍。舉個(gè)例子,現(xiàn)在我家在進(jìn)行裝修张遭,木工邓萨、瓦工、油漆工都是南方的工人菊卷,有很好的手藝缔恳,干活也很細(xì)致,可是他們?cè)谑┕さ臅r(shí)候都要參考兩份文件洁闰,一是房屋結(jié)構(gòu)圖歉甚,二是裝修效果圖。沒(méi)有此文件扑眉,他們就無(wú)從下手纸泄,就是擁有再好的手藝,做出來(lái)的再漂亮腰素,到時(shí)候也會(huì)與房屋的實(shí)際效果存在偏差聘裁。
孫悟空三大白骨精,相信誰(shuí)都耳熟能詳弓千。里面有這樣一個(gè)場(chǎng)景衡便,孫悟空去化齋前,劃了一個(gè)圈计呈,將唐僧他們包在里面砰诵,只要他們?cè)谌锩妫筒粫?huì)有事捌显,如果出了圈就很危險(xiǎn)茁彭。這個(gè)圈,就是一個(gè)范圍扶歪、一個(gè)標(biāo)準(zhǔn)理肺。在這個(gè)圈里,你隨便折騰善镰,怎么折騰都行妹萨,但千萬(wàn)不要越界,否則后果不堪設(shè)想炫欺。
而在軟件開發(fā)中文檔就是那個(gè)圈乎完,它將項(xiàng)目開發(fā)所進(jìn)行的一切活動(dòng)都進(jìn)行詳細(xì)的定義,只要遵照這個(gè)文檔去開發(fā)品洛,那么最終的結(jié)果一定是八九不離十树姨。
文檔貫穿軟件工程的始終摩桶,從前期的項(xiàng)目準(zhǔn)備,中期的開發(fā)到后期的維護(hù)帽揪、培訓(xùn)硝清,無(wú)不以文檔作為工作的依據(jù)。那么在軟件項(xiàng)目中转晰,都包括哪些文檔呢芦拿,它們的作用又是什么呢,下面我將我的經(jīng)驗(yàn)分享給大家查邢。
<small>《可行性研究報(bào)告》:這是客戶在進(jìn)行項(xiàng)目調(diào)研階段所編寫的蔗崎,具有兩重意義,其一侠坎,指明項(xiàng)目的必要性和緊迫性蚁趁,并從業(yè)務(wù)角度闡述大概的功能需求,注意实胸,只是大概,可能與最后的結(jié)果有很大出入番官;其二庐完,最重要的一點(diǎn)就是為了要錢,向財(cái)政部要錢徘熔,將最終實(shí)現(xiàn)的功能寫得天花亂墜门躯,包括決策支持、全文檢索酷师、商業(yè)智能讶凉、遠(yuǎn)程報(bào)表等,但最后開發(fā)的可能僅僅是融合簡(jiǎn)單業(yè)務(wù)流程的信息輸入和輸出而已山孔,但這已無(wú)關(guān)緊要懂讯,最重要的是我要到了錢。但是嚴(yán)格來(lái)說(shuō)台颠,這不是項(xiàng)目組所需的文檔褐望,于軟件開發(fā)也意義不大。
《建設(shè)方案》:或者是《實(shí)施方案》串前,當(dāng)客戶從財(cái)政部申請(qǐng)到資金后瘫里,就要著手進(jìn)行詳細(xì)的調(diào)研和分析了,這里有兩種情況荡碾,其一谨读,客戶自己從各個(gè)產(chǎn)品廠家進(jìn)行相關(guān)的調(diào)研,進(jìn)行匯總后坛吁,編寫方案劳殖,這樣铐尚,聰明、細(xì)心的軟件公司就會(huì)從方案的技術(shù)環(huán)節(jié)闷尿,挖掘出客戶所選擇的產(chǎn)品塑径,最后和這個(gè)產(chǎn)品公司合作來(lái)中標(biāo);其二填具,讓和其關(guān)系很好的一家或兩家軟件公司(不會(huì)超過(guò)三家)編寫统舀,客戶進(jìn)行審核,客戶最后選擇了誰(shuí)的方案那么最后這個(gè)項(xiàng)目就是這家公司的劳景,這樣很多情況并不是公開招標(biāo)誉简。
《招標(biāo)書》:將《建設(shè)方案》或《實(shí)施方案》進(jìn)行摘取,并附帶上技術(shù)問(wèn)題以及招標(biāo)時(shí)的細(xì)節(jié)盟广、注意事項(xiàng)闷串,構(gòu)成《招標(biāo)書》,這個(gè)文件也是由客戶寫得筋量,軟件公司在投標(biāo)前需要購(gòu)買《招標(biāo)書》烹吵。
《投標(biāo)書》:與《招標(biāo)書》所呼應(yīng),對(duì)技術(shù)問(wèn)題進(jìn)行相應(yīng)的技術(shù)應(yīng)答桨武,包括技術(shù)標(biāo)和商務(wù)標(biāo)兩部分肋拔。</small>
上面幾份文檔,是項(xiàng)目前期準(zhǔn)備時(shí)需要的呀酸,是側(cè)重于售前方面的凉蜂;而下面的文檔是軟件開發(fā)過(guò)程中必不可少的,我們按開發(fā)工作的時(shí)間順序一一介紹性誉。
<small>《需求分析說(shuō)明書》:對(duì)于軟件開發(fā)來(lái)說(shuō)窿吩,《需求分析說(shuō)明書》就好像是蓋樓時(shí)所用的圖紙,是最重要的文檔错览,由項(xiàng)目經(jīng)理對(duì)客戶相關(guān)部門進(jìn)行業(yè)務(wù)調(diào)研后編寫纫雁,語(yǔ)言側(cè)重于從業(yè)務(wù)的角度描述功能需求。內(nèi)容涉及三大部分蝗砾,其一先较,編寫目的、背景悼粮、目標(biāo)任務(wù)等公共性語(yǔ)言闲勺;其二,功能性需求扣猫,將業(yè)務(wù)梳理成幾大功能模塊菜循,一級(jí)功能下細(xì)分二級(jí)功能,依次類推申尤,將最終細(xì)化的功能按描述癌幕、輸入衙耕、處理和輸出進(jìn)行詳細(xì)描述;其三勺远,非功能性需求橙喘,包括性能、處理能力胶逢、進(jìn)度厅瞎、界面設(shè)計(jì)和運(yùn)行環(huán)境的規(guī)定。
《數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書》:我是做數(shù)據(jù)庫(kù)出身初坠,因此這部分的工作也是由我這個(gè)項(xiàng)目經(jīng)理來(lái)做和簸,根據(jù)《需求分析說(shuō)明書》在Erwin建模工具中設(shè)計(jì)好邏輯模型和物理模型,然后將其整理到此文檔中碟刺,文檔還包含數(shù)據(jù)庫(kù)所有的表結(jié)構(gòu)和相關(guān)的字段說(shuō)明锁保。
《概要設(shè)計(jì)說(shuō)明書》:說(shuō)實(shí)話,在我做過(guò)的項(xiàng)目中半沽,沒(méi)有編寫過(guò)此文檔爽柒,因?yàn)槲矣X得《需求分析說(shuō)明書》和《詳細(xì)設(shè)計(jì)說(shuō)明書》就足矣了。甚至如果項(xiàng)目簡(jiǎn)單或時(shí)間緊急者填,《詳細(xì)設(shè)計(jì)說(shuō)明書》都會(huì)省略:)霉赡。
《詳細(xì)設(shè)計(jì)說(shuō)明書》:主要包含兩部分內(nèi)容,其一幔托,體系結(jié)構(gòu)的設(shè)計(jì),也就是項(xiàng)目所采用的幾層架構(gòu)蜂挪,以及層與層之間的通信機(jī)制重挑,還有就是基礎(chǔ)框架所采用的技術(shù);其二棠涮,是本文檔的核心部分谬哀,包括每個(gè)細(xì)分模塊的詳細(xì)設(shè)計(jì)說(shuō)明,包括程序描述严肪、功能史煎、性能、輸入項(xiàng)驳糯、輸出項(xiàng)篇梭、算法、流程邏輯酝枢、接口恬偷、存儲(chǔ)分配、注釋設(shè)計(jì)帘睦、限制條件袍患、測(cè)試計(jì)劃和尚未解決的問(wèn)題等內(nèi)容坦康。本說(shuō)明書對(duì)項(xiàng)目所采用的技術(shù)和接口都做了詳細(xì)的規(guī)定,是指導(dǎo)程序員開發(fā)的直接工具诡延。但需要說(shuō)明的是滞欠,很多項(xiàng)目由于時(shí)間原因,都忽略了此說(shuō)明書的編寫肆良,包括本人目前在做的項(xiàng)目也是如此筛璧,因此本文檔并不是必須的。但如果作為給客戶的交付物妖滔,需要在項(xiàng)目完成后補(bǔ)全隧哮。
《計(jì)劃進(jìn)度》:這個(gè)不用多說(shuō),由項(xiàng)目經(jīng)理編寫座舍,實(shí)現(xiàn)對(duì)項(xiàng)目進(jìn)度的嚴(yán)格把控沮翔,是項(xiàng)目必須的文檔,可用project編寫曲秉。
《測(cè)試用例》:測(cè)試用例(Test Case)目前沒(méi)有經(jīng)典的定義采蚀。比較通常的說(shuō)法是:指對(duì)一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測(cè)試任務(wù)的描述,體現(xiàn)測(cè)試方案承二、方法榆鼠、技術(shù)和策略。內(nèi)容包括測(cè)試目標(biāo)亥鸠、測(cè)試環(huán)境妆够、輸入數(shù)據(jù)、測(cè)試步驟负蚊、預(yù)期結(jié)果神妹、測(cè)試腳本等,并形成文檔家妆。它是將軟件測(cè)試的行為活動(dòng)做一個(gè)科學(xué)化的組織歸納.目的是能夠?qū)④浖y(cè)試的行為轉(zhuǎn)化成可管理的模式鸵荠;同時(shí)測(cè)試用例也是將測(cè)試具體量化的方法之一。由此可見伤极,《測(cè)試用例》非常重要蛹找,是對(duì)項(xiàng)目或產(chǎn)品質(zhì)量的嚴(yán)格保證,但由于測(cè)試人員和項(xiàng)目組的規(guī)范性哨坪、時(shí)間進(jìn)度等限制庸疾,本文檔在本地區(qū)的實(shí)際項(xiàng)目中也很少應(yīng)用,至少我認(rèn)識(shí)的很多測(cè)試人員中齿税,只有極少數(shù)的項(xiàng)目中會(huì)編寫此文檔彼硫。
《測(cè)試結(jié)果》:在項(xiàng)目開發(fā)階段使用,也就是交付客戶之前。文檔為Excel格式拧篮,并提供關(guān)鍵字段的數(shù)據(jù)篩選词渤,內(nèi)容包括描述、缺陷類型(Bug串绩、需求)缺虐、開發(fā)人員、狀態(tài)礁凡、關(guān)閉時(shí)間高氮、所屬模塊、提交人顷牌、解決人剪芍、備注等。其中狀態(tài)包含提交窟蓝、解決和確認(rèn)解決罪裹,測(cè)試人員將問(wèn)題提交(紅色),當(dāng)程序員解決后就置為解決(黃色)运挫,測(cè)試人員再次確認(rèn)無(wú)誤后状共,就修改狀態(tài)為確認(rèn)解決(綠色),并且添寫關(guān)閉時(shí)間谁帕。
《需求變更文檔》:產(chǎn)品交付客戶之后使用峡继。任何一個(gè)好軟件,不是在第一個(gè)版本就把這些標(biāo)準(zhǔn)全部實(shí)現(xiàn)匈挖,而是有步驟有重點(diǎn)地實(shí)現(xiàn)碾牌,逐步成為一個(gè)好軟件。因此《需求變更文檔》是不必可少的儡循,同樣作個(gè)Excel表格小染,量化解決。包括下列幾項(xiàng):客戶名稱贮折、需求提出人、提出日期资盅、需求關(guān)閉時(shí)間调榄,功能模塊名,客戶現(xiàn)在版本號(hào)呵扛,需求描述每庆,需求分類(需求、Bug)等今穿。每次發(fā)布新版本都把從上一版本發(fā)布之日關(guān)閉的需求列表都單獨(dú)摘成一個(gè)文件缤灵,附帶到這次新發(fā)布的版本之后。
此舉有兩個(gè)好處,其一腮出,能夠清楚的列出客戶以往所提的需求帖鸦,因?yàn)橛幸恍┛蛻籼岢龅母膭?dòng)總是反反復(fù)復(fù),一個(gè)問(wèn)題一會(huì)要改成A,然后覺得不好要改成B胚嘲,之后覺得還不如A好作儿,便又要求改回去,這樣給公司的進(jìn)度和安排帶來(lái)很大的不便馋劈,如果因?yàn)檫@個(gè)耽誤了其他的工作攻锰,便可以有此根據(jù)和客戶進(jìn)行溝通,防止客戶賴賬妓雾;其二娶吞,可以評(píng)判技術(shù)支持和相關(guān)程序員的工作量。此文檔為EXCEL格式械姻,但最好還有一個(gè)word類型的文檔妒蛇,每次客戶提出修改意見時(shí),將此文檔打印出來(lái)交由客戶簽字策添,作為憑證材部,此方法實(shí)際中并不是次次可行,一些強(qiáng)權(quán)客戶或不敢承擔(dān)責(zé)任的就不簽字唯竹,那也沒(méi)轍乐导。
《測(cè)試結(jié)果》和《需求變更文檔》要定期(可一周或一個(gè)月)給老板一份。這表明了你的工作量浸颓,讓他看看你確實(shí)一直很辛苦地在工作物臂,另外,也能看出你的認(rèn)真負(fù)責(zé)態(tài)度产上。
《用戶使用手冊(cè)》:按標(biāo)準(zhǔn)說(shuō)棵磷,應(yīng)該由文案寫,但在大多數(shù)的軟件公司中都不設(shè)這個(gè)職位晋涣,因此要么由項(xiàng)目經(jīng)理寫要么由測(cè)試人員寫仪媒,關(guān)鍵看是誰(shuí)給客戶做培訓(xùn)。在目前我做的這個(gè)項(xiàng)目中谢鹊,并沒(méi)有專職測(cè)試算吩,所以這個(gè)工作還是項(xiàng)目經(jīng)理來(lái)做〉瓒螅《用戶使用手冊(cè)》可根據(jù)實(shí)際情況寫成三種版本偎巢,其一,chm類型文件兼耀,適用于C/S的項(xiàng)目压昼,就像微軟的產(chǎn)品中求冷,都會(huì)有此幫助手冊(cè);其二窍霞,做成網(wǎng)頁(yè)形式的幫助文件匠题,適用于B/S項(xiàng)目;其三官撼,就是做成word文檔梧躺,雖然可保存至本地,但使用起來(lái)沒(méi)有前二者方便傲绣。</small>
余者還有《開發(fā)任務(wù)書》掠哥、《項(xiàng)目總結(jié)報(bào)告》、《軟件驗(yàn)收評(píng)審》等秃诵,并不是必須的续搀,可根據(jù)客戶需要和實(shí)際的項(xiàng)目來(lái)選擇使用,再次并不一一贅述菠净。
并且禁舷,以上所有文檔,雖然有些是必須的毅往,比如《需求分析說(shuō)明書》牵咙、《測(cè)試結(jié)果》、《用戶使用手冊(cè)》等攀唯,但根據(jù)不同的行業(yè)洁桌、不同的地區(qū)以及不同的項(xiàng)目和團(tuán)隊(duì)規(guī)模,文檔的具體內(nèi)容都會(huì)有所不同侯嘀,不必較真另凌。只要能抓到老鼠,白貓黑貓都是好貓戒幔,況且吠谢,沒(méi)必要的多余的文檔會(huì)浪費(fèi)時(shí)間和成本等資源。