程序员,如何写好文档?

前言

听说要写文档,程序员的第一反应是:为什么要写文档?不写!程序员的我们善于编码、善于讨论方案、争辩技术,大多不善于交流、尤其不善于写文档。记得我们团队有的童鞋的周报就一句话:修改bug:TDXXXX,TDXXX2,TDXXX3….
那么问题就来了,程序要要不要写文档?为什么要写文档?如何写好文档。

1、文档有哪些?

沟通纪要、会议纪要、周报、工作总结、需求文档、总体设计文档、详细设计文档、单元测试文档、测试用例文档、需求变更文档、产品说明书、项目总结文档等等。

2、写文档目的是什么?

你有没有遇到过开晨会、周会的时候某个问题已经讨论的很清晰。但是几天后或者临近周末的时候再说这个问题的时候,团队中有的童鞋会说:“我不知道,没有说过这个问题或者这个方案”,因此而造成的BB事很伤神费心。
为了避免出现问题后的瞎BB,特需要形成文字记录下来。

1)好记忆不如烂笔头,我们讨论很好的方案,有时候只是灵光一闪,尽快记录下来会留住灵感。

2)追根溯源。口头开会的时候,大家各抒己见,貌似已经讨论出方案。但实际每个人的理解各有不同,会后及时形成文档甚至图表,抄收给与会者,便于大家达成共识。如:能清晰界定出责任、明细分工。

3)真正写的时候,更便于梳理思路。如:需求文档会清晰定义每一个客户需求点和要求,是用户利益保障的前提,是甲方、乙方沟通的纽带和桥梁。如:会议纪要是大家会议讨论结果的总结,存在问题、责任人、解决方案明确的基石。如:变更需求的依据,原来需求怎么写的,为什么不满足,原因是什么?如何修改等。

3、文档的痛点有哪些?

1)认为不重视。程序员往往会感觉没必要,能技术实现就ok了,其他不重要。

2)真心不想写。会形成恶性循环,这次不想写,下次、下下次还会如此。

3)感觉没必要。感觉没有必要写,不知道为什么要写,不知道写什么?

4、文档的重要性

1)研发开发根据,功能实现根据
需求明细是开发技术实现的依据,验收时需求矩阵中的每一个点都要覆盖和完善。

2)关乎项目的持续性。
项目管理中有文档归档管理,规划、需求、设计等贯穿项目始终的流程中的所有文档都要归档。便于下一个版本或后续项目开展的很好的依据。新加入团队人员的第一手也是最重要参考文档。

3)是为证据,便于追责
项目中曾经出现过通过甲方、乙方的邮件作为证据对簿公堂的情况。

5、如何写好文档?

5.1提纲挈领

写之前先列出提纲或者参考公司模板文档,包含哪几部分、每个部分的要点是什么都大致想到。
有了轮廓,再动笔去写。

5.2逻辑清晰

尽量不要口语化,要逻辑清晰、主次分明。如:周报好的方式包括:
1)上周工作:逐条列出。
2)上周遇到难题:逐条列出。
3) 上周风险点&待讨论点:概要列出。(会后讨论)
4)本周计划:逐条列出。

5.3图文并茂

需要图、表的地方一定不要省略。比如设计文档中的:架构图、模块图、类图、活动图、流程图等。
比如设计文档中的示例配置.ini、.xml、.conf要以截图或者表格的形式说明字段和含义。
一图胜白文,有图有真相。

5.4同步更新

这点非常重要。如设计方案真正实现的时候可能和文档不一致。实现改了,文档要跟着改。便于自己后续排除问题,也为项目以后的维护者造福。要不别人会看着一头雾水。
如:代码更新了,注释要同步更新。

5.5提供认识

团队乃至公司上下要形成一致方案,非常重视并上行下效。

5.6全局统筹

刚开始程序员的我们可能不适应,但想到利弊得失。要逐步适应。并且高层要全局统筹,做好相应的奖惩措施,提高大家的认识和积极性。

小结:

文档并不可怕,想想我们多复杂的架构头能理顺、多逻辑都能实现,文档也就是小Case。
但是,即便如此,程序员的要非常重视文档的重要性。

作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/51712757

上一篇:[译] 作为程序员你不能成功的 10 个迹象


下一篇:阿里高级技术专家方法论:如何写复杂业务代码?