软件开发文档国标
今天不整那些虚头巴脑的,直接聊聊大家最头疼的“文档”。
说实话,每次听到“软件开发文档国标”这几个字,我头皮都发麻。不是因为它难,是因为太繁琐了。太他妈繁琐了。
上周有个刚入行的小兄弟,拿着厚厚一摞打印好的文档找我,眼睛亮晶晶的,说哥,我按GB/T 8567写的,是不是能直接拿去交差?
我翻了两页,差点没把隔夜饭吐出来。
那文档写得,工整得像个印刷品。字体统一,行间距完美,连标点符号都挑不出毛病。但是!内容呢?全是废话。
“系统旨在提高用户效率。”——这算啥信息量?
“数据库采用关系型结构。”——废话,谁用非关系型?
这种文档,除了浪费纸张和打印费,对开发、测试、运维有任何帮助吗?没有。
这就是很多人对“软件开发文档国标”的误解。觉得国标就是形式主义,就是用来应付甲方、应付审计的遮羞布。
我恨这种观点。真的恨。
因为文档写得好,受益的是你自己,是接你班的倒霉蛋,是半夜三点服务器崩了你能睡个安稳觉的自己。
国标不是让你写八股文,它是让你建立一套“沟通语言”。
我举个真实的例子。
去年接了个外包项目,甲方要求严格按国标出文档。起初我也骂娘,心想这帮搞管理的懂个屁技术。
但做着做着,我发现这玩意儿有点用。
比如“需求规格说明书”。以前我们做项目,口头说个功能,开发闷头干,测试闷头测。上线前才发现,甲方想要的“登录”,是手机号验证码登录,而我们做的是邮箱密码登录。
扯皮?扯了三天。
后来我强制团队,所有需求必须落到纸面上,按照国标里的模板,把输入、输出、异常处理、边界条件写得清清楚楚。
哪怕写得再烦,也得写。
结果呢?上线那天,甲方指着文档说:“这里,这里,还有这里,跟我们要的不一样。”
我们拿出文档,上面写得明明白白。甲方哑口无言。
这不是为了甩锅,这是为了保护大家。
所以,别把“软件文档规范”当成负担。把它当成你的护身符。
但是,怎么才算写得好?
第一,别抄模板。模板是骨架,血肉得你自己填。别把“系统架构”写成“系统由电脑组成”。
第二,少说空话。多写细节。比如“用户点击按钮后,系统应在2秒内响应”,比“系统响应速度快”强一万倍。
第三,保持更新。代码改了,文档不改,那文档就是垃圾。最恨那种上线前突击补文档的,全是错的,看了想打人。
我见过太多团队,代码写得像屎山,文档写得像诗。这种反差,真的让人绝望。
其实,所谓的“项目交付文档”,核心就两个字:清晰。
让不懂技术的人能看懂大概,让懂技术的人能照着操作。
至于那些死扣字数的,那些为了凑页数而编故事的,我建议他们去写小说,别来祸害软件工程。
国标(GB/T 8567)是个好东西,但它不是圣经。它是工具。
你要用它,而不是被它用。
现在市面上很多所谓的“代码注释标准”,其实就是把国标里的要求简化了。比如Javadoc,比如Doxygen,这些工具生成的文档,虽然不够正式,但胜在实时、准确。
我现在的团队,要求代码注释必须规范,但正式的项目文档,我会要求核心模块必须有一份独立的说明。
不是为了应付检查,是为了万一哪天我离职了,或者项目交接给新人,他们能看懂这堆代码到底在干嘛。
别嫌麻烦。
现在多写一页纸,以后能少加十个小时的班。
这账,怎么算都划算。
所以,下次再有人跟你扯“软件开发文档国标”是形式主义,你直接把这份文档甩他脸上。
告诉他,这是专业,这是素养,这是对他人的尊重。
当然,如果你写的文档全是车轱辘话,那确实该骂。
总之,文档要写,但要写有用的。
别为了写而写。
这才是正道。