項目文檔必不可少活烙,必不可少,再小的項目遣鼓,別人再和你吹噓項目多么簡單啸盏,領(lǐng)導(dǎo)再告訴你時間多么緊張,客戶再不上線就要損失幾十萬骑祟,統(tǒng)統(tǒng)都不是你的問題回懦,唯獨不寫文檔是你的責(zé)任!
我在《人月神話》的解讀中已經(jīng)深入的理解了文檔的必要性怯晕,很多時候人只是還不夠強(qiáng)大,經(jīng)常敗在時間上舟茶,敗在壓力上。
需求文檔
首先吧凉,需求文檔隧出。需求文檔是我們把客戶心里想的東西寫出來給客戶看,或者有時候是客戶提供的客燕,所以需求文檔往往是最不能體現(xiàn)項目功能的鸳劳。在這個文檔中也搓,我們一定要適應(yīng)客戶的口吻,換句話說要用客戶看得懂的話傍妒,而且一定不要往細(xì)里寫幔摸,因為還不是時候。這個文檔要確定的是項目的目的颤练,這個目標(biāo)一定要簡短既忆,如果一個項目的目標(biāo)太多嗦玖,可以寫多份需求文檔來分別說明。
《簡約之美》這本書中宇挫,作者認(rèn)為項目的目的歸根結(jié)底只有一個,那就是幫助人器瘪。由此我覺得需求可以這么寫,首先明確項目給誰用援所,再明確幫他實現(xiàn)了什么價值,所有的項目都可以這么寫住拭。
系統(tǒng)設(shè)計文檔
往后是历帚,系統(tǒng)設(shè)計。這是專業(yè)的程序人員或者產(chǎn)品經(jīng)理的工作結(jié)果抹缕,應(yīng)該要細(xì)化,但不可避免的會出現(xiàn)很多口水話卓研,導(dǎo)致客戶看不懂甚至不想看睹簇。但沒有關(guān)系寥闪,系統(tǒng)設(shè)計的編寫應(yīng)該占程序員工作的50%是為合理的。改文檔總是比改項目來的快凿渊,而且安全。之所以安全是因為文檔的思路是連貫的埃脏,更容易觀察到?jīng)_突和矛盾秋忙,書寫的過程同時也是思考的過程彩掐,打字的時候真的能讓人想通很多問題。
但是問題又來了堵幽,客戶對于文檔沒有熱情怎么辦弹澎?客戶語文實在是差怎么辦?
實際上我們無法避免苦蒿,客戶的水平肯定是參差不齊的,不能要求他們所有都對互聯(lián)網(wǎng)有較好的理解。我們能做的就是為文檔編寫文檔免胃。我發(fā)現(xiàn)這并不是多么難的事情,我需要教會客戶如何寫文檔以及閱讀文檔躺涝。如果說文檔是一種溝通工具的話扼雏,那么交流的雙方都必須理解這種工具的內(nèi)容所代表的具體含義坚嗜。同時诗充,我們對待這件事情越認(rèn)真客戶也越能意識到它的重要性,而不是再糾結(jié)于成本和周期而放棄文檔碟绑。
那么這些為文檔所編寫的文檔,實際上是公司 Wiki 的一部分格仲,而且是公開的那一部分。我認(rèn)為這是今后一段時間谊惭,乃至長久的一項重要工作侮东。我希望做到的是讓客戶通過 config 一樣的形式,就能實現(xiàn)良好的文檔交流苗桂。
測試文檔
最后是,測試文檔煤伟。在某個項目之后,我意識到围辙,我們必須讓測試不再依賴于個人放案,特別是不再依賴于客戶。如果最終測試依賴于個人而不是文檔將會產(chǎn)生許多的不穩(wěn)定因素吱殉。
- 首先,測試者的心態(tài)會發(fā)生改變稿湿,如果項目質(zhì)量僅由一人評估押赊,整個項目就很容易出現(xiàn)一些人性的錯誤。例如流礁,主觀但錯誤的推測(對于功能的曲解或過度解讀),存在但無價值的選擇(對于個人口味的青睞)神帅。
- 其次,脫離文檔的測試容易丟失主要目標(biāo)(就是那個幫助人的目標(biāo))询刹,測試者不是設(shè)計者,他只關(guān)注于某個過程凹联,對于項目整體很難把握。
- 最后住闯,也是最可怕的澳淑,沒有文檔的話測試與需求容易被混為一談。測試應(yīng)當(dāng)源自于需求文檔杠巡,而不是源自于市場或者環(huán)境。
測試文檔產(chǎn)生于前期準(zhǔn)備工作階段蚌铜,主要是對于需求文檔仔細(xì)研究的結(jié)果,用于指導(dǎo)測試流程冬殃。
如何讓文檔不形同虛設(shè)叁怪?
上面提到的三個工作文檔,比起專業(yè)書籍中的類目要少了很多奕谭,因為我認(rèn)為最重要只有這三個,其他的過于形式官册。文檔本身作為一種工具混驰,實質(zhì)必然重于形式皂贩。曾經(jīng)也有重服務(wù)、輕文檔的客戶案例明刷,但我認(rèn)為這是建立在溝通順暢的基礎(chǔ)上。那么溝通順暢本身又是一件很主觀的事情愚争,我們看很多書寫情商、影響力和溝通技巧的轰枝,都沒法把這個問題講清楚。軟件行業(yè)的生產(chǎn)效率不能像其他制造業(yè)一樣用人和時間進(jìn)行計算步淹,主要也是因為溝通成本無法降低。
如何讓文檔真正有效的降低溝通成本缭裆,就是讓文檔不形同虛設(shè)的關(guān)鍵寿烟。我認(rèn)為有兩點:
- 技術(shù)高層必須給予支持和認(rèn)同。文檔往往敗于時間筛武,質(zhì)量和周期本來就是矛盾,如果技術(shù)高層不認(rèn)同文檔溝通氏淑,那么很少有技術(shù)員能夠抗住這樣的壓力堅持做正確的事硕噩。
- 客戶必須經(jīng)過基本的篩選,寧缺毋濫炉擅。特別是對技術(shù)驅(qū)動型以及產(chǎn)品驅(qū)動型的客戶,如果對互聯(lián)網(wǎng)知之甚少眶俩,建議選擇不合作】煊悖現(xiàn)在市場環(huán)境中,確實有那么些人是不了解以至于不尊重軟件從業(yè)人員工作結(jié)果的抹竹。
- 開發(fā)人員必須認(rèn)同這樣的開發(fā)方式。程序員的兩大痛苦就是:為什么要寫文檔钞楼,以及,為什么沒寫文檔询件。
你的文檔仍然一文不值怎么辦?
你沒有做錯什么宛琅,但你仍然失敗了∽兀客戶說我不改需求不給錢仓洼,商務(wù)說文檔只是參考,領(lǐng)導(dǎo)說你為什么不早點開始寫代碼色建,公司表示這一切無能為力。請繼續(xù)寫好文檔某残,這些問題都不是文檔造成的陵吸。如果仔細(xì)分析會發(fā)現(xiàn),其他他們都來自于錯誤的進(jìn)度估計壮虫。
請在下一個項目的文檔中進(jìn)行正確的開發(fā)進(jìn)度安排,需求的修改也必定意味著新的文檔產(chǎn)生剩拢。
END
如需轉(zhuǎn)載饶唤,注明出處,并不需要我同意