Joshua Partogi是scrum。org的一位资深敏捷教练,他最近就这个话题写了一篇文章,说亚洲的大多数银行都没有把敏捷开发推行得很彻底,Partogi就这个问题给出了一些解释。
最主要的原因是大多数亚洲人都对现在的管理文化很熟悉很习惯。
他们知道自己在组织中的角色,也知道在什么样的情况下该怎么办事。有人希望有人告诉自己该干什么,也有人总想指挥别人干事,整个组织工作井然有序。亚洲人习惯于和自己的伙伴保持和谐的关系,避免冲突,这就影响了亚洲的敏捷小组在从事敏捷开发时的工作方式,包括迭代计划、迭代回顾及日常敏捷工作 等。据Partogi说,人们习惯于保留意见,因为他们无法适应一个他们可能会犯错误的环境,即使在这样的环境下犯错误也无所谓。
Claudio Caballero是Goodwill Group Foundation的CTO,他在博客里写过一篇文章《在亚洲推行敏捷开发遇到了大困难》,也提到了一个原因,就是亚洲人是羞于当面说出逆耳之言的。敏捷开发需要大家当面直言问题所在,而这有悖于亚洲文化,因为亚洲人特别注意对别人表示尊重、给别人留面子,这一点与西方文化特别不同,而西方正是敏捷思想的发源地。
Partogi说亚洲的教育机制也影响了人们在工作中的思考方式和行为。
亚洲的教育完全都是为了考高分、定级别,而不是为了尝试、自我发现和试错,可这些却正是敏捷实践的目的所在。Partogi说到因为很多公司都把项目外包到亚洲去,他们想通过采用敏捷来减少成本。可实际上敏捷需要非常高素质的队员,这些人恰好通常不便宜。那么只要大家仍然误以为转用敏捷开发方式会减少成本,在亚洲敏捷就推行不下去。
敏捷开发最重要的特点是:以用户需求为中心,快速灵活,团队合作度高。
觉得难可能是实践路子不太对噢~
敏捷开发有很多方法,例如XP、精益开发。其中以scrum最为普遍。Scrum本义为带球过人,双方队员比赛前要摆开阵势,计划好进攻路线,而在软件开发中,团队领导人要做好迭代计划,排列优先级,规定必须完成的任务。
scrum3.0中有6个角色,3个工具,4个会议。
scrum3.0中的6个角色
利益相关者(Stakeholders):
业务所有者(Business Owner):
团队队长(Team Captain):
行业专家(Subject Matter Experts):
协调人/教练(Facilitator/Coach):
变更代理 (Change Agent):
运营、市场、销售等,他们负责向产品经理提出产品需求。
通常是产品经理,他负责对利益相关者提出的需求进行拆解以及进行优先级排序,并负责后期的产品评审,同时负责预测一个sprint周期的时间。
通常是我们的开发经理,负责安排一个sprint内的工作安排,通过合理安排让scrum团队的效率以及价值最大化。
行业专家拥有Scrum团队需要的,但团队中没有的知识和专业技能。
scrum制度的落实者,让scrum在团队中流畅的运作,消除他们的障碍,提高Scrum和敏捷的使用。
Scrum的咨询顾问,将Scrum引入团队中,并帮助教练理解如何最好地支持和与Scrum团队合作。
3个工具:交付清单、工作清单、正在进行的工作。
4个会议:计划会议、产品评审、进度回顾、团队回顾。
因此,scrum3.0既有计划会议、产品评审、进度和产品回顾会议,也有迭代期内的灵活应变过程,是一种轻重结合的比较好的敏捷方法。
随着各种敏捷团队在国内成熟,很多应用于敏捷的工具也层出不穷。
在工具集中挑选适合的工具使用,可以提高工作效率。以日事清团队为例:
在日事清软件中,利益相关者如销售、市场、运营等,在与用户平日的接触中积累的功能、缺陷、创意上的建议,并收集于计划看板的【BUG看板】、【建议看板】。
接下来,业务所有者(BO)需要维护精细的需求池,这个职责通常由产品经理担任,他需要非常明白产品的定位和发展,将需求池中的任务按照优先级排序,并拆解为一个个小的用户故事。然后设置具体的实施时间和项目名称,将可交付成果和待办清单,记录于road map中。
之后,我们的scrum团队会创建一个计划为【产品开发】,产品经理(业务所有者)以及开发经理(团队负责人)会从【roadmap】中提取功能形成work backlog,复制到【产品开发】的【规划池】中,work backlog中还包含一些开发团队必须做的工作,会直接记录在【规划池】中。
正式开始开启sprint (sprint:整个开发过程中若干个短的迭代周期组成)的第一件事,就是召开sprint计划会议。sprint会议上会确定本次sprint周期的目标是什么,我们需要完成哪些功能。在会议中,开发经理(团队负责人)需要将【规划池】中的功能拖动到【开发中】,从【开发中】到【测试中】就是日事清所实践的正在进行的工作(WIP)。
会议上会评估每个功能所需的工时以及功能的负责人,我们为确定好的功能添加时间以及任务成员。通常计划会议会开比较长的时间,它是之后迭代开始运作最关键的会议。
为使得这个会议得到很好地传达,可以通过日事清的日程应用创建好会议任务,并下发给团队成员。
sprint计划会议的开启,意味着第一个sprint开始了:从开发到测试,形成的工作成果都发布到beta版本中。执行sprint的过程中也有很多问题被发现,需要解决,应此需每日召开约15分钟的站立会。
在每日站立会上,每个团队成员需要回答三个问题:
● 昨天做了什么工作?
● 今天要做什么?
● 完成目标是否存在什么问题?
当测试人员完成了本个周期内的所有功能的测试工作时,预示着本个sprint结束。
在迭代结束前,产品负责人需要进行产品评审,产品会对测试中的功能进行验收。将达到了产品目标的成果拖动到【待发布】中。
最后整个团队还需要进行一次回顾总结会议,回顾这次迭代有哪些做的好,哪些做的不好,有什么计划。团队成员需轮流发言,完成自评和他评,分析和总结上一个迭代中遇到的问题,并列出下次的可执行任务,便于改进整个团队的效能。
至此,一个sprint周期完成,以此开始下一个sprint,不断循环往复。
- 上一篇:为什么说他山之石可以攻玉
- 下一篇:为什么说吃海鲜等于吃塑料??