敏捷开发学习笔记:总结

我好像还没有完全践行过敏捷开发。不过这段时间一通学习下来,结合以往的一些经历,认为敏捷的精髓在于多职能团队和迭代思想。


1、多职能团队

意味着团队成员参与了整个项目的绝大部分工作:任务领用、需求分析、设计及开发、测试、评审。

比如,需求分析,以往都是由一个所谓系统分析员来写;而在敏捷里,是由产品经理在计划会上讲故事,然后由各人报所需工时,任务领用,然后进行开发。这里看上去似乎没有所谓需求分析,有的话,也是由产品经理整理,但极有可能,产品经理也不写这个东西,他只是整理了“产品功能列表”,及相关的用户故事,并没有一份所谓的《需求分析》。如果我们需要有这份东西的话,那应该是由大家后来共同撰写,补上去的。

这样一来,传统项目中,系统分析师撰写需求分析的时候,大家闲着,写出来后塞给大家,大家也不怎么看,完全鸡肋;而敏捷中,大家都参与其中,一方面,加快了进度。另一方面,由于参与,所以对整个项目都很了解,工作态度也积极主动得多。如果要让一个人对一样东西感兴趣,最有效的手段莫过于让他参与。

全体团队成员参与计划会,是敏捷的基础。


2、迭代

scrum声称拥抱变化,但是有前提的,在一个迭代过程中,拒绝变化。

所谓的迭代,是可以工作的版本。所有模块,在迭代周期内,都必须完成。完成就是完成,不完成就是不完成,所谓完成了99.9%都不算,都不能进入该迭代。在下一轮迭代中重新排计划。


3、每日立会

似乎每日立会是敏捷开发的标杆性动作?只要我们每天站着开几分钟会,就立刻敏捷起来。

其实,据我观察,每日立会似乎就是一个汇报会,每个项目组成员都向项目经理(scrum master)进行汇报,主要是汇报昨天做了啥,今天准备做啥,然后项目经理会问一下,有啥困难没有。

其实,汇报的内容没有错,但汇报对象、以及汇报重点搞错了。立会并不是大家向项目经理汇报,而是向全体项目成员介绍自己的工作,重点在于今天要做什么,以及遇到了什么困难,目的是看能不能得到协助,以及避免做重复性的工作。比如自己想做个共用的功能,也许已经有人在做了。

而每日立会的基础,是全体成员都参加了开发任务的计划会,所有模块大家都很清楚,因此立会上才互相听得懂。


4、开发流程

1)产品经理整理需求,列出待开发的产品功能清单,并进行优先级排序。

优先级分为重要、紧急、普通等级别。紧急是客户马上要的,而重要的是基础,比如有些紧急的任务的前置条件是重要任务,所以优先级别上,重要》紧急》普通。


2)召开迭代计划会,产品经理讲解用户故事,项目成员估算,进入迭代任务


3)迭代期限到,完成的功能进入交付版本,未完成的重新进入待开发功能清单;召开评审会、反思会


我有个疑问,这里面由产品功能清单 -》 迭代任务,如果说需求分析部分是产品功能清单,那概要设计部分在哪里?整个系统的架构、技术选型这些要在哪个环节进行处理?


版权声明:本文为博主原屙文章,喜欢你就担走。

原文地址:https://www.cnblogs.com/leftfist/p/4764264.html