第6章“敏捷流程”主要讲述了敏捷流程及其原则,Backlog、Burn-down、Sprint、Scrum方法论,和各种软件开发方法论的优缺点及选择软件流程的根据。
“敏捷流程”是一系列价值观和方法论的集合。
敏捷开发的原则是:
1.尽早并持续地交付有价值的软件以满足顾客需求
2.敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势
3.经常发布可用的的软件,发布间隔可以从几周到几个月,能短则短
4.业务人员和开发人员在项目开发过程中应该每天共同工作
5.以有进取心的人为项目核心,充分信任他们
6.无论团队内外,面对面的交流始终是最有效的沟通方式
7.可用的软件是衡量项目进展的主要指标
8.敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
9.只有不断关注技术和设计,才能越来越敏捷
10.保持简明-尽可能简化工作量的技艺-极为重要
11.只有能自我管理的的团队才能创造优秀的架构、需求和设计
12.时时总结如何提高团队效率、并付诸行动
敏捷的步骤:
第一步:找出完成产品需要做的事情-Product Backlog(积压的工作、待解决的问题)
第二步:决定当前的冲刺(Sprint)需要解决的事情-Sprint Backlog
如果团队成员能主导任务的估计和分配,他们的能动性得到较大的发挥
第三步:冲刺-外界人士不能直接打扰团队成员,这一措施较好的平衡了“交流”和“集中注意力”的矛盾。冲刺阶段通过每日例会(立会)来进行面对面的交流(昨天做了啥,今天要做啥,碰到问题),SCRUM Master根据项目的情况,用简明的图表(燃尽图、看板图)展现整个项目的进度。冲刺阶段是时间驱动的,时间到就结束。
第四步:得到软件的一个增量版本,发布给用户。然后在此基础上又进一步计划增量的新功能和改进。
每一步遇到的问题:
第一步:各个需求和任务之间是有种种复杂的依赖关系的,除了优先级之外,我们还要考虑相互依赖关系
第二步:把一个任务从产品层级的描述逐步细化到技术实现层面,很需要技术能力和交流能力的。
第三步:定义好任务是什么,不能笼统的定义,且每一个任务要记载剩下所需的时间,如有需要,可以用文档和其他辅助手段来沟通。测试人员可以作为产品负责人的部分责任,对最终产品负责
第四步:冲刺完,总结上次的经验教训,争取下次更好。多次总结改进,逐步提高团队效率,满足用户需求
敏捷对团队的要求:
自主管理,自己挑选任务,总结不足
自我组织:每个人联合起来对项目负责,互帮互助
多功能性:每个人都全面负责,自己搞定规格说明书,和别人沟通,同时自己搞定测试。