博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

《为什么程序员不愿写文档》(2010/06/22)

Posted on 2010-06-24 00:13  n216  阅读(5197)  评论(30编辑  收藏  举报

一提到文档,肯定会有人向你大谈外国公司、大公司、正规公司是怎么怎么重视文档的,什么2/3时间用于写文档,1/3时间才用来编程序;写文档要按照什么ISO、什么CMM、什么什么标准;不按这些标准写出来的就不是文档,就不是好文档。不重视文档就是不正规等等等。当问及他自己写过什么文档,编写过什么文档标准的时候,这种人就哑口无言了。这种人就是一种媒体一种广告。

不管怎么说,文档绝对是程序员最大的软肋。一些被称之为高手的程序员,往往是文档方面的低能儿。不管这个程序员是在大公司、还在小公司、不管程序是写文档的、还是不写文档的,大部分程序员在内心深处中是不愿意写文档的。

天下的怪事特别多,有时让人不能理解。程序员一般不愿意写文档,但是程序员却喜欢看别人的文档。即使写了文档,程序员一般不会把所有功能都写入文档,却抱怨别人文档有的功能没有说明。即使写了某段文档,程序员一般不不想把文档写的很详细,却抱怨别人写的文档不够详细。文档绝对是摆在程序员面前的一个矛盾,如果让程序员选择是喜欢写文档,还是喜欢看文档,我估计大多数程序员都会选择后者。

那么程序员为啥不愿意写文档呢?个中原因很多,我自己不妨归纳几点:

1、   怕烦

程序员从入门之日起,就在心里埋藏了一个编程的种子,认为程序员就是编程序的,就是和计算机打交道的,程序就是程序员的全部。无论是在编程之前要写文档,还是在编程之后要写文档。他们都认为写文档很烦人。

1) 文档种类太多。越是正规越是多。一想到要写那么多的文档程序员头都要大了。

2) 文档写作要求不低。有格式要求、有内容要求、还需要画各种流程图、示意图、关系图、界面图、还需要填写各种表格说明,要收集各种资料。虽然没有技术含量、但是时间要花的比编程序要多的多呀,而且也不一定能写好。

3) 在正规的开发公司一般一个变更就要编写一系列的变更文档。当变更不断的时候,只有最后的变更文档是最重要的,当我们不知道当前是不是最后一个文档的时候,我们就不可能愿意写将被后面替代的文档。

4) 当你写了文档后,就会不断有使用文档的人来问这问那,这些询问往往会让你崩溃。因为,你很难写出让每个人都提不出问题的文档。

2、   没空

   在很多情况下,程序员处于一种“时间紧,任务重”状态。在急于看出编程结果的驱使下,程序员一心扑在编程上,恨不得一分钟一个变化。哪有心思和时间先把文档写好再去编程呀。即使他们想先把程序编出来,然后补写一下文档想法,但是一旦他们一个段程序完成之后,就会立即扑向第二段程序的。如此下来,编写文档只能放在项目开发的后期了。要是你真的写文档,那写文档的时间早已将编程时间给挤占了,你的编程工作就完不成了。

3、   没有用

文档的重要性其实对不同对象是不一样的。如果你说文档没有用,立即会有人用吐沫把你淹死,他们立即会搬出那个那个说文档是重要的,文档是不可缺的。唯独自己不敢说“我认为文档是重要的。”这也反过来说明文档的有用性程度是不一样的。对于程序员来说,它只要能把程序编出来就行了。很多程序员不写文档照样编出程序来,在他们观念之中文档不写也罢。如果按文档编程序,那就要确保文档的正确性、不可更改性。而实际上,文档不如编程快、编程不如变化快,不断变化的需求和代码让文档如同一张过时的废纸一样。

现实中,有的文档变成了项目开发后的总结,对开发本身并不起作用,只是保留一个有的形式,以应付各种各样规范的需要。在这种情况下,文档没有任何实用价值,所以即使程序员写了,也没有什么作用。尤其是项目投产后,几经升级,最初的文档早已和现实的情况对不上号了,文档更新和系统的一致性更是难上加难。

 

4、   没好处

既然认为编程序才是正道,那么程序员就会写文档就是一种额外和辅助的工作,做了就做了,对于程序员来说没有任何好处。所以没有好处的事是很少人乐意去做的。

当然文档的好处更多地体现在软件公司、单位、软件用户、后续程序员身上;它是一种前人栽树后人乘凉好事。但是,现在做好事的人太少了。所以,程序员不愿意写文档。

文档有多重要?有人把它上升到“程序员头脑的拷贝”的高度。有的人甚至说,程序员走了后,只要有了文档,软件公司可以再招新人,公司照样运转起来。如此说来,天性聪明的程序员会把文档写得清清楚楚,等待着公司卸磨杀驴?除非公司支付给额外的报酬,程序员才会把文档写好。

5、 不会写

从写作本身来看,写好一篇文档不是一件容易的事。文档有文档的格式,文档有文档的写作要求。现在的人动嘴的本事特大,很多人平时谁会动笔写字呀,更不用说写文章了。所以,写文档从理论上来说也是需要学习和训练的,是需要平时写作积累的。当你要求他写文档的时候,他往往会回答你:“怎么写呀?我不会。”现在的社会有一个很奇怪的现象,人们对自己不会的东西,往往不当作羞耻,而是当作一种荣誉,“不会”脱口而出。你不会写可以不怪你,你不去学,反而理直气壮地说不会则是你的不是了。难道那会写文档的人都是呆子吗?难道他们不懂干活辛苦的道理吗?所以,凡是说话要动动脑子,不要把无知暴露在别人面前。要把必须掌握的技能先掌握起来,不要等到用时才说不会。

 

  当一个男子爱上一个自己喜欢的女子,需要用情书来表白的时候,难道他不会写出情书来?即使他不会写,他也一定会克服千难万险把情书写出来的,这是他主观使然。如果程序员主观上想写文档,怎么会怕烦?怎么会怕没空?怎么会怕文档没有用?怎么会怕没有好处?怎么会怕不会写?这些怕其实都是借口。真正优秀的程序员不单是编程的高手,同时也应该是写文档的高手。

 

程序员真正不喜欢写文档的原因是:文档是给别人看的,不是给自己看的。如果要使程序员喜欢写文档,那就要提高程序员“为人民服务”的意识和境界,或者要给写文档的程序员以人民币奖励。而靠制度,靠管理,让程序员去写文档只能是一种职业的强制。当有一天,写文档也成了一个专业化岗位的时候,程序员和文档人员相分开的时候,程序员就会一心一意看文档写代码,文档员就会以此为职业,一心一意写文档拿工资。我们就不再会为此来讨论了。这种分工一定是未来的趋势。一些大的公司、管理规范的公司都有这样的分工了。只是很多中小软件公司或企事业里的IT部门还没有专业化到如此程度,程序员不喜欢写文档说明他们不愿意承担着太多的角色吧了。

 

不管怎么说,作为一个程序员(尤其想成为优秀程序员)一定要学会写文档,一定要学会欣赏文档。无论你是否喜欢,你都可以在文档各种问题面前可进可退。我可以说,那些既不会写文档,又不会欣赏文档的程序员是没有资格说“我就不喜欢写文档”这种话的。