一提到文檔,肯定會有人向你大談外國公司、大公司、正規公司是怎么怎么重視文檔的,什么2/3時間用于寫文檔,1/3時間才用來編程序;寫文檔要按照什么ISO、什么CMM、什么什么標準;不按這些標準寫出來的就不是文檔,就不是好文
檔。不重視文檔就是不正規等等等。當問及他自己寫過什么文檔,編寫過什么文檔標準的時候,這種人就啞口無言了。這種人就是一種媒體一種廣告。
不管怎么說,文檔絕對是程序員最大的軟肋。一些被稱之為高手的程序員,往往是文檔方面的低能兒。不管這個程序員是在大公司、還在小公司、不
管程序是寫文檔的、還是不寫文檔的,大部分程序員在內心深處中是不愿意寫文檔的。
天下的怪事特別多,有時讓人不能理
解。程序員一般不愿意寫文檔,但是程序員卻喜歡看別人的文檔。即使寫了文檔,程序員一般不會把所有功能都寫入文檔,卻抱怨別人文檔有的功能沒有說明。即使
寫了某段文檔,程序員一般不不想把文檔寫的很詳細,卻抱怨別人寫的文檔不夠詳細。文檔絕對是擺在程序員面前的一個矛盾,如果讓程序員選擇是喜歡寫文檔,還
是喜歡看文檔,我估計大多數程序員都會選擇后者。
那么程序員為啥不愿意寫文檔呢?個中原因很多,我自己不妨歸納幾 點:
1、 怕煩
程序員從入門之日起,就在心里埋藏了一個編程的種子,認為程序員
就是編程序的,就是和計算機打交道的,程序就是程序員的全部。無論是在編程之前要寫文檔,還是在編程之后要寫文檔。他們都認為寫文檔很煩人。
1) 文檔種類太多。 越是正規越是多。一想到要寫那么多的文檔程序員頭都要大了。
2) 文檔寫作要求不低。有格式要求、有內容要求、還需要畫各種流程
圖、示意圖、關系圖、界面圖、還需要填寫各種表格說明,要收集各種資料。雖然沒有技術含量、但是時間要花的比編程序要多的多呀,而且也不一定能寫好。
3) 在正規的開發公 司一般一個變更就要編寫一系列的變更文檔。當變更不斷的時候,只有最后的變更文檔是最重要的,當我們不知道當前是不是最后一
個文檔的時候,我們就不可能愿意寫將被后面替代的文檔。
4) 當你寫了文檔后,就會不斷有使用文檔的人來問這問那,這些詢問往
往會讓你崩潰。因為,你很難寫出讓每個人都提不出問題的文檔。
2、 沒空
在很多情況
下,程序員處于一種“時間緊,任務重”狀態。在急于看
出編程結果的驅使下,程序員一心撲在編程上,恨不得一分鐘一個變化。哪有心思和時間先把文檔寫好再去編程呀。即使他們想先把程序編出來,然后補寫一下文檔
想法,但是一旦他們一個段程序完成之后,就會立即撲向第二段程序的。如此下來,編寫文檔只能放在項目開發的后期了。要是你真的寫文檔,那寫文檔的時間早已
將編程時間給擠占了,你的編程工作就完不成了。
3、 沒有用
文檔的重要性其實對不同對象是不一樣的。如果你說文檔沒有用,立
即會有人用吐沫把你淹死,他們立即會搬出那個那個說文檔是重要的,文檔是不可缺的。唯獨自己不敢說“我認為文檔是重要的。”這也反過來說明文檔的有用性程
度是不一樣的。對于程序員來說,它只要能把程序編出來就行了。很多程序員不寫文檔照樣編出程序來,在他們觀念之中文檔不寫也罷。如果按文檔編程序,那就要
確保文檔的正確性、不可更改性。而實際上,文檔不如編程快、編程不如變化快,不斷變化的需求和代碼讓文檔如同一張過時的廢紙一樣。
現實中,有的文檔變成了項目開發后的總結,對開發本身并不起作用,只是保留一個有的形式,以應付各種各樣規范的需
要。在這種情況下,文檔沒
有任何實用價值,所以即使程序員寫了,也沒有什么作用。尤其是項目投產后,幾經升級,最初的文檔早已和現實的情況對不上號了,文檔更新和系統的一致性更是
難上加難。
4、 沒好處
既然認為編程序才是正道,那么程序員就會寫文檔就是一種額外和輔助的工作,做了就做了,對于程序員來說沒有任何好處。所以沒有好處的事是很
少人樂意去做的。
當然文檔的好處更多地體現在軟件公司、 單位、軟件用戶、后續程序員身上;它是一種前人栽樹后人乘涼好事。但是,現在做好事的人太少了。所以,程序員不愿意寫文檔。
文檔有多重要?有人把它上升到“程序員頭腦的拷貝”的高度。有的人甚至說,程序員走了后,只要有了文檔,軟件公司可以再招新
人,公司照樣運轉起來。如此說來,天性聰明的程序員會把文檔寫得清清楚楚,等待著公司卸磨殺驢?除非公司支付給額外的報酬,程序員才會把文檔寫好。
5、 不會寫
從寫作本身來看,寫好一篇文檔不是一件容易的事。文檔有文檔的格式,文檔有文檔的寫作要求。現在的人動嘴的本事特大,很多人平時誰會動筆
寫
字呀,更不用說寫文章了。所以,寫文檔從理論上來說也是需要學習和訓練的,是需要平時寫作積累的。當你要求他寫文檔的時候,他往往會回答你:“怎么寫呀?
我不會。”現在的社會有一個很奇怪的現象,人們對自己不會的東西,往往不當作羞恥,而是當作一種榮譽,“不會”脫口而出。你不會寫可以不怪你,你不去學,
反而理直氣壯地說不會則是你的不是了。難道那會寫文檔的人都是呆子嗎?難道他們不懂干活辛苦的道理嗎?所以,凡是說話要動動腦子,不要把無知暴露在別人面
前。要把必須掌握的技能先掌握起來,不要等到用時才說不會。
當一個男子愛上一個自己喜歡的女子,需要
用情書來表白的時候,難
道他不會寫出情書來?即使他不會寫,他也一定會克服千難萬險把情書寫出來的,這是他主觀使然。如果程序員主觀上想寫文檔,怎么會怕煩?怎么會怕沒空?怎么
會怕文檔沒有用?怎么會怕沒有好處?怎么會怕不會寫?這些怕其實都是借口。真正優秀的程序員不單是編程的高手,同時也應該是寫文檔的高手。
程序員真正不喜歡寫文檔的原因是:文檔是給別人看的,不是給自己看的。如果要使程序員喜歡寫文檔,那就要提高程序員“為人民服務”的
意識和境界,或者要給寫文檔的程序員以人民幣獎勵。而靠制度,靠管理,讓程序員去寫文檔只能是一種職業的強制。當有一天,寫文檔也成了一個專業化崗位的時
候,程序員和文檔人員相分開的時候,程序員就會一心一意看文檔寫代碼,文檔員就會以此為職業,一心一意寫文檔拿工資。我們就不再會為此來討論了。這種分工
一定是未來的趨勢。一些大的公司、管理規范的公司都有這樣的分工了。只是很多中小軟件公司或企事業里的IT部門還沒有專業化到如此程度,程序員不喜歡寫文檔說明他們不愿意承擔著太多的角色吧了。
不管怎么說,作為一個程序員(尤其想
成為優秀程序員)一定要學會寫文檔,一定要學會欣賞文檔。無論你是否喜歡,你都可以在文檔各種問題面前可進可退。我可以說,那些既不會寫文檔,又不會欣賞
文檔的程序員是沒有資格說“我就不喜歡寫文檔”這種話的。