一旦在Web組織中逐步培養(yǎng)起編寫文檔的文化,那么員工就會(huì)越來越依賴于這種實(shí)踐方法。這種文化還有一個(gè)十分重要的優(yōu)點(diǎn),即如果出現(xiàn)人員流失和變動(dòng),那么良好的文檔可以縮短新人的“交接”時(shí)間。此外,除了構(gòu)成一般軟件開發(fā)過程的標(biāo)準(zhǔn)代碼注釋、跟蹤和源代碼控制過程,編寫文檔也是一種審查方法。在一些開發(fā)專用軟件的公司中,文檔顯得尤為重要,因?yàn)樾聠T工一般很難理解復(fù)雜的定制應(yīng)用程序,以及各個(gè)應(yīng)用又是如何組成客戶所訪問的網(wǎng)站。如果文檔成為這一過程的組成部分,人們就一定會(huì)對(duì)軟件構(gòu)建方式進(jìn)行交流,工程師也會(huì)習(xí)慣于向其他團(tuán)隊(duì)成員介紹軟件的工作方式。
為了理解這種方法的實(shí)踐應(yīng)用,我們可以設(shè)想一下最成功的開源軟件,它們都有一些共同點(diǎn):有一個(gè)能夠自由協(xié)作與交流的活躍開發(fā)者社區(qū),以及優(yōu)秀的文檔。當(dāng)開發(fā)者協(xié)作編寫出面向各種用戶的優(yōu)秀文檔時(shí),軟件的開發(fā)和管理也會(huì)變得更容易。這個(gè)道理適用于任何組織,而且對(duì)于大型組織而言尤其重要。
將介紹各種標(biāo)準(zhǔn)文檔模板,它們將幫助我們理解如何管理組織內(nèi)部開發(fā)的軟件。例如,一位高級(jí)軟件開發(fā)者可能只會(huì)使用API規(guī)范與參考文檔,然后就開發(fā)實(shí)現(xiàn)一個(gè)應(yīng)用程序,完全不會(huì)去閱讀其他的文檔。另一方面,人門指南則以一種簡單方式概括介紹更多信息,它將幫助一些軟件開發(fā)新手快速入門并了解他們將要接觸的應(yīng)用程序、平臺(tái)或庫。用例( Use Case)文檔則可以向非技術(shù)人員解釋一個(gè)應(yīng)用程序的用途。我們稍后將詳細(xì)介紹這些模板。
有了這些信息,用來理解復(fù)雜的Web與應(yīng)用程序架構(gòu)的時(shí)間就將大大減少。如果沒有一組能從不同角度說明指定技術(shù)的文檔,那么Web開發(fā)者和運(yùn)維工程師就只能自己去理解各個(gè)方面。
最重要的是,在不同的利益相關(guān)者共同編寫文檔的過程中,他們會(huì)發(fā)現(xiàn)一些深層次問題和改進(jìn)軟件的機(jī)會(huì)。例如,當(dāng)一位工程師開始在紙上或設(shè)計(jì)模型上介紹一個(gè)Web應(yīng)用程序時(shí),其他人就很容易理解他所要表達(dá)的概念,因此可以更好地獲得關(guān)于應(yīng)用程序的技術(shù)性能和設(shè)計(jì)等方面的反饋信息。此外,針對(duì)不同讀者編寫的文檔也有一定的好處。有時(shí),業(yè)務(wù)用戶可能無法讀懂一個(gè)AP規(guī)范,但是畫一個(gè)簡單圖形來說明API的復(fù)雜關(guān)系或應(yīng)用程序之間的交互,就可以幫助非技術(shù)人員理解應(yīng)用程序。這種文檔還可以幫助初級(jí)工程師理解復(fù)雜的軟件架構(gòu)。