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