`
ohmygodlzl
  • 浏览: 21404 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

切莫躺在Scrum这张床上睡觉

阅读更多
写给公司开发团队兄弟们的帖子,转到这里分享下。

当初初次尝试Scrum,便即取得成效之后,感觉很兴奋,到处跟人讲Scrum的好处,“用了以后,腰不酸了,腿不疼了,上楼也有劲儿了”,恨不得呼吁门口卖包子的阿姨也来尝试一下,可以卖更多的包子。而眼看当下,Scrum有在公司生根发芽的趋势,好几个组在尝试实施或者已经实施,我反倒觉得有点不安,就像推荐朋友去看一场自己觉得好看的电影,等朋友去了以后反倒担心不合对方的口味,空耗钱财。与其这样,在更多新的team尝试Scrum前,我觉得是时候该泼点冷水,让包括我自己在内的、听到敏捷这个词就开心的TX们冷静一下。

某次介绍Scrum的讨论会上,有个TX问了个很有意义的问题:你们team的人没变,团队能力没变,怎么可能用了Scrum就能把团队效率提升那么多?!这是一个很客观的问题,因为当有人说“Scrum,成了!”的时候,这很容易给人形成一个印象,是Scrum这个东西在起作用,即使再普通的团队,用上就起效果,就像神龙教众喊一嗓子“洪教主仙福永享,寿与天齐”之后就变身一样;或者说,只要团队用了Scrum,然后大家就可以静静地等着,等着团队的功力慢慢提升。这里我想强调的是:Scrum绝不是终南山活死人墓小龙女的千年寒玉床,躺上去睡觉就可以提升功力。如果一个团队使用了Scrum之后取得成功,我认为这个成功九分属于实施Scrum的人,只有一分属于Scrum。

为了解释为什么我下这个结论,先来看看Scrum是怎么回事儿。据Scrum教育专家考证,Scrum这种团队合作的方式最早起源于二战后的日本,因为国家经济遭受了巨大的打击,很多公司都面临着生死存亡的时刻,这个时候,好几个公司都采用了这样一种尝试:把公司内各个部门最杰出的人召集在一起,把他们关在一起,目标只有一个,在指定的时间里设计出一个用作公司未来战略的方案或者产品。而做这种尝试的公司,大都生存了下来并且高速发展了。这种尝试,被后来的方法论学者借鉴来,逐渐发展出后来的Scrum。显然,最初那一群群被组织在一起的来在各个部门的员工,他们不知道自己在Scrum,他们面临的是公司的生死存亡及与其相关的个人的利益得失,他们的目标就是在特定时间里设计出可以让公司和自己活下来的产品、方案,可以想象这种在压力和求生存的欲望下迸发出来的工作激情,与个人在领域内的经验相结合,再加上团队间的合作、互补,最终产生出高质量的输出不是一件很困难的事情。

不管这些“考证”是否属实,我觉得这种说法里蕴含着Scrum的精髓,就是上面用黑体标出的部分----团队人员来自各个部门(对应到我们团队的需求,开发,QA,SCM),团队要在指定的时间盒内(固定周期的sprint)做事,团队要有一个目标(为每个Sprint设置目标很容易被忽视,但很重要)。当然,这些还只是外在的施设,不要忽略参与到其中的那些人,他们在面临着存亡的压力时,所焕发出的高效的能量。

回到我们现在实施Scrum的团队,如果只是按照教科书,把不同角色的人召集在一起,使用周期性的sprint来管理迭代,设定每个sprint的目标,如果只做这些,那十有八九团队还会在不断出现的问题中渐渐磨去热情。对Scrum潜意识上的依赖会让人觉得,嗨,我们现在正躺在Scrum的千年寒玉床上,几个sprint以后,我们就功力大增了。但是真的走了一两个sprint后,就会发现,问题还在那里,并且可能不断出现新问题,怎么回事?用了Scrum,怎么不见效?

-------------------------------------------冷水分割线-----------------------------

我们知道软件开发是一件非常复杂的工作,如何保证在预期的资源下产出高质量的软件,这个课题从软件行业产生起就一直被激烈探讨。现在来看,我个人认为大体有两个方向,传统软件工程领域内的如瀑布、CMMI、RUP(不算太传统,但是同样强调流程)等强调的是软件开发流程的作用,通过建立一套坚实的流程机器,提高流程质量来提高产品质量;而相对应地,包括Scrum在内的敏捷软件开发方法,则强调的人的作用,敏捷宣言的第一句就是“个体与交互胜过过程与工具”,所以保证敏捷团队成功的,不是敏捷方法自身,是参与到这个过程中的人。

Scrum没有让问题走开,相反,它会让问题变得更明显(咦,一个sprint过去了,我们好像没什么产出吗?)。这种情况下,团队必须具备识别问题和解决问题的能力,找出当前团队面临的最大问题,是什么在阻碍效率提升,是什么让我们觉得不happy,是什么让我们在尝试敏捷的时候反倒笨手笨脚......然后,团队来分析问题,找出解决方案,小步快走地投入实践,然后反馈,再修正,进入PDCA的良性流程。这里我可以拿XP的哲学来说明一下它是如何解决软件开发环节中的问题的:

既然对需求的理解很重要,那么就让客户跟我们坐在一起,随时沟通
既然代码Review很重要,那么就让程序员结对编程,每时每秒做review
既然测试很重要,那就先写测试再写代码,做测试驱动开发
既然集成测试很重要,那么就从一开始就集成,每天,每时,随时集成,持续集成
...
XP在应对软件开发环节中的问题时,把好多方面都做到了极限,所以它叫极限编程。我们在软件开发中碰到的问题,也需要这种见解和魄力来解决,团队成员通过有效沟通确诊问题,然后确定解决方案,激进一点的也没问题,然后,咬牙坚持下来。这个说起来容易,实际操作的时候,需要团队成员间的信任、包容,以及共同的想把事情做好的愿望,甚至在某些方面要改变一下自己的做事方式。首先团队成员应该具备如自律,严谨,包容,有责任心这类品质,然后在彼此的合作中,将这些品质逐渐凝聚为团队的品质,那我们说这个团队才是高效的团队,成功的团队。

说到这里,感觉所有的事情都要人来解决的话,那么Scrum起什么作用?我觉得,Scrum打开了一个机会,在传统的以项目经理为主导的command and control的工作模式之外,提供了另一种工作风格,即:在自组织的、自律的团队中,团队成员平等地参与决策,参与工作,共同对最终结果负责,团队自己迈过问题向前走,共同提高共同进步,这个过程中,分享、合作、共同决策以及由此带来的新鲜的体验、成长、快乐和成就感,是Scrum这个机会能够提供给我们的。当你作为一个新员工,觉得不熟悉这个环境而羞于提出问题的时候,你可以想到-嗨,我们在Scrum,我们在努力让这个团队更好,我的问题可以让我进步,进而让这个团队进步;当你作为一个老员工,产生了在团队中应该得到更多尊重的想法时,你可以想到-嗨,我们在Scrum,我们大家是平等的,我没有更多可以让其他人服从的权利,虽然我可以提出自己的看法,但我不能强制别人接受,团队应该在合作的氛围中提升;当你意识到自己长久以来的不好的工作习惯在影响团队的时候,当团队成员间有矛盾发生的时候,当任何负面问题发生的时候,你可以想到,嗨,我们在Scrum,我们是一个团队,只有持续地改善才能让团队变得更好,跟团队目标相比,其他的事情或许不那么重要...

今天,我们踏上Scrum这条路,路的终点有两个,一个通向成功,一个通向失败,我们每个团队成员任何一个让团队变得更好的尝试(一个建议,一次为了提高代码质量的代码review,一次增强成员间了解的私人或者团队沟通)都会让我们更靠近成功的方向,而相反的,任何一种对尝试的放弃或者对工作和敏捷实践的漠然,都会让我们滑向失败的方向。

那么,为了团队变得更好,让我们做的更多一点吧,以Scrum的名义。
0
2
分享到:
评论
1 楼 daquan198163 2011-05-18  
“我们在软件开发中碰到的问题,也需要这种见解和魄力来解决,团队成员通过有效沟通确诊问题,然后确定解决方案,激进一点的也没问题,然后,咬牙坚持下来。”
没错!
所以,很多时候中国人的中庸之道会成为一个障碍。

相关推荐

    Scrum Master 认证考试原题.docx

    - **ScrumMaster**:在Scrum团队中扮演关键角色的人,负责指导团队遵循Scrum原则和实践。 - **IT认证**:信息技术领域的专业认证,证明持有者具备特定领域的能力。 - **敏捷**:一种灵活的工作方法,强调快速响应...

    SCRUM Professional Scrum Master II题.docx

    "Scrum专业Scrum Master II题库" Scrum是一种敏捷项目管理方法,旨在帮助...在本题库中,我们将讨论Scrum Master和Product Owner的角色职责、cross-functional teams的优点和挑战、Scrum框架的应用场景等方面的问题。

    Scrum-教材.doc

    Scrum 的 idea 来自于 1986 年由 Hirotaka Takeuchi 和 Ikujiro Nonaka 在《Harvard Business Review》上发表的一篇文章《The New New Product Development Game》。他们在文章中提出了 Scrum 概念,以提高产品开发...

    the enterprise and scrum

    ### Scrum 在企业中的应用与实践 #### 一、Scrum 概览 Scrum 是一种敏捷开发框架,主要用于管理复杂的产品开发项目。它强调团队合作、迭代开发、自我组织和适应变化。《The Enterprise and Scrum》由敏捷运动领袖 ...

    5分钟了解Scrum

    4. **引入新的领导文化**:Scrum要求转变角色定位和工作方式,将部分责任从管理者转移到项目团队手中,这有助于培养团队自主性和责任感。 5. **借鉴成功企业的经验**:许多知名公司如IBM、微软和施乐等都在使用...

    scrum及常见问题

    scrum及常见问题 ,scrum及常见问题处理解决办法等等

    2020-Scrum指南.pdf

    Scrum是一种敏捷开发框架,由Ken Schwaber和Jeff Sutherland在1990年代初创立,主要用于应对复杂的项目管理问题,特别是在软件开发领域。2010年,他们发布了首版Scrum指南,以帮助全球用户理解和应用Scrum。随着时间...

    redmine scrum敏捷组件

    在下载的压缩包文件"scrum-pm-master"中,可能包含了这个Scrum组件的源代码或者安装指南。如果你是开发者或系统管理员,你可以研究这个包来了解其工作原理,或者按照文档配置到你的Redmine环境中。对于团队成员来说...

    Scrum指南 2017版

    Scrum是一种迭代式增量软件开发方法,强调在开发过程中项目的可管理性和控制。Scrum的三个主要组成部分是角色、事件、和工件,它们共同构成了一套规则和实践,来支持团队在复杂产品开发中的工作。以下为详细知识点:...

    scrum资料综合

    在"scrum资料综合"这个压缩包中,包含了多种有关Scrum的重要文档,帮助我们深入理解并实践这一方法论。 首先,"Scrum_Checklists_English.pdf"提供了Scrum的检查列表,这对于确保团队遵循最佳实践至关重要。检查...

    SCRUM guide

    - **定义**:Scrum不是一种具体的过程或技术,而是一种框架,在这个框架内可以采用各种过程和技术。Scrum的作用在于揭示开发实践的有效性,以便不断改进,并提供一个框架以支持复杂产品的开发。 - **应用场景**:...

    轻松Scrum之旅

    #### 四、Scrum在中国的应用 - **现状分析**:虽然敏捷开发理念已经被广泛接受,但在国内实施过程中仍面临诸多挑战,尤其是企业文化和价值观方面的障碍。 - **实践案例**:本书作者所在的IBM中国软件开发中心成功...

    Scrum知识体系分享

    尽管Scrum在提高团队效率、提升产品质量方面表现出了显著的优势,但并不是所有的场景都适合采用Scrum。例如,在需求非常明确且不易变更的项目中,传统的瀑布式开发模型可能更为适用。此外,对于初次接触敏捷开发的...

    Scrum and XP trenches

    总之,《Scrum与XP:战壕中的敏捷实践》这本书不仅介绍了Scrum和XP的基本概念和实践,还深入探讨了如何在真实项目环境中应用这些方法论,为读者提供了宝贵的实战经验和指导。通过理解并实践Scrum和XP,团队能够更...

    Scrum在DevSuite中的迭代模型

    在DevSuite中,Scrum被整合为一种有效的工具,帮助团队更好地实现敏捷开发流程。 首先,我们要理解Scrum的核心概念。Scrum由几个关键组件构成:产品待办事项列表(Product Backlog)、冲刺待办事项列表(Sprint ...

    Scrum in 10 Minutes

    在10分钟的短篇幅内,Scrum in 10 Minutes这篇文档力图向读者介绍Scrum的核心元素,包括它的角色、会议、和相关工具。 首先,Scrum框架中的角色包括产品负责人(Product Owner)、Scrum Master(敏捷教练)和Scrum...

    scrum primer

    对于考虑采用Scrum的团队,建议在开始之前装备Ken Schwaber的《Agile Project Management with Scrum》或Mike Cohn的《Succeeding with Agile》。同时,可以通过***网站了解更多关于Scrum的培训和辅导选项。这些书籍...

    Scrum敏捷开发方法

    7. **自我组织团队**:Scrum团队自主决定如何完成工作,这激发了团队成员的创造力和责任感,提高了生产力。 8. **持续改进**:Scrum回顾会议是团队反思和识别改进机会的地方,以提高下一个Sprint的效率。 极限编程...

Global site tag (gtag.js) - Google Analytics