|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在开始之前还是先来做个对比:: i3 @3 x- N4 V+ f8 q
- J( i4 d. v+ L2 i# E+ y7 }
通过以上对比,我们发现,每一种研发过程模型都是在一定的历史背景下形成的,而且有各自的使用场景。当下“互联网+” 已深入人心,软件行业也在适应时代变化要求,做出适应性变革:如何接纳并响应变化、加快研发速度、持续交付软件价值乃是当务之急!近年来敏捷研发过程已得越来越多地得到世界各地软件公司特别是中小型创业团队的亲睐,让我们以审视的态度一起来看看敏捷研发到底是怎样的?汲取精华,打造属于我们自己的敏捷研发体系!0 [' M+ [) B5 t9 B8 K: Y2 j- v- m
7 l/ C& |' `' U: R! F: c$ W5 }
敏捷(Scrum)是什么?/ W$ z! F" T5 r
敏捷Scrum是目前国际公认的优秀管理实践! 近年来尤其在创业团队非常受欢迎!1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。敏捷一词来源于2001年初美国犹他州雪鸟滑雪胜地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。6 E6 h3 |* A1 \# j3 |
Scrum是一种兼顾计划性与灵活性的敏捷开发过程,原词来自于橄榄 球中的“带球过人”。在橄榄球比赛的每次冲刺前,都将有一个计划安排的过程,但冲刺开始后则由队员在原计划的基础上随机应变。其实我们经常看到足球、篮球、乒乓球等运动教练都会有这样的冲刺迭代计划,而运动员们在场上在计划的基础上灵活机动地做出迅捷的冲刺。
9 j5 d1 p+ J1 e6 N! {软件公司何尝不是这样呢?研发团队leader先做好迭代规划,排好需求功能开发优先级,调度各种资源,制定开发计划;开发中研发团队各就其职,每日反馈开发进度,根据实际情况灵活修整计划,最终给出软件产品。
' Y2 g+ D6 B5 x( L
( u$ y8 D5 l% N+ p' c
Scrum敏捷过程主要内容' w* h. P( K4 }" [- p2 \
★ 3个角色
5 x" w( z& Z" x" N' Y产品负责人(Product Owner):负责产 品需求的提炼、条目化、优先级排序。
! x3 o( R% E# P o f ~) ?Scrum Master:负责 维护Scrum方法的秩序,并协助解决非 技术问题
3 _) O0 `$ ?0 N- k7 \) F- xTeam(团队) :以“自组织”的相对扁平方式进行管理,负责完成开发工作。
0 M7 g/ h' } U' l0 j★ 4个活动短会
; ?$ J' B4 X+ x2 Q$ y2 TSprint计划会议:团队Sprint中要完成的工作
$ A/ Q4 s3 n9 j ~+ ^+ C: ]每日站会:昨天做了什么, 今天要做什么,遇到了什么困难
0 b+ r) K b: e; s9 |Sprint评审会议:小组向产品负责人展示迭代工 作结果、产品负责人给出评价和反馈、是否成功交付评价任务完成情况?& m6 J) ^1 M& Y0 @. e5 c
Sprint回顾会议:在每个迭代后召开简短的反思会,总结哪些事情做的好,哪些事情做的不好 ?制定改进计划
/ c A7 Z9 e. `4 L# @8 _: E2 X★ 1个看板(敏捷日常跟进) |. z W$ r, G# o4 r' r
看板简单说就是把所有计划、正在工作的内容(UserStory),张贴到一个划分为用户故事、计划中、进行、结束等栏位的板状空间中,一般建议使用实物板。 见下图:
{0 Z3 P7 d9 y' F. U/ R$ N
- ~$ A& S+ O, e8 W
敏捷Scrum6个原则/ W2 C5 e) k1 z! s5 w$ |7 j2 S
a. 快速迭代6 z% L2 Z/ t( v; ^/ c
相对那种半年一次的大版本发布来说,小版本的需求、开发和测试更加简单快速。一些公司,一年仅发布仅2~3个版本,发布流程缓慢,它们仍采用瀑布开发模式,更严重的是对敏捷开发模式存在误解。
+ i* T( ?' g) J' S+ M8 M# k1 mb. 让测试人员和开发者参与需求讨论0 ]1 f- L/ e: A" v, |
需求讨论以研讨组的形式展开最有效率。研讨组,需要包括测试人员和开发者,这样可以更加轻松定义可测试的需求,将需求分组并确定优先级。 同时,该种方式也可以充分利用团队成员间的互补特性。如此确定的需求往往比开需求讨论大会的形式效率更高,大家更活跃,参与感更强。
; B7 r i' S6 I/ [1 R* h. I) G- U8 pc. 编写可测试的需求文档# Y. ~' I+ F2 v. q1 m. B6 f
开始就要用“用户故事”(User Story)的方法来编写需求文档。这种方法,可以让我们将注意力放在需求上,而不是解决方法和实施技术上。过早的提及技术实施方案,会降低对需求的注意力。
; n$ d% h: P6 w0 cd. 多沟通,尽量减少文档
6 L4 k( E) o/ P; A; Y* E, X: B, H任何项目中,沟通都是一个常见的问题。好的沟通,是敏捷开发的先决条件。良好高效的沟通的重要性再怎么强调也不过分。
$ S; F( }3 s; a5 z$ G团队要确保日常的交流,面对面沟通比邮件强得多。6 a* y: y7 p) ?8 w2 l* _
e. 做好产品原型
T3 Z- c5 k- s. R8 V" j建议使用草图和模型来阐明用户界面及交互。并不是所有人都可以理解一份复杂的文档,但人人都会看图,效果立竿见影。& n. k" s- W4 P! b, W
f. 及早考虑测试
B2 f3 k+ t7 l6 z" L及早地考虑测试在敏捷开发中很重要。传统的软件开发,测试用例很晚才开始写,这导致过晚发现需求中存在的问题,使得改进成本过高。较早地开始编写测试用例,当需求完成时,可以接受的测试用例也基本一块完成了。 敏捷价值观
& \& C% a7 f6 V& o3 \承诺 – 愿意对目标做出承诺
- ]) E2 E$ U7 R, |专注 – 把你的心思和能力都用到你承诺的工作上去
, ?) {! U: W) n; N开放 – Scrum 把项目中的一切开放给每个人看
5 B4 _0 `1 F. `5 B" Y$ }尊重 – 每个人都有他独特的背景和经验- @% J3 P3 I! R5 `4 h
勇气 – 有勇气做出承诺,履行承诺,接纳建议
, c! W* w/ d) B: A" F共勉+ e* ^$ q$ g6 i4 z( E6 k5 s# n
只有适合团队的敏捷方法才是好的敏捷方法!
, |: ?+ |, I; e3 I- O千里之行,始于足下!0 N3 Q- r3 P3 ?$ {, n9 C
: `+ Y9 x2 R- Y. z |
|