`
isiqi
  • 浏览: 16746764 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

我心中的敏捷(5)----SCRUM之项目分解与控制力

阅读更多

本文作者:sodme
本文出处:http://blog.csdn.net/sodme
声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.

引言:
博闻而后智慧,勤学更要多实践。相比于以前,现在对于知识和信息的获取便捷程度,已有太大进步。但是,人的智慧却似乎正因为科技的日新月异而变得愈加退化。相比于春秋战国、先秦诸子时期的古人而言,现代的我们,无论在思想深度还是广度方面,都只能甘愿望其项背。很多东西,是一通百通的,我把这种一通百通能力叫作“开悟”。开悟,不仅仅在于你可以有很深的思想,还在于你可以把这些思想灵活运用于自己的工作和生活。对敏捷和SCRUM的理解也是一样,刚开始,我只把它当作一种纯技术层面的开发方式,后来我发现它的很多东西其实是一种方法论,再后来,我发现它的很多东西其实是一种生活和工作的态度。乃至于现在,我甚至将要把敏捷与佛教挂上勾了,这不是说我形而上学,而是,我发现了把思想用于实践、从实践进化思想的最大乐趣。

正文:

我们的团队和产品,在发展过程中,经历了很多个困难时刻,这些困难里,既有技术方面的,也有人员方面的,既有我们自己能克服的,也有靠我们自己的力量解决不了的。但是,从始至终,我们都抱着一个很强烈的信念:作产品,而不仅仅是作技术; 作团队,而不仅仅是作产品; 作好自己,而后再去影响和帮助别人。在我眼里,产品是我们生存下去的唯一希望,而团队则是作出产品的最核心因素。

啰嗦了这么多,其实,我是想说,不管你采用什么样的开发方式,其出发点和落脚点,都首先应该是:把产品作好。在想着把产品作好的前提下,再客观的分析团队、产品、公司的现状,而后决定你及你的团队所走的路。即使一个被别人吹得再神的开发方式,拿给你用时,你也需要从自己的实际出发,看看哪些东西是有利的、哪些东西是无用的甚至是有害的,你要时刻清楚你想要的是什么,而后再决定如何引进和采纳。

我知道,很多人都很明白我以上所讲的道理,只是,所有的问题最终可能都归于:大家尚没有足够的能力去判断哪些有益哪些有害,因而也就决定不了哪些应该引进,哪些应该舍弃。我想说,无论哪个团队,也无论哪个个人,在其成长的过程中,都必然经历过这样一个阶段,不同点在于,你站在一个什么样的角度去分析和处理这些问题。还是上面说的那句话:在这个时候,你需要从产品全局的角度再反复审视一下,哪样作对产品最有利,就采取哪样的作法。

请永远记住:产品第一!只有这一点,才是我们最根本的、也最实际的目标。有了这一点,其它所谓各种各样的开发方式,才有意义,否则,就是在浪费大家的时间,就是在教条化。

铺垫了这么多,现在让我们进入正题,看看我们是如何以SCRUM的方式来驱动一个网游项目的研发。

2006年8月,在我们的产品反复折腾了很多个回合----无任何大进展的回合后,公司高层想在我们产品组推动一种新的开发方式:SCRUM。

在整个SCRUM开发方式方面,我们把一个项目首先分成:若干个“重大版本”,把每个“重大版本”又分成若干个Sprint阶段。

每一个“重大版本”相当于以前我们经常所说的开发里程碑,而每个Sprint则是在“重大版本”这个相对较长的里程碑时间内对工作目标再细化,生成每两周一个的更加可控的开发内容和可发布的小版本。通常,一个“重大版本”的开发周期是两到三个月,而一个Sprint的开发周期则是一至两周。在“重大版本”和每个Sprint的工作目标里,都明确列出了每一阶段准备完成的内容。

此外,采用了SCRUM开发方式的团队,在每天早晨,都会一个很简短的晨会,我们团队也不例外,团队的每个成员在会上只说三句话:昨天完成了什么内容,今天准备完成什么内容,以及今天的工作需要找谁协调(如果有协调需求的话)。注意,在这个晨会上,我们特别强调每个团队成员到底在昨天“具体完成”了哪些内容,不能太笼统,不能太含糊其词,要明确,要具体,要能一说就让别人知道你在作什么以及已经作了什么。

由此来看,对于一个项目目标,我们大致采用了以下的分解方式:


一个完整的产品(12~18个月)
|
-------------------------------------------
| | |
重大版本1(2~3个月) 重大版本2 重大版本3
|
--------------------
| | |
Sprint(2周) Sprint Sprint
|
--------
| |
Scrum Scrum(每天)


在大家的日常开发中,我们通常都会遇到这样一种情况:当项目刚刚开始时,我们都能很详细的列出到哪个时间点作出哪些东西,而实际上,很多的项目,都不能按照预定的时间完成。那么,这是为什么呢?

这是因为,我们只在开始和结束两个端点对产品进行了控制,而没有对产品研发的漫长中间过程进行控制,或者说控制了但没有很好的效果。事实上,在结束时再进行控制已经晚了,我们真正应该发力的点恰恰是这个“中间过程”。那SCRUM有什么比较好的方式对中间过程进行控制吗?当然有,那就是:“逐层分解”,而且,是切实可行、易被贯彻、可见成效的“逐层分解”。

如果仅从对一个项目的进度控制粒度上来说,我认为SCRUM方式更好的在形式上保证了对项目进度在更细的粒度上进行更有效的控制,从而更好的保证产品可以成功:把一个开发周期在12到18个月的完整产品,先分解成2~3个月的研发短周期,进而又把这2~3个月的时间再细化,划分成2周粒度的Sprint目标,而具体到了每一天每一个人的开发任务上,又让每个人明确了自己今天和明天要作的事,同时大家也能明确知道未来两周自己的开发目标。

很多公司和很多团队,整天在喊我们没有执行力,我们一定要提高执行力。什么叫执行力?怎样才能提高执行力?我认为,如果保证了这样的控制力,就一定可以产生执行力。

如果从对整个项目的分解层次来看,SCRUM方式,很强调对于项目的控制力,同时,也很强调尽快推出版本的能力。作互联网产品,特别是作网游产品,绝大多数的团队由于水平、经验等诸多方面的原因,都无法保证自己作的东西就一定是符合用户需求和玩家喜好的,所以,我们需要在正式版本之前不断投放一些先期测试的版本,先行开放一部分功能给用户尝试体验,开发团队在这种反馈的基础上再对设计进行调整和完善。

我以前曾经说过,比起传统软件开发,采用了敏捷开发的团队,在研发理念和深层次思想上,已经有了太大的不同:传统软件开发方式,把一切都设想得太好,假定世界美好、用户需求相对稳定,所有事情按步就搬,缺乏活力和创新;而敏捷开发,很务实,它首先承认我们不可能弄出一个完美无缺的版本出来,然后提出了一系列如何把产品从不完美变得逐渐完美的方法,在这些方法里,“尽快发布最新可用版本”成为一种最为有效、务实的手段。

SCRUM作为敏捷方法论的一种实践方式,它自然也是朝着这个目标走的:尽快开发,尽快测试,尽快发布可用版本,尽快让用户体验,尽快让开发团队知道自己的不足,这样又反过来激励开发团队把产品作得更好。而产品作好了,公司可以赢利,团队就能生存下去,这些都是很实际的问题。

我们为什么这么强调“尽快发布版本”?从更深层次的思想上,是因为我们承认并坚信:用户,只有用户,才是对产品是否好用、是否有用的最有效裁判者,而不是设计者本身!作传统软件时,可能你的用户只是一两家企业,你可以整天泡在你的用户那里,把各方面的需求了解得清清楚楚、明明白白、真真切切,但是,互联网的用户动辄千、万计,甚至百万、千万、亿计,你无法靠一个设计者的脑袋去考虑清楚这么多人的需求和喜好,你只能尽快提炼出他们需求中最重合的、“你自以为有用”的需求,而后尽快把想法实现出来,把可测版本推到用户面前,去验证你的设计,然后再尽快推出新的版本来满足你从用户那里得到的新有效需求。

从某种意义上来说,这种开发模式下的软件形态,是一种周而复始、不断进化的过程,它甚至已经超越了我们以前所了解的传统软件生命周期模型。蓦地,这让我想起了佛学里所说的轮回,是的,只要这种开发方式下出来的产品走上良性循环,它的存在形式本身就是一种轮回。

下一篇文章,我将继续与大家分享我的敏捷和SCRUM体会,主题将是:如何具体规划每一天。

分享到:
评论

相关推荐

    scrum起航-试用敏捷开发的入门者

    ### Scrum起航—试用敏捷开发的入门者 #### Scrum概览及入门实践 在当前快速变化的商业环境中,软件开发团队面临着前所未前的压力,不仅需要更快地交付产品,还需要确保高质量的同时提高团队成员的工作满意度。...

    Course.Technology.PTR.Scrum.in.Action

    《Scrum在行动:敏捷软件项目管理与开发》是一本深度解析Scrum敏捷开发方法论在实际项目中的应用与实践的书籍。本书由Andrew Pham和Phuong-Van Pham共同编写,通过丰富的案例和实践经验,详细阐述了如何在软件项目...

    scrum-checklists

    Scrum是一种轻量级的框架,它通过一套简单规则支持敏捷思维在组织中的实施,以提高生产力和工作满意度。Scrum Checklists汇集了SPRiNT-iT教练们的实践经验,为Scrum规则提供了更为细化的检查项和行动指南。这套检查...

    Scrum Devlopment Process.pdf

    Scrum是一种轻量级的敏捷开发框架,主要用于管理复杂的产品开发项目。它由Ken Schwaber和Jeff Sutherland共同提出,旨在寻找一种能够充分利用面向对象和组件技术的开发方法。Scrum的基本理念认为,软件开发就像新...

    软件工程中的敏捷项目管理方法与实践分享.pptx

    ### 敏捷项目管理方法与实践 #### 第一章:软件项目管理概述 - **软件项目管理简介**:软件项目管理是一项系统性的工作,旨在通过规划、组织、指导和控制来确保软件项目的顺利进行,最终达成预定的目标。其特征...

    Scrum in Action

    敏捷软件项目管理与开发:Scrum实践 Scrum是一种敏捷软件开发框架,被广泛用于管理复杂的产品开发工作。与传统项目管理方法相比,Scrum强调迭代、增量的开发方式和团队合作的生产力提升。Scrum框架下,项目被分解成...

    项目管理之美-项目管理那些事儿

    不同的行业和项目可能采用不同的项目管理方法,如传统的瀑布模型、敏捷开发的Scrum或Kanban,以及近年来流行的DevOps理念,都是为了适应不断变化的环境,提高项目成功的可能性。 六、个人和团队技能 优秀的项目...

    深度讲解:Agile and Tooling敏捷开发与工具

    例如,Jazz 是IBM提供的一套协作开发平台,它集成了需求管理、版本控制、缺陷跟踪、构建管理和团队协作等功能,帮助敏捷团队有效地管理项目。其他常用工具还包括: - **Jira**:项目管理和问题跟踪工具,广泛应用...

    IPD+CMMI+Scrum一体化研发管理解决方案

    - **Scrum注重快速迭代**:采用敏捷开发模式,将项目分解为可短周期实现的小目标,适应市场变化,实现快速交付。 #### 三、IPD+CMMI+Scrum一体化研发管理解决方案详解 ##### 1. IPD:确保方向的正确性 IPD的核心...

    Scrum & XP

    ### Scrum与XP实战经验分享 #### Scrum与XP概览 本书《Scrum & XP from the Trenches》由瑞典作者Henrik Kniberg撰写,并由台湾翻译为传统中文版,分享了作者在实践中应用Scrum和XP方法的经验与心得。Scrum是一种轻...

    敏捷开发:管理者的成功路线图白皮书

    根据调查数据,Scrum是最受欢迎的敏捷方法之一,其次是Scrum与Extreme Programming (XP)的混合方法。越来越多的企业正在采用敏捷方法来改善其软件开发流程,并取得了显著的成绩。 总之,敏捷开发不仅是一种技术方法...

    刘世涵pmp培训讲义

    7. **敏捷与传统项目管理** - 敏捷方法论,如Scrum和Kanban,强调迭代和灵活适应变化。 - 传统瀑布模型与敏捷方法的对比和融合,理解不同环境下的适用性。 8. **软技能** - 领导力:激励团队,建立信任,促进...

    很详细的PMP章节知识点梳理

    - WBS(工作分解结构):将项目分解为可管理的组件。 - Gantt图:展示项目进度的条形图。 - RACI矩阵:角色与责任分配,确保责任清晰。 - PERT图:用于估算项目时间和依赖关系。 - 风险矩阵:评估风险概率和...

    敏捷mini培训总结

    1. **Scrum**:是最广泛应用的敏捷框架之一,包括冲刺(Sprint)、产品积压工作列表(Product Backlog)、每日站会(Daily Scrum)等关键元素。 2. **Kanban**:侧重于可视化流程和限制工作在制品(WIP),以促进...

    PMP知识汇总

    - 工作分解结构(WBS):将项目分解为可管理的组件,便于规划和控制。 - 甘特图:用于可视化项目进度计划,展示任务之间的依赖关系。 - 成本效益分析:评估项目是否值得投资,比较预期收益与投入成本。 - ...

    PMP考试-学习笔记-1.doc

    - 重点知识汇总:敏捷原则、敏捷框架(如Scrum、Kanban)以及敏捷方法在项目管理中的应用。 - 关键词:可能包括“迭代开发”、“敏捷会议”(如每日站会)、“用户故事”等。 - 题目考点收集:敏捷思维方式和在...

    项目管理文档

    - 需要熟悉项目管理框架,如PRINCE2(项目组合、程序和项目管理)和敏捷方法(Scrum、Kanban等)。 5. **项目管理应用** - 项目管理广泛应用于建筑、IT、制造、服务业等领域,不仅限于大型项目,也适用于小型和...

    深度精耕-经典项目管理书籍

    6. **敏捷方法**:虽然日本企业的管理风格可能更倾向于传统,但随着敏捷思想的普及,书中的内容可能也会涉及敏捷项目管理,如Scrum或Kanban等框架。 7. **持续改进(Kaizen)**:日本企业管理的核心理念之一是持续...

    敏捷项目管理

    迭代计划是敏捷项目管理的核心环节,涉及将大目标分解为一系列短期、可实现的目标,通常以两周为一个周期进行。每个迭代周期开始时,团队会根据优先级、收益、成本和技术风险评估来确定要完成的工作项。通过规划扑克...

    IBM项目经理培训(全套资料)

    - IBM采用的项目管理方法可能包括其自有的Rational统一过程(RUP)或其他敏捷方法,如Scrum或Kanban。 - RUP是一种迭代、面向架构的软件开发过程,强调早期构建工作软件并持续改进。 3. **项目规划与控制** - WBS...

Global site tag (gtag.js) - Google Analytics