大家都了解,做軟件的目的就是要滿足客戶的需求,這個(gè)需求包括功能、外觀、操作、時(shí)間及性能等各方面。
那么,在軟件開發(fā)過程中哪個(gè)部分最重要呢,程序員說“毋庸置疑,我編寫的程序?qū)崿F(xiàn)了客戶提出的功能以及業(yè)務(wù)流程,肯定我是最重要的”;美工說“你開發(fā)的功能如果沒有我的頁(yè)面美化,是無法呈現(xiàn)給客戶的,要知道,很多客戶并不很了解內(nèi)部復(fù)雜的功能,首先映入眼簾的就是界面的效果,就像人一樣,如果你不是美女,那么他看了你一眼之后,就沒有想和你再繼續(xù)溝通和發(fā)展的積極性了”;測(cè)試員聽了不高興了,說“漏洞百出的產(chǎn)品,哪怕你外觀再漂亮,實(shí)現(xiàn)的功能再多,也是不成熟的產(chǎn)品,客戶是不會(huì)使用的?!北娬f紛紜,各執(zhí)一詞。
以上所說都很有道理,每個(gè)角色都是軟件成功必不可少的,每個(gè)人都好比是一塊積木,只有組合起來才能搭成既美觀又穩(wěn)固的造型。
另一方面,他們卻又都不是最重要的。舉個(gè)例子,現(xiàn)在我家在進(jìn)行裝修,木工、瓦工、油漆工都是南方的工人,有很好的手藝,干活也很細(xì)致,可是他們?cè)谑┕さ臅r(shí)候都要參考兩份文件,一是房屋結(jié)構(gòu)圖,二是裝修效果圖。沒有此文件,他們就無從下手,就是擁有再好的手藝,做出來的再漂亮,到時(shí)候也會(huì)與房屋的實(shí)際效果存在偏差。
孫悟空三打白骨精,相信誰都耳熟能詳。里面有這樣一個(gè)場(chǎng)景,孫悟空去化齋前,劃了一個(gè)圈,將唐僧他們包在里面,只要他們?cè)谌锩?,就不?huì)有事,如果出了圈就很危險(xiǎn)。這個(gè)圈,就是一個(gè)范圍、一個(gè)標(biāo)準(zhǔn)。在這個(gè)圈里,你隨便折騰,怎么折騰都行,但千萬不要越界,否則后果不堪設(shè)想。
而在軟件開發(fā)中文檔就是那個(gè)圈,它將項(xiàng)目開發(fā)所進(jìn)行的一切活動(dòng)都進(jìn)行詳細(xì)的定義,只要遵照這個(gè)文檔去開發(fā),那么最終的結(jié)果一定是八九不離十。
文檔貫穿軟件工程的始終,從前期的項(xiàng)目準(zhǔn)備,中期的開發(fā)到后期的維護(hù)、培訓(xùn),無不以文檔作為工作的依據(jù)。那么在軟件項(xiàng)目中,都包括哪些文檔呢,它們的作用又是什么呢,下面我將我的經(jīng)驗(yàn)分享給大家。
1、《可行性研究報(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ù)流程的信息輸入和輸出而已,但這已無關(guān)緊要,最重要的是我要到了錢。但是嚴(yán)格來說,這不是項(xiàng)目組所需的文檔,于軟件開發(fā)也意義不大。
2、《建設(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)品公司合作來中標(biāo);其二,讓和其關(guān)系很好的一家或兩家軟件公司(不會(huì)超過三家)編寫,客戶進(jìn)行審核,客戶最后選擇了誰的方案那么最后這個(gè)項(xiàng)目就是這家公司的,這樣很多情況并不是公開招標(biāo)。
3、《招標(biāo)書》
將《建設(shè)方案》或《實(shí)施方案》進(jìn)行摘取,并附帶上技術(shù)問題以及招標(biāo)時(shí)的細(xì)節(jié)、注意事項(xiàng),構(gòu)成《招標(biāo)書》,這個(gè)文件也是由客戶寫得,軟件公司在投標(biāo)前需要購(gòu)買《招標(biāo)書》。
4、《投標(biāo)書》
與《招標(biāo)書》所呼應(yīng),對(duì)技術(shù)問題進(jìn)行相應(yīng)的技術(shù)應(yīng)答,