敏捷软件开发:交付可用软件的实践指南
1. 新开发模型与迭代适应期
Acme Media采用了一种新的开发模型,在迭代之间设置了正式的适应阶段,每两周团队会向客户进行一次成果演示。若部分工作提前完成,或者获取反馈有助于设计决策,团队会在适应窗口之前提前展示成果。
2. 减少开发迭代中的干扰
在开发迭代期间,团队需要全神贯注于手头的工作。每个人都要随时准备澄清需求、协作并解决问题。开发中发现的问题有多种解决方式,例如客户修改或重新确定需求优先级、开发者绕过问题进行编码、调整产品配置或修改硬件等。
由于迭代周期通常较紧(约两周),不能花费时间去寻找团队成员并安排会议,也不能发邮件等待回复,必须迅速解决问题,确保在迭代结束时按时交付。然而,多数团队都会面临各种干扰,比如还要负责维护当前的生产环境,Acme Media就是如此。
3. 敏捷环境中的范围蔓延问题
Acme Media的开发团队过去不太喜欢变更请求,认为这是“范围蔓延”。但经过敏捷培训后,他们有了新的认识。
例如,客户最初要一个闹钟,演示时发现忘了要求有贪睡按钮,这是软件开发中的常见情况,应予以接受。但如果客户在演示后要求闹钟还能当咖啡机用,这就是需求的重大变更,可能意味着一个新项目。关键在于在功能卡片练习中要问“为什么”,了解根本业务需求,避免在开发过程中出现重大功能转变。
4. 开发起点与任务规划
Acme Media的开发团队既要做项目,又要维护三个现有网站,还有日常维护和小型增强工作,这些支持活动曾导致交付失败。在新开发模型中,他们会尽量将维护和支持活动推迟到适应周,开发期间只处理关键生