上QQ阅读APP看书,第一时间看更新
推荐序
肯特·贝克(Kent Beck)
如何确定一个软件系统应该做什么?然后,怎样和相关的人沟通这个决定?本书研究了这个复杂的问题。这个问题很难,因为不同的相关人,各自的需求也不相同。项目经理想要跟踪进展,程序员想要实现这个系统,产品经理想要灵活性,测试人员想要度量,用户想要一个可用的系统。在这些充满冲突的观点中,想要达成一个每个人都支持的集体决定,并且维持数月或者数年的平衡都是很困难的事情。
迈克·科恩(Mike Cohn)在本书中探讨的解决方案,与以前解决这个问题的尝试方法,需求分析,用例和场景的目的是一样的。是什么如此复杂?你写下你想做的事,然后你照着做。解决方案的层出不穷,表明这个问题并不像看起来那么简单。这些解决方案的不同在于你写下了什么,何时写的。
用户故事通过两条信息来启动这个过程:每个系统需要实现的目标,以及实现这个目标所需要的大致成本。这只需要几句话,却能提供其他方法没有给出的信息。遵循“最后责任时刻”(last responsible moment)的原则,团队成员在实现特性之前,才将特性的大部分细节写下来。
这个简单的时刻转换有两个主要的效果。首先,团队可以很容易在开发早期就开始实现“最优”的特性,而那时其他特性仍然是模糊的。在添加新特性时,定义每个特性细节的自动化测试能够确保已实现的特性继续正常工作。其次,在早期对特性进行成本考虑时,可以鼓励从一开始就优先考虑特性的优先顺序,而不是最后为了满足交付日期而忙乱地缩减功能。
迈克在用户故事方面的丰富经验使本书充满了实用的建议,让用户故事成为开发团队的利器吧。祝愿大家在做开发时能够更加明确、自信。