缘起
“我们产品已经做完了,客户说要补上需求文档,可我们只有用户故事,这个文档应不应该写呢?”
“没有这个文档,客户能验收吗?”
“不能,客户要开课题评审会,这个是评审会材料之一。”
这个文档要不要写呢?写,为什么?不写,为什么?写怎么写?不写,怎么不写?
为什么敏捷不写文档?
先把话说绝点,敏捷就是不写文档。那为什么不写文档?
为了减少浪费。
敏捷认为所有中间产品,需求,计划,设计,测试用例……都缺少客户价值,客户最想要的价值,无疑是最后的可运行的软件。因此所有中间文档都应该省略省略再省略,直到不写。
不在对客户没有价值的东西上面浪费时间,这是敏捷不写文档的真实含义。
只是从实践上看,最浪费时间的无疑是那些无用的文档。但倘若文档是有用的,而且甚至是客户价值的重要部分,一切就变了。
怎样写这个需求文档?
就这个文档而言,它是为了验收所用,和开发没有关系(已经开发完了),和日后维护没有关系。
那怎么写?这个问题就不回答了,当然是按验收的写法写。
所以,所有文档的所有写法,在每个企业都不相同,不应该问“敏捷开发应该怎样写XX文档?”,而是应该问“应该怎样写上面那个文档?”,而若能这样发问,答案已经明确了。