文档的角色是保持软件的可维护性:1)团队沟通,统一认识。2)传承知识,总结经验。这个跟敏捷本无矛盾,但是很多时候快速迭代于开发的活动,导致了文档和代码不一致,这样就没有“single source of truth",这才带来了敏捷和文档的矛盾,如果因为要保持一致性,这样既写代码又写文档,可能会拖慢进度;如果不写,就可能形成两者不同步。问题进一步就是以代码为先,还是以文档为先,如果是需求/协议文档,应该优先于代码实现;如果是解释文档,应该以代码为先。
收起从过往经验来说,文档是必须的。即便是自己,随着时间的流逝,很多细节也会忘记,如果有文档,能很快的帮助回想起来,对其他人能更快的理解。
敏捷和文档并不冲突,很多时候是因为我们技术人员没有认识到文档的重要性,或者疏于维护文档,懒的心态有关,因为文档的价值并不是立时体现。
在代码有变化的时候,文档就需要同步更新,每天留取整理文档的时间,当写日记,在整理文档的时候也是梳理思路的时候,文档能写清楚的技术人员,代码能力绝对不会差。
敏捷开发过程中文档尽可能小而精,分模块或组件服务来整理,当然需要有总的设计来指导,这和项目管理能力又紧密相关
文档内容就是工作的内容,也可以是思路、想法、理论等其他一切对项目觉得有价值的内容,文档也是一个需要不断完善的过程
避免完成了项目补文档,很多好的idea可能已经回忆不起来了