如果沒有記錄,人類的文明如何繁衍,歷史如何傳承?
對(duì)于軟件開發(fā)來說,缺少記錄和軟件開發(fā)文檔,也會(huì)對(duì)軟件項(xiàng)目產(chǎn)生嚴(yán)重的影響。記錄和軟件開發(fā)文檔,在軟件開發(fā)中至少會(huì)發(fā)揮以下的作用:
1. 回溯
記錄一個(gè)很大的作用就是幫助人們記憶。
當(dāng)開發(fā)人員與用戶討論完需求之后,把正確的需求記錄下來,那么,當(dāng)后面軟件驗(yàn)收的時(shí)候,我們不用僅憑不可靠的記憶去判斷軟件是否實(shí)現(xiàn)了用戶的需求,只要拿出當(dāng)時(shí)經(jīng)雙方確認(rèn)過程的記錄就好。
當(dāng)項(xiàng)目結(jié)束時(shí),我們要統(tǒng)計(jì)下完成整個(gè)項(xiàng)目花費(fèi)的工作量,要測(cè)算下項(xiàng)目生產(chǎn)率的時(shí)候,不需要靠自己的大腦來回憶,只要拿出階段、里程碑報(bào)告中統(tǒng)計(jì)的工作量數(shù)據(jù)就好。
如果沒有記錄,這些內(nèi)容僅靠大腦的記憶,會(huì)產(chǎn)生很大的偏差,數(shù)據(jù)會(huì)失去意義,工作會(huì)受到影響。
2. 復(fù)用
前人的成果被記錄下來,后人可以在這些成果之上邁出更大的步伐。
“站在巨人的肩膀上”,這句話也是對(duì)記錄作用的巨大肯定。
軟件復(fù)用是軟件最佳工程實(shí)踐,沒有之一。而復(fù)用的前提就是要保留下相關(guān)的記錄。
軟件開發(fā)過程中的復(fù)用比比皆是。項(xiàng)目估計(jì)可以利用歷史數(shù)據(jù),編寫文檔可以利用優(yōu)秀的文檔示例,安排任務(wù)可以采用記錄的優(yōu)秀實(shí)踐,編寫代碼可以代碼復(fù)用或構(gòu)件復(fù)用,測(cè)試設(shè)計(jì)可以復(fù)用測(cè)試用例……
如果沒有這些記錄,軟件復(fù)用從何說起;如果沒有復(fù)用,軟件開發(fā)的效率將會(huì)何其低下!
3. 溝通
溝通不暢可能是團(tuán)隊(duì)成功的最大障礙。溝通也同樣離不開記錄和文檔。不僅溝通的結(jié)果需要記錄,溝通的內(nèi)容也需要有文檔來展示。
溝通的時(shí)候,如果僅靠雙方口頭描述,沒有文字、圖表、實(shí)物的展示,有可能會(huì)出現(xiàn)雞同鴨講的場(chǎng)面,雙方以為說的是一個(gè)東西,實(shí)際上是猴吃麻花——蠻擰。
4. 專注
軟件開發(fā)是一個(gè)很復(fù)雜的思維活動(dòng)。當(dāng)你要編碼實(shí)現(xiàn)的時(shí)候,你要記著需求、記著設(shè)計(jì)、記著編碼規(guī)范……如果你時(shí)刻在大腦中要回想這些細(xì)節(jié)的東西,你又要寫出好的代碼,你的大腦很難承擔(dān)長(zhǎng)期這樣的滿負(fù)荷運(yùn)轉(zhuǎn)的工作。
而有了記錄,你可以放心地把這些需求、設(shè)計(jì)、規(guī)范的細(xì)節(jié)扔在一邊,專心投入到功能實(shí)現(xiàn)上面。當(dāng)進(jìn)行代碼審查時(shí),你在拿過這些記錄對(duì)照著檢查就可以了。
有了記錄,可以減輕你的記憶負(fù)擔(dān)。
所以,軟件開發(fā)離不開文檔,軟件越復(fù)雜越離不開文檔,而且越復(fù)雜的軟件項(xiàng)目,對(duì)文檔的質(zhì)量要求越高。只有文檔記錄的越準(zhǔn)確,才不會(huì)給緊張的開發(fā)工作增加障礙。
即使敏捷開發(fā),也只是說“可用的軟件重于完備的文檔”,并不是說不需要文檔。
這正是:
莫嫌文檔太麻煩,沒有記錄才是難
回溯溝通離不了,軟件復(fù)用無從談