敏捷开发是一套软件开发的方法学,或者方法框架,包含有很多内容,详细定义可以点击 ,
本文主要是讲在开发团队中实践敏捷开发:
1 角色
在瀑布模型中,所有的流程是预先定义的,角色更是根据流程而划分,如下图
在敏捷中,定义的角色有
利益相关者(stakeholder) 产品所有者(product owner) 开发团队(developer team(scrum master)) 角色被分为三类:在开发团队中包含了Business Analysis、 Developer 、Tester、 Technical Architect、UserInterfaceDesigner,这些在瀑布中根据流程固定下来的角色,现在完全变成一个Team,鼓励Team之间相互沟通,用产品来驱动整个开发过程,而不是用流程来保证角色,来完成开发。对于利益相关者需要关心产品,可交付可使用的产品。对于产品所有者,他需要去规划这个产品,从开发团队获得反馈。
2 概念
sprint 直译是冲刺,作为一个开发过程,一般是2-4周。敏捷是一套通过快速迭代,来完成可交付产品开发的方法,过长会让sprint目标过于复杂,过短则完成不了计划任务。
story 直译是故事,在开发过程中,对白板(storyboard)的应用,形象直观,把每一个需求,用story来描述清楚,这是一个product ower整理出来的,想要干什么的过程,其不用关心技术,只是描述清楚what即可。
task 直译是任务,每一个story,都可以分为若干个task,task是对问题的how的描述,是developer team完成开发工作用,将task再分成子task,有助于细化问题。每个开发人员都需要对assign给自己的task,完成时间评估,而不是由项目管理人员评估。
3 流程
敏捷开发,不像瀑布强调流程,它有一些keyword,如下
PS:图片缩得不清晰了,下载流程图(.vsd)的点击
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto[1]introduced the term in 2001.