|
|
51CTO旗下网站
|
|
移动端

2.4 为什么程序员不愿写文档

《程序员成长路线图:从入门到优秀》本书的作者回忆和总结了自己几十年的程序员成长经历,对当前程序员关心的热点、重点、难点问题给出了自己的看法和建议。通过对程序员的成长阶段进行划分,使得各个阶段的程序员都可以“按图索骥”,解决自己所遇到的问题。本节为大家介绍为什么程序员不愿写文档。

作者:张磊/吉阳来源:机械工业出版社|2011-07-20 14:03

2.4 为什么程序员不愿写文档

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

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

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

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

1.怕烦

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

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

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

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

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

2.没空

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

3.没有用

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

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

4.没好处

既然认为编程序是正道,那么程序员写文档就是一种额外和辅助的工作,做了就做了,对于程序员来说没有任何好处。

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

文档有多么重要呢?有人把它上升到“程序员头脑的拷贝”的高度,有的人甚至说,程序员走了后,只要有了文档,软件公司可以再招新人,公司照样运转起来。如此说来,天性聪明的程序员会把文档写得清清楚楚吗?

5.不会写

从写作本身来看,写好一篇文档不是一件容易的事。文档有文档的格式和写作要求。现在的人只喜欢动嘴说事,没有多少人在平时会动笔写字,更不用说写文章了。所以,写文档从理论上来说也是需要学习和训练的,需要在平时进行写作积累。当要求一些程序员写文档的时候,他往往会回答你:“怎么写呀?我不会。”你不会写可以不怪你,你不去学,反而理直气壮地说不会,则是你的不对了。难道那些会写文档的人都是“呆子”吗?难道他们不懂干活辛苦的道理吗?

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

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

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

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

Redis运维秘籍

Redis运维秘籍

运维标配技术
共15章 | one叶孤舟

57人订阅学习

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

235人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

89人订阅学习

读 书 +更多

一目了然——Web软件显性设计之路

本书阐述了为什么以及如何设计出简单易用的基于Web的软件,让用户单凭常识即可有效地使用它。主要内容包括:显性设计的概念、如何理解用户...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客