[工作八卦]俺的敏捷开发不完全实践:结对编程篇  |
小工头 发表于 2010/4/11 23:19:00 | 自从看过一本介绍敏捷开发的书之后,俺一直对书里描述的美好前景念念不忘:用了敏捷开发,效率高了,bug少了,开发时间可控了,开发变得轻松了,
上楼都有劲了……真的会这样吗?最近俺手上的项目较多,有三个新人可带,于是尝试着实践了一把。书里说了,敏捷开发是需要高度配合的工作方法,需要把所有的环节都做到位才能发挥真正的功效。说起这事,俺忍不住叹息:环顾四周,俺们这个小团队所处的环境基本不能满足
敏捷开发的要求。既没有相对封闭的场地,也没有适宜讨论的气氛。更麻烦的是,俺带新人属于名不正言不顺,领导随时可以出手干预。以俺对领导的了解,只要俺做出任何令他想到“小P想教老子招来的BB放光环?!”的事情,他老人家一定会冲出来厉声喝止。所以,俺实践敏捷开发,还得提防着领导。难哪!虽然困难重重,但俺还是开始了。俗话说,不以善小而不为,不怕慢只怕站,能做多少是多少,总好过啥也不做。
先从工作模式说起吧。领导带新人通常是这样:先做些边角料的小活熟悉一下,然后给新人分配一款产品做maintain。如果有新品开发的任务,就从做
maintain的人里提拔一个做开发,完事后同时负责两款产品的maintain。如果忙不过来就招人,把老产品分给新人继续maintain……
俺把这种模式称为单品模式。单品模式的好处是责任划分十分明确,各款产品都有确定的对应人,所有的bug都能对应到相应的开发者。但是,单
品模式的缺陷也很明显。首先,除了领导之外,所有人都陷在maintain的泥潭里面。俺之前说过,maintain是很乏味的事情,少则一年,多则三年,必然甩手不干。这对于想留在公司有所发展的人是不利的,换言之就是留不住人。曾获领导赏识的几个精英BB先后离职,与此不无关系。其次,尽管产品名目繁多,但内在的代码框架其实是相同的。因此,大家各自掌握的代码存在高度的重复,只在某些细节有差异,这必然导致某种程度的混乱。实际上,俺们搞过几次代码整理,试图建立通用的代码树,但一直没成功过。鉴于单品模式的问题,俺尝试着使用了书中介绍的敏捷开发的基础方法:结对编程。结对编程就是两人同时处理编程的工作(貌似废话),其中一人负责编程,另一人负责“导航”,为编程者指出前进方向,纠正编程者的错误。简单地说,就是一人编程一人看。这不是一个容易被接受的做法。可以想象,假如俺真的如同结对编程的字面含义那样与某个新人并肩坐在一起,看着他编程,偶尔指点一下,领导一定会跳出来怒喝:“你们在干什么?!”在俺想来,看别人编程也是一件很枯燥乏味的事。俺看别人写代码很容易睡过去,而俺被别人看着编程的时候会觉得很不自在,忍不住想发飙。话说回来,编程者和导航者的概念倒是适合俺带新人的工作方式。在实践中,俺小小地变通了
一下:俺和三个新人分别结对,但并不如敏捷开发要求的那样并肩坐在一起(多么奇怪的要求!),而是三不五时去询问他们,并与他们共享代码,在自己的工位下载他们的代码,检查是否出错。这是一种双赢的做法。新人获得了难得的开发重要代码的机会,怀着珍惜的心情,工作十分努力。一旦编程发生偏差,俺能够及时介入,纠正他们的方向,解决他们遇到的问题。弯路走得少了,难题解决得又快,自然能够加快速度(事实上,开发进度的确比俺想象的略快一些)。对俺来说,俺可以把精力集中在预想到的新人难
以处理的那些部分,提前做一些开发和测试的工作,为他们提供帮助,也掌握了项目中技术含量较高的部分,同时还能有精力去对付项目管理提出的文档需求,让俺们的项目至少看起来是经过文档化运作的。
经过一段时间的尝试,俺的结论是:与单品模式相比,结对编程的确能够取得比较好的效果。进度的快慢暂且不提,结对编程能让两个以上的新人在同一段代码中有条不紊地并发编程,这是单品模式基本上做不到的。至于别的好处,私下里引用一句加菲猫的名言:“工作好有趣!尤其是我看着别人工作的时候。”嘿嘿……话说回来,结对编程的效果依赖于导航者主动查询和介入的频率。如果导航者犯懒或者脱岗,那就玩不转了。这就意味着导航者不得不经常放下自己正在处理的事去帮助别人,这个工作节奏对于编程来说是致命的。因此俺最近的代码输出量直线下降,经常被领导怒吼:“这星期你都干了啥?!”唉,苦啊!
|
|
回复:俺的敏捷开发不完全实践:结对编程篇 |
Coral发表评论于2010/4/17 14:49:11 | 看来敏捷开发也是培养新人的好方法啊。。。
|
|
回复:俺的敏捷开发不完全实践:结对编程篇 |
〾堯仸〾发表评论于2010/4/16 22:46:16 | 俺一个月3w行代码的时候。领导说工作不是代码多少的事。俺一个月300行时。你这个月干什么了。领导。。呵呵
|
|
回复:俺的敏捷开发不完全实践:结对编程篇 |
破门发表评论于2010/4/16 10:31:44 | 这种尝试最好能先搞定领导。然后你可以光明正大、理所当然地说:
“工作好有趣!尤其是我看着别人工作的时候。”
我超喜欢这句啊,嘿嘿
|
|
回复:俺的敏捷开发不完全实践:结对编程篇 |
真不准发表评论于2010/4/12 21:45:02 | 还是在于被看者的水平和主动性。
|
|
回复:俺的敏捷开发不完全实践:结对编程篇 |
跳芭蕾舞的猪(游客)发表评论于2010/4/12 2:05:13 | 无语,沙发。
|
|
» 1 »
|

.: 公告
有人的地方就有恩怨 有恩怨的地方就是江湖 人在江湖漂,谁能不挨刀 |
|
« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
.: 我的分类(专题)
|

.: 最新日志
.: 最新回复
|

blog名称:少年包工头的工作日记 日志总数:629 评论数量:1458 留言数量:56 访问次数:8967687 建立时间:2004年12月8日 |
|

.: 留言板
|

.: 链接
|

|