整个流程有两个迭代循环:
1、Requirements Iteration
这个迭代循环贯穿于整个敏捷设计流程。用户需求随着时间推移不断更新,整个设计流程的迭代。根据以用户为中心的设计思想,当用户的需求发生变化时,在设计流程中要及时响应,做出调整变化。
2、Solution Iteration
这个迭代循环主要指Iterations阶段,用户需求相对确定,设计方案的不断优化更新。当需求基本确定后,设计师需要配合开发团队不断优化设计思路,提供更优的设计解决方案。
特别需要注意的是,前面两个阶段(Iteration -1, Iteration 0),应该早于当前研发的Sprint N一个周期(Sprint N-1)进行。进入当前的Sprint工作周期,完成第一个迭代设计后,研发团队可以开始该部分内容的开发测试,与设计师不断互动推动迭代。在Sprint N的末期,设计师完成当前Sprint的基本设计工作后,开始收集前面Sprints release内容的反馈。团队不需要提前太多进行设计,要保持需求的最新update,主要依赖测试结果作为支撑,不断持续改进优化设计,以便每次迭代结束后产出物都最适合当前迭代的需求。
Rules 原则
快速迭代设计的一些原则:
验证可行性的必要
完美的敏捷思想是团队中的每个人都是全才,大家都可以design,coding,testing。不过这样的团队不多,全才的混合有时候更容易造成管理混乱,相反,专才的合理搭配能产生更好的效果。所以,如果你不会写代码,一定要在设计早期拉上开发人员,坐在一起慢慢探讨设计可行性,用代码验证原型之后,再确定方案。
测试用例验证设计的重要性
根据测试驱动设计的理念,设计师与QA协同合作,利用早期测试结果驱动设计更新,比设计师长期独自酝酿出的详细设计文档更有用。行不行,利用草图或者低保真原型让QA去测测看就知道。Scrum鼓励充分沟通与互动,这个时候QA的测试用例能发现很多设计缺陷和遗漏。TDD如下图所示: