敏捷开发:程序员你不能一个人在战斗

原创
开发
敏捷开发的流行,也源自它确实能改进开放过程,让程序员免除很多不必要的重复劳动。但是在中国程序员能理解Agile,但并不一定能运用良好。究其原因还是一个简单的英文单词——Communication(沟通)。

【51CTO独家特稿】在2010年4月24日的Qcon 2010技术大会上,演讲嘉宾就敏捷开发进行了主题演讲。当中有部分嘉宾提到在中国大家都理解Agile,但对于Scrum这一方法在中国还无法全面贯彻。这也暴露了当前我国开发界在管理理念和技术水平上的欠缺。51CTO也向您推荐《初探敏捷开发》专题以便于您更好的理解敏捷开发的精髓。

[[10404]]

2010年Qcon技术大会现场(51CTO摄)

51CTO觉得还是有必要先为大家介绍一下Scrum,Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums。

Scrum是一个包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。

在每一次冲刺(一个15到30 天周期 ,长度由开发团队决定),开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的特性来自产品订单(product backlog), 产品订单是按照优先级排列的要完成的工作的概要的需求。那些订单项会被加入一次冲刺由冲刺计划会议决定。 在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。 在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。

管理Scrum过程有很多实施方法,从白板上的即时贴到软件包。Scrum***的好处是它非常容易学习,而且应用Scrum不需要太多的投入。

敏捷开发我们欠缺在哪里?

知道Scrum的含义后,我们首先应该了解到东方人较西方人,***的区别在于内敛的性格。这种性格造成我们对于承担责任有种天生的抵触,在Scrum中这恰恰是不负责任的表现。谁都不为项目负责,***导致Scrum敏捷开发的失败。可以说单打独斗并不能成为英雄,而只会成为“堂吉诃德”式的人物。

[[10405]] 

单打独斗,只能出现错误

其次沟通能力上的欠缺,使我们很愿意单打独斗,而不是以一个整体去战斗。自然代码的迭代,文档的编写都没法完成。甚至我们与用户都愿意沟通,到***用户是什么样的需求都不了解。

在这里我们51CTO记者和来自某手机杀毒厂商的吴先生展开过讨论。记者提出对于用户的需求,很多开发团队并不是很了解,对敏捷开发的方法运用也很不合理。吴先生表示他们公司已经在采用相关敏捷开发方法,每3个星期都会和用户进行协商。把这个阶段完成的产品交给用户测试,提出新的需求和改进意见后,再进行下一步开发。基本上在完成开发后,用户对于需求的完成情况非常满意。而以前为期4个月的开发周期,没有用户参与,******的项目得不到用户的认可,认为这并不是他们需要的产品。

这样的对比让我们了解到,中国的开发团队并不是不希望采用敏捷方法。只是在接受度上还存在问题。另外,中国开发团队在人员技术差距上比美国要明显,这个方面中国要比美国在世界上排名高十位左右。不均衡的技术水平,肯定会造成短板,整个团队的开发效率不统一,敏捷也就大受打击。在51CTO记者对话敏捷专家麦天志先生时,也谈到了中国敏捷开发现状及发展之路。

管理方法不科学,也是大家诟病的地方。之前51CTO记者在与著名MVP高阳老师讨论Scrum时,高老师也谈到,目前很多开发企业还处在小作坊阶段,并没有一个很好的企业文化和管理制度。这些东西虽说和技术无关,但是人心不齐,不患寡而患不均的思潮,必然影响开发效率。这样的企业,用以前常用的瀑布模型等做开发,甚至好过使用敏捷开发,用强制力来统一整个团队。

所以,在敏捷开发过程中,特别是Scrum方法中,程序员绝对不能一个人在战斗,不管你是架构师还是初级程序员。你需要的是大家一同完成项目进度,完成自己的职责,尽可能的找出迭代方法。这才是敏捷开发中需要的好程序员。

延伸阅读

Scrum用到的术语:

角色

产品负责人 负责维护产品订单的人,代表利益相关者的利益。Scrum主管 为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益***化。开发团队 由负责自我管理开发产品的人组成的跨职能团队。Scrum团队产品负责人,Scrum主管和开发团队。

工件

冲刺燃尽图 在冲刺长度上显示每天进展的图。产品订单 按照优先级排序的高层需求。冲刺订单要在冲刺中完成的任务的清单。

其他

冲刺 一个时间周期(通常在2周到1个月之间),开发团队会在此期间内完成所承诺的一组订单项的开发。

【编辑推荐】

  1. 敏捷开发中的成效评估模型
  2. Visual Studio 2010敏捷利剑:详解Scrum
  3. 浅谈敏捷开发思想中的简单***原则
  4. 敏捷开发中的Scrum流程和术语
  5. 敏捷开发中的架构设计
责任编辑:彭凡 来源: 51CTO
相关推荐

2009-07-21 13:33:18

网络管理员局域网

2012-04-17 08:55:48

个人开发者开发心得

2010-04-01 09:52:03

云安全

2016-10-14 09:36:59

安全FFA技术

2012-03-09 09:02:33

2013-03-08 02:52:03

个人开发项目纠错

2013-06-07 10:42:53

2020-02-22 21:51:43

程序员Microsoft SServerSQL

2015-05-18 09:23:33

2020-10-05 21:13:37

程序员技能开发者

2022-11-10 09:28:40

框架开发

2019-09-18 15:16:35

华为

2013-12-24 09:59:48

程序员管理

2016-04-21 17:50:26

程序员优秀程序员

2013-04-15 09:44:01

程序员

2014-01-06 09:33:32

程序员管理

2021-07-01 07:43:41

项目程序员代码

2013-08-14 10:23:22

创业个人创业互联网创业

2015-06-12 15:29:06

一个人的爆品

2020-03-27 09:24:39

程序员技能开发者
点赞
收藏

51CTO技术栈公众号