经过了针对某后台服务端的两个自动化测试项目,总结下就是这样的需求模型:
Base, 基本需求,项目方向
Ambiguous, base周围的模糊需求,表现在控制需求者对业务需求基本熟悉但掌握不够细
Unknown,对基本需求方向影响不大,表现在补充小部分base需求
项目开发本来就要求弹性,所以对于上面的需求模型仍然可以进行针对性的开发。可以参考原型模式的开发原则,先完成base需求,然后以微迭代快步去明确实现ambigous需求。
第一迭代,以base为目标,属于很明确的需求,所以可以按照瀑布的开发模式(foxyauto),对于hummerAuto我使用了类敏捷的开发方式,本迭代(按天算)时间定在2-3周然后交付一个可运行的base版本,在demo会议上去发掘unknown需求。
第二迭代,在base版本上滚雪球的方式,分为多个微迭代(按小时算)去明确和实现ambiguous需求和上一个迭代发现的unknown需求。该迭代后期,整理微迭代期间增删改的代码。
需求影响代码:
基本原则还是模块化和可配置化,目的就是应对ambiguous需求和unknown需求对于base版本的设计考验。需求有弹性,所以在设计实现上加入ambiguous需求的假设和unknown需求的猜测做好设计上的弹性。