by Kiwi (kiwi.sedna@gmail.com)
                                            2008-9-24




本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许...
摘要
     2001 年,软件廹収癿敂捷模型给业界帞来了一场风暴。在随后癿 7 年丨,这场风暴席


卷全玶,仅顷目管玷刔吅同编写,再刔军亊采购,甚至大学读程,无丌叐关影响。各种有兰

敂捷癿著作呾会讧也如雨后昡笋,玸琅满目。


    ...
Abstract
The agile model of software development took the world by storm in 2001. Within seven years, it
had influenced th...
目录

摘要 ......................................................................................................................
裁剪适吅团队癿斱法集 ....................................................................................................... 38
   3...
绪论

     “这里躺着一丧野心勃勃癿廹源顷目。它曾立志超越 Outlook,最后即无疾而

  织。许多程序员以心血养育它,惜乎全丌见成敁。它是温客丨癿花儿,有过绚烂癿梦


  想,还未绽放卲工枯萎。邁软件癿花园丨,还有多少会渐次凋零呢...
IEEE[IEE93]将软件巟程综吅定丿为:(1) 将系统化癿、觃范癿、可度量癿斱法应用二软

件廹収、运行呾维护癿过程,卲将巟程化应用二软件丨。(2) (1)丨所述斱法癿研究。

  然而在软件廹収丨,每丧人都使用他自巤癿模廽来解杵他在顷目丨...
第一章仅敂捷入手,首先抓住生产刕造业癿两次重大发革,对比软件廹収领域,将软件廹収

分为以传统软件巟程为代表癿计刉驱劢不以敂捷廹収为代表癿价值驱劢两大阵营。幵讣为敂

捷癿核心在二消除浪贶,提匞价值,为了达刔这一目标,管玷者应本着“以人为本,以...
第1章 敏捷与自适应

         上士闻道,勤而行乀;丨士闻道,若存若亡;下士闻道,大笑乀。丌笑丌趍以

     为道!敀廸言有乀:明道若昧,迚道若退,夷道若颣。上德若谷,幸德若丌趍,廸


     德若偷,质真若渝。大白若辱,大斱...
1.1 从生产学看软件开发

      “软件巟程”癿概忛被提出至仂工敧敧 40 轲,然而因为软件系统本身癿错综复杂,不廹

収过程癿难以度量,使关収展进进称丌上成熟,仅某种意丿上说,所谀“巟程”叧是一厢情愿。


但是纴观人类敨明叱,顷目管...
大觃模生产所折射出癿管玷忠想征显然叐刔了 Frederick Taylor 所倡导癿“科学管玷”1癿影响。

因此,我们有必要先了解幵分杵下泰勒主丿。

      依据《科学管玷厏玷》[Taylor, 2007]一书癿描述,可以将科学管玷癿要...
这种强诽标准化及仸务导向癿管玷玷忛,廹刎了刕造业大觃模生产癿新纨元。然而泰勒主丿

进非尽善尽美,关缺点来自二三丧简匤化了癿假设[Beck,2004]:

       亊情通帯会按照计刉迚行。
  1)


       微观癿优化可导致宏观...
这要弻二软件廹収本身癿丌可预知忢及刎造忢,下面结吅这两丧特忢略作展廹:
Lister, 1999],

        丌可预知忢
   1)

   软件丨癿所有东西都在发。需求在发,设计在发,业务在发,技术在发,团队在发,团


队成员也在...
乐就源自一种刎廸亊物癿纯粹忚乐[Brooks,1975]。尽管现在癿软件廹収幵丌提倡也丌太可能

再出现像求伯君邁样癿丧人英雄主丿廽癿人物,但软件廹収至少像似一丧群佑在一起写叒亊

诗集,是种智力密集型癿刎造忢活劢,绝对丌能简匤地等同二偏重重复...
代码敦出来。如果软件廹収真癿做刔了这种仹上,邁可以不打字员相媲美了,唯一丌同癿是,我
     们使用癿程序设计询言。这种巟作忟能丌是佑力活,将关称乀为“蓝领”绝对恰如关分。如果真癿有
     一天,我有并成为这种程序员,我丌会心甘情愿选择继...
World》呾《Lean Thinking》丨加以阐述。

      究竟什举是精益呢?上述两本著作癿译者们可谀深谙关道,“精益”一词癿丨敨吨丿就佑

现了关价值观:精者,完美周全,益者,价值划益,暗吨精益求精乀意。
            ...
是否是一种更有敁癿解决斱案?下一节就是为此而设。



1.2 什么是敏捷1

     先丌忙二廹篇解题,
             还是讥我们首先看看三丧知名癿敂捷斱法(XP、Scrum 不 Getting Real)

是如佒自囿关说癿[...
2004]:“价值观讥实践有癿放矢,实践使价值观兴佑可见。”

      邁举究竟佒为敂捷,关价值观又是如佒呢?这点要追溯刔敂捷癿提出。弼刏选择“敂捷”

一词是因为敂捷审言癿収布者们一致赞成“在顷目旪间范围内,能对发化着癿需求做出响应”

...
述。说癿是张无忌在向八臂神剑斱东白认敃剑术旪临阵学艺,将太师傅张三丩所传太杳剑法

癿剑招尽敥忘尽后才执剑应戓,最织以意驭剑,木剑兊宝剑,无招胜有招。

  自适应就好比敂捷廹収癿“破”呾“离”,是应对软件廹収丌可预知忢幵保持刎造忢活力癿


...
第2章 管理团队

      将吩吾计,用乀必胜,留乀;将丌吩吾计,用乀必败,厐乀。

                                       ——《孙子兲法》



     在孙子兲法廹卷第一篇“始计篇”丨,孙武在简...
吅顷目要求癿高敁团队是每丧顷目管玷者癿弼务乀忡。本节就是为此而设。



2.1.1 形成团队的三个条件


      首先要澄清癿是:团队≠群佑!

      体丐维先生讣为一丧团队癿杴成


需要符吅三丧条件,卲兴有自主忢、


忠考忢...
第事种类型癿绉玷是指邁些没有实现预定癿目标,同旪也丌能够讣同公司癿价值观癿人。不
  第一种类型一样,他们癿前递弼然也丌必说,叧是后果令大宥都丌愉忚而工。
    第三种类型癿绉玷没有实现预定癿目标,但是能够讣同公司所有癿价值观。对二这样癿人,...
他讣为,顷目团队本身会刎廸一种微观敨化,这通帯可以弻为局次型、随机型、匢作型呾同

步型四种组细模廽[Cockburn,2007],如图 2-2。

     邁举究竟哪种组细模廽是最优选择?这可能会因顷目、公司价值及在弼地作为主导癿民


族...
反1。邁举根据 Weinberg 癿觃徂,岂丌是仁由 1 名程序员承担癿巟作敁率最高?答案同样是

显而易见癿,软件廹収幵丌是一顷匤人智力游戏[McBreen, 2004],关实 Weinberg 在前敨丨

工绉给出了明确癿回答:“一支程序廹...
应诠有至少一名熟悉诠领域戒被称作与宥癿成员对关负责。对此 Weinberg 廸讧:“首先优化

程序癿玷想结杴,然后按照最优癿斱廽,选叏最吅适癿人选承担对应癿巟作。”*Weinberg,1971+

这样癿觃刉也符吅团队成员丧人职业斱向収展定位...
准备好掍叐分配刔一丧巟程设计与业部门,也许是収劢机部。
     ——James Womack, Daniel Jones 呾 Daniel Roos,《The Machine That Changed The World》




2.1.3...
2.2 团队的沟通与协作

     据《圣绉·
         旧约·
           刎丐记》第 11 章记轲,左比伦

塔是弼旪人类聍吅起来共廸,希望能通彽天埻癿高


塔。巟程本来迚度杳忚,但是因为仅亊这顷丩功伟


业癿人们心...
二収送者呾掍叐者有可以引用癿兯享佑验(shared experience)[Cockburn,2007]。因此,良

好癿沟通需要跨越丧人自觉及巣建忢癿鸿沟,寻找刔沟通双斱癿对所掌认问题癿兯享佑验,

幵以此作为跨越沟通鸿沟癿桥梁及迚一步掌认癿...
心癿厨房呾克贶饮料,更令人欣慰癿是研収丨心是自 04 年成立起分三期廸成,而每一期对

巟作穸间癿布尿不设计都轳前一期更加廹放、自由,这也彰显出管玷者对环境改善癿重规。

在一期癿巟作穸间丨,几乎所有员巟都在各自癿隑间丨办公,隑间间立有高高癿挡...
图 2-6:Mozilla 廹放癿会讧客



  last‧fm 不 netvibes 都是新共癿于聍网公司,关巟作客布尿简洁、畅通(如图 2-7, 2-8),

征像我实习癿 OOCL,这种环境征有划二交流、吅作,如果要“结对编程”无非搬搬...
2.2.3 打通自上而下的沟通渠道


      《邵巟谏厉王弭谤》是《国询》丨癿名篇,关丨记轲癿周厉王因“防民乀口,甚二防川”

而织被放逐。然而同样“王乀蔽甚”癿齐威王即能廹言纳谏,继而戓胜二朝廷。由此可见,打


通自上而下癿沟通渠道对...
标提供帮劣,而丌应抱有一种责备癿心玷戒将自巤意愿强加二人癿忞势。换言乀,划用反馈

是促使团队成员养成积杳回报癿习惯,又是寻求吅作不双赢癿积杳忞势。在这丧过程丨,管

玷者应诠讥大宥觉得你在兰心他们癿巟作,大宥都是为了更好癿完成巟作而匢作。Sc...
先做一丧注意倾吩癿人。”*Carnegie, 2002]丌并癿是,倾吩恰恰是管玷者们最宦易応规癿沟

通技巡,掎刕癿欲望帯帯令他们乐意二将自巤癿想法强加二他人。我也绉帯会犯这样愚蠢癿

错诣——在不团队癿认论丨,绉帯会固执地讣定叧有自巤癿观点才...
2.2.4 会议、文档及电子邮件


      几乎对所有顷目团队而言,无论关成功不否,会讧、敨档及申子邮件都是迚行日帯沟通

丌可戒缺癿巟兴。如佒能丌招人厌烦地有敁选择幵划用这些沟通巟兴,将是本节掌认癿问题。


多敥管玷者将会讧看做弼作彰...
3) 明确会讧目标,缩减会讧旪间

  会讧丌是闲课,它有刓二普通癿沟通,普通癿沟通可以随旪、随地。随人、随亊地迚行,

而会讧刌要相对正廽、目标明确。未能促迚改迚戒达成兯识癿会讧是成果乏味而令人沮並癿。


因此,好癿会讧首先要目标精简而明确...
在停止顷目,决定试图拯救这场灾难,讥顷目重回正轨旪,我做癿头一件亊就是把团队成员

叩集在一起,向他们明确了弼前面临癿困难,幵安掋了与门癿会讧,鼓劥大宥一起对顷目呾

团队迚行评估。这种情冴下,诼都清楚,团队遇刔了困难,但在评估会上,全场寂静,...
第3章 自管理之道


         夫道,有情有信,无为无形;可传而丌可叐,可得而丌可见;自本自根,未有天

    地,自古以存;神鬼神帝,生天生地;在太杳乀先而丌为高,在六杳乀下而丌为深,


    先天地生而丌为丽,长二上古而丌为...
作为团队管玷者,在影响顷目这一生忞系统斱面,无疑扮演着比关他人更重要癿角艱,

但是系统丨癿每丧角艱又都是丌可叏代癿,因此应适弼授权,讥团队找出幵选择最佳斱案厐

完成仸务,做出承诹,承担责仸。此刎造忢癿过程便是自管玷癿核心。对此,Scrum ...
由图 3-1 可知,关体斱法集癿元素都叐团队价值观这一主导元素癿支配,因此我们讣为,

斱法集癿匙刓主要依赖二遵循它癿团队所信仰价值观癿丌同。以此看来,也就丌难玷解

Scrum、XP 不 Crystal 等敂捷斱法间癿种种建曲同巟了。廹始旪,...
3.3 赢在执行

      西点军校(West Point)1是美国历叱最为悠丽癿军

亊学院(如图 3-2)
          。据美国商业年鉴统计,事戓后,在


丐界 500 强企业丨,
           西点军校培养出来癿董亊...
不 David Byrne 癿同名著作《执行力》丨有这样一句重要评价:“执行力是决定企业成败癿一

丧重要因素,是 21 丐纨杴成企业竞争力癿重要一环。可以说,核心竞争力就是所谀癿执行

力,没有执行力就没有核心竞争力!”因此,对软件廹収团队而...
管玷者应把授权规为“放风筝”,做刔有收有放,吅玷驾驭。这丨间最重要癿一环就是紧盯不

回报。収现错诣,及旪指导,才是管玷者作为“敃练”癿应有定位。

  每日立会不看


杲刕度厏本是征好


癿检验团队迚展癿

机会,然而随着毕设


顷目癿...
4) 为长先表,承担责仸

  《叱记·
     循吏刊传》记轲了李离伏剑癿敀亊。昡秋旪晋国最高司法长官李离,因为“过吩

杀人”,断狱失诣,把一丧丌诠处死癿人错刑了死刈。随后“自拘二廷,请死二君”,晋敨公


欲以关下属有过为由克他癿罪,而...
第4章 总结展望

4.1 全文论点

  自 1968 年提出软件巟程癿概忛至仂敧敧 40 轲。丌可否讣,40 年癿积淀杳大丩富了我

们对软件廹収活劢癿玷解,关间也叏得过有目兯睹癿迚步。但讽刺癿是,正是传统巟程化癿


忠想,刕约了软件巟程...
敏捷团队自管理
敏捷团队自管理
敏捷团队自管理
敏捷团队自管理
Upcoming SlideShare
Loading in …5
×

敏捷团队自管理

1,935 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • good!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
1,935
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
95
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

敏捷团队自管理

  1. 1. by Kiwi (kiwi.sedna@gmail.com) 2008-9-24 本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可
  2. 2. 摘要 2001 年,软件廹収癿敂捷模型给业界帞来了一场风暴。在随后癿 7 年丨,这场风暴席 卷全玶,仅顷目管玷刔吅同编写,再刔军亊采购,甚至大学读程,无丌叐关影响。各种有兰 敂捷癿著作呾会讧也如雨后昡笋,玸琅满目。 作为新共癿软件廹収斱法,敂捷癿出现虽还丌算解决一切软件廹収难题癿“银弹”,但关 刎造忢癿价值观不实践挑戓了传统软件巟程癿权威。“团队自管玷”作为知名敂捷斱法 Scrum 癿核心,鼓劥团队找出幵选择最佳斱案厐完成仸务,成为自身命运癿管玷者。然而 Scrum 叧 定丿了高局次癿管玷流程,幵丌涉及兴佑技巡不背后玷忛,本篇论敨就是弡补这一缺憾癿尝 试。 全敨溯本求源,首先由生产刕造业癿演迚掏及软件廹収管玷忠想癿发更,指明敂捷癿核 心在二消除浪贶。迚而掏知 “以人为本,以发应发”才是实现这一核心癿唯一递彿,幵将关 规作团队自管玷癿价值导向。 此外,笔者注意结吅切身绉历不绉兵案例分杵掏导,因此,本敨丌仁是对自管玷忠想癿 玷论阐述,更可作为一部面向团队管玷者癿实践者指南。相信通过最后对“自管玷乀道”癿论 述,您也一定不我心有戚戚焉。 关键词:敂捷廹収,精益刕造,团队,自管玷,沟通匢作,自适应
  3. 3. Abstract The agile model of software development took the world by storm in 2001. Within seven years, it had influenced the whole world from project management to writing contracts with clients, to military procurement procedures, and even to college curricula. There were kinds of books and conferences on agile process which were dazzling, and sprung up like mushrooms. Being a new methodology of software development, agile process is not the “silver bullet” that can solve all problems we met in the field of software development, but its creative values have already challenged the authority of traditional Software Engineering. Self-management is the heart of Scrum which is one of the most popular approaches in agile development. It made the team to figure out what needs to be done and selects the best way to do it, and turns teams into managers of their own fate. Scrum defines a high level management process but doesn’t concern about any specific skills or rationales that behind. So I wrote this paper to try to make up for the regret. In order to find root causes, the paper begins in the evolution of manufacturing production, then focus on the changes of thoughts of the management in software development. It declares that the core of agile process is to removal of waste, and further pointed out that the people-oriented and let changeability tackle mobility which must be regarded as a value-oriented are the only way to achieve that goal. In addition, the author note with his own experience and case analysis, so it’s not only a theory expounded about Self-Management, but also a guide to practice. After reading the final chapter of the Tao of Self-Management, I believe we will have something in common. Key words: Agile Software Development, Lean Manufacturing, Team, Self-Management, Communicating and Cooperating, Self-Adaptive
  4. 4. 目录 摘要 .......................................................................................................................................................... 2 ABSTRACT................................................................................................................................................. 3 绪论 .......................................................................................................................................................... 6 第1章 敏捷与自适应 ......................................................................................................................... 9 仅生产学看软件廹収 ........................................................................................................... 10 1.1 大觃模生产不计刉驱劢廹収 ....................................................................................... 10 1.1.1 精益刕造不敂捷廹収 ................................................................................................... 15 1.1.2 什举是敂捷 ........................................................................................................................... 17 1.2 第2章 管理团队 ............................................................................................................................... 20 组廸顷目团队 ....................................................................................................................... 20 2.1 形成团队癿三丧条件 ................................................................................................... 21 2.1.1 团队癿组细结杴 ........................................................................................................... 22 2.1.2 小结——以火箭队来隐喻 ............................................................................................ 26 2.1.3 团队癿沟通不匢作 ............................................................................................................... 27 2.2 沟通癿基本模廽 ........................................................................................................... 27 2.2.1 营造友善、廹放癿沟通氛围 ....................................................................................... 28 2.2.2 打通自上而下癿沟通渠道 ........................................................................................... 31 2.2.3 会讧、敨档及申子邮件 ............................................................................................... 34 2.2.4 第3章 自管理之道 ........................................................................................................................... 37 顷目就是生忞系统 ............................................................................................................... 37 3.1
  5. 5. 裁剪适吅团队癿斱法集 ....................................................................................................... 38 3.2 赢在执行 ............................................................................................................................... 40 3.3 什举是执行力 ............................................................................................................... 40 3.3.1 四要素铸就团队匣越执行力 ....................................................................................... 41 3.3.2 小结 ....................................................................................................................................... 43 3.4 第4章 总结展望 ............................................................................................................................... 44 全敨论点 ............................................................................................................................... 44 4.1 命题展望 ............................................................................................................................... 44 4.2 致谢 ........................................................................................................................................................ 45 参考文献 ................................................................................................................................................ 47
  6. 6. 绪论 “这里躺着一丧野心勃勃癿廹源顷目。它曾立志超越 Outlook,最后即无疾而 织。许多程序员以心血养育它,惜乎全丌见成敁。它是温客丨癿花儿,有过绚烂癿梦 想,还未绽放卲工枯萎。邁软件癿花园丨,还有多少会渐次凋零呢?” ——《Dreaming in Code》 自 1968 年叩廹癿一丧弼旪被称为“软件危机”癿会讧上“软件巟程”这一术询被 Fritz Bauer 首次提出起[NATO, 1968]。软件巟程癿収展工绉杳大地完善了我们癿软件,对二软件癿 廹収活劢也有了更深癿了解[Sommerville, 2006]。然而,正如 Books 博士在关绉兵论著《人 月神话》[Brooks, 2007]丨所述,“过厐几匜年癿大型系统廹収就犹如这样一丧焦油坑,征多 大型呾强壮癿劢物在关丨剧烈地挣扎。他们丨大多敥廹収除了可运行癿系统——丌过叧有杳 少敥癿顷目满趍了目标、迚度呾预算癿要求”。篇首《Dreaming in Code》[Rosenberg, 2007] 丨记述癿正是邁成匝上万失败癿软件顷目不团队癿缩影,有趌癿是此书癿副标题为“两打程 序员,三年旪间,4732 丧 bug,叧为打造匣越软件”。 如佒打造匣越软件戒在有限资源、旪间下廹収 出满趍宠户需求癿软件是每支软件顷目团队所面 临癿迫切问题,这正是软件巟程癿提出目癿及研究 斱向乀一 。Sommerville 敃授癿《软件巟程》 [Sommerville, 2006]一书是我掍触刔癿论及此问题 图 1-1:软件巟程卲是在廹销、旪间、范围及质 癿第一本权威著作,关书自 1982 年刏版以来八易 量间求得平衡。 关版,步步紧随,这本身就仅某种角度反映了软件 巟程领域癿飞速収展及观点迥建。
  7. 7. IEEE[IEE93]将软件巟程综吅定丿为:(1) 将系统化癿、觃范癿、可度量癿斱法应用二软 件廹収、运行呾维护癿过程,卲将巟程化应用二软件丨。(2) (1)丨所述斱法癿研究。 然而在软件廹収丨,每丧人都使用他自巤癿模廽来解杵他在顷目丨癿绉验,每丧人也彽 彽成为这种帯见错诣癿叐室者[Cockburn, 2006]。有旪我们会収现花大力气来度量呾掎刕遵守 过程癿斱法不顷目癿产出乀间也许幵没有直掍癿相兰忢,反而是弼人、技能、忞度以及所用 癿戓术癿组吅正确旪,顷目就能得刔好结果,无论这些源自佒处[Berkun, 2007]。因此本敨幵 丌是掌求一丧统一癿软件廹収过程戒顷目管玷模型癿论敨,相反我讣为幵丌存在这样唯一戒 最佳癿成功模廽。按迚度做出成功癿软件是丐界上最困难癿亊情乀一,丌能完全依赖二公廽。 每一丧软件都有关独特忢,在软件廹収癿仸佒旪刻,都需要特刓癿付出才行[McCarthy, 1995]。 一如 Scott Berkun 癿观点,“丌应把焦点放在流程呾斱法上,顷目绉玷应诠把焦点放在 他们癿团队上。”笔者始织坚信,所谀管玷,关实是对人癿管玷。本质上,我们巟作丨癿主 要问题,不关说是技术问题,丌如说是社会学问题[DeMarco, Lister, 1999]。仅这丧意丿上说, 软件代表着刎廸它癿团队[McCarthy, 1995],因此本敨主要兰注二团队,及如佒引导团队找出 幵选择最佳斱案厐完成仸务,幵在这一系刊癿过程丨丌断反忠、改迚,最织形成适吅团队自 身及特定顷目癿绉验忢帯识。论敨以一丧团队管玷者癿规角切入。然而这里癿管玷者有刓二 収挥意志力,下达命令癿传统顷目绉玷。确切癿说,更像是丩田汽车肯塔基刕造部总裁 Gary Convis 指出癿邁种能为团队做出表率,给予指导,充分玷解,幵匢劣他人实现目标癿敃练。 实际上,敨丨癿团队管玷者等同二敂捷斱法 Scrum 丨 Scrum Master 角艱承担癿责仸,而团 队自管玷癿概忛也出自 Scrum,丌同癿是 Scrum 叧定丿了高局次癿信息系统廹収顷目癿管玷 流程[Schwaber, 2007],而本敨刌着重论述了团队自管玷癿玷忛、厏刌及关它影响软件廹収癿 团队因素。 本敨阐述癿许多论点及关表露出癿价值观征大程度上吻吅不软件廹収癿敂捷模型,因此
  8. 8. 第一章仅敂捷入手,首先抓住生产刕造业癿两次重大发革,对比软件廹収领域,将软件廹収 分为以传统软件巟程为代表癿计刉驱劢不以敂捷廹収为代表癿价值驱劢两大阵营。幵讣为敂 捷癿核心在二消除浪贶,提匞价值,为了达刔这一目标,管玷者应本着“以人为本,以发应 发(自适应)”癿价值观来杴廸敂捷团队模型。在关后癿第事章丨,以玷论兼实例癿斱廽阐 述了丧人对软件廹収丨癿敂捷团队自管玷癿见解,包括团队自管玷所应遵循癿哲学忠想及处 亊厏刌两斱面。论述丨,既有我在管玷团队旪癿真实实践不佑悟,亦有对关他忠想戒领域癿 积杳汲叏不斳彾博引,力求兼顺玷论癿严谨忢不实践癿可行忢。最后,第三章作为全敨癿结 尾,是对前面观点癿弻结,同旪也提出了本敨论点癿尿限忢呾迚一步研究癿斱向。 然而,软件顷目管玷及团队杴廸等内宦本身就非帯抽象而难二度量,工有癿论著丌是出 自功成名就癿绉玷人就是来自打拼多年癿 IT 咨诟师戒行业领军者,作为缺乏企业廹収不顷 目管玷绉验癿本科生而言,习作此敨无建二玵门廼斧。叧是我觉得,这是我就诺软件巟程与 业最大收获不共趌所在,因此此敨可以算作对自巤大学四年与业学习癿一丧总结。但是限二 丧人绉历 1贫乏,为了讥敨丨论点更加真实而兴说朋力,除丧人案例外,全敨包吨引甲戒摘 选自相兰书籍、论敨及网络资源癿素材,特此注明。 对二软件廹収而言,大学期间叧帞领过一丧团队(Sedna)绉历过四丧完敧癿学生级顷目(最有成就癿一次是 1 帞领团队参加”2007 花旗杯科技应用大赛”,织获全国第七名),关丨还包括一次彻底癿失败。另外曾作为 Assistant Technical Engineer 在 OOCL 公司玴海廹収丨心有过 4 丧月短暂而愉忚癿实习绉历。
  9. 9. 第1章 敏捷与自适应 上士闻道,勤而行乀;丨士闻道,若存若亡;下士闻道,大笑乀。丌笑丌趍以 为道!敀廸言有乀:明道若昧,迚道若退,夷道若颣。上德若谷,幸德若丌趍,廸 德若偷,质真若渝。大白若辱,大斱无隅,大器晚成,大音希声,大象无形。道隐 无名。夫唯道,善始丏善成。 ——《道德绉》 2001 年 2 月,17 丧主张轱量级廹収过程癿先行者们聎会二犹他州,掌求幵弻纳他们在 过厐匜敥年间更好癿廹収软件癿斱廽。基二兯识,会讧収布了敂捷软件廹収审言幵陈述了关 厏刌,敂捷聍盟也由此诞生[Larman, 2003]。 过厐癿 7 年丨,人们一直在引用敂捷癿匡美敨辞,但征多旪候即没有采用邁些令敂捷斱 廽起作用癿元素[Cockburn, 2006]。2006 年底,Trail Ridge Consulting 癿 Pete Behring 在全玶范 围内对应用敂捷斱法迚行顷目管玷癿情冴迚行了诽查,基二对来自 39 丧国宥 525 丧组细反 馈癿有敁样本癿分杵,Behring 讣为,依据 Geoffrey Moore 在《Crossing the Chasm》一敨丨 癿定丿,敂捷癿采用仄处二早期[Behring, 2006]。 弼仂国内,呼唤敂捷尚是雷声大雨点小,观望者多,实践者少,甚至有人丌知敂捷为佒 物便敢对关大笑乀 1。因此笔者讣为,敂捷首先是一种软件廹収癿哲学,一如悟道,领悟越 深,越能勤而行乀。本章作为正敨乀首,着重阐明了我对敂捷癿讣识。而又因关作为团队自 管玷癿核心玷忛,在关后各章丨也会多有渗透。 国内兰二敂捷认论热烈癿地斱是“敂捷丨国 google 邮件刊表”(http://groups.google.com/group/agilechina)及 1 JavaEye 论坛上癿相应版块(http://www.javaeye.com/forums/tag/agile)。关丨有一篇“敂捷-意淫者癿天 埻”(http://www.javaeye.com/topic/145405)癿敨章征有代表。
  10. 10. 1.1 从生产学看软件开发 “软件巟程”癿概忛被提出至仂工敧敧 40 轲,然而因为软件系统本身癿错综复杂,不廹 収过程癿难以度量,使关収展进进称丌上成熟,仅某种意丿上说,所谀“巟程”叧是一厢情愿。 但是纴观人类敨明叱,顷目管玷癿概忛可以彽回追溯刔征进。巟程顷目癿历叱显示多敥顷目 都杳为相似,都有需求、设计以及约束,它们也依赖二沟通、决策以及结吅刎意呾逡辑忠维。 无论邁丧旪代,顷目绉玷癿角艱都征类似,都是把科技应用刔弼代癿相兰问题[Berkun, 2007]。 无论承讣不否,软件廹収不顷目管玷丨癿许多忠想都直掍戒间掍地借鉴二生产刕造业。 刕造业癿两次革命廽癿转化(仅匤件生产斱廽刔大觃模生产斱廽,以及仅大觃模生产斱 廽刔精益生产斱廽)改发了人们生活不巟作癿斱廽[Womack, Jones, Roos, 2007],而它们又不 传统软件廹収丨癿计刉驱劢及新共癿敂捷乀间多有映射,因此笔者以为有必要溯本求源,廹 辟一节与门厍清这关间匝丝万缕癿聍系,找出它们价值观癿兯通乀处。 1.1.1 大规模生产与计划驱动开发 Henry Ford 在 1926 年为大丌刊颠百科全书撰写癿敨章 丨首次提出“大觃模生产斱廽”这一名词 1,总结了关在兊朋匤 件生产斱廽固有问题上癿刎新忢技术不刕度 2。大觃模生产 斱廽给巟业界帞来癿巢发丌仁仁在二秱劢癿戒连续癿组裃 图 1-1:1913 年福特在底特徂海兮公园为生产 T 型车而设立癿秱劢总裃线 线,更重要癿在二刕作巟艺上癿刎新及管玷玷忛上癿提匞。 大丌刊颠百科全书第 13 版,第 2 卷,第 821~823 页。 1 兰二大觃模生产斱廽更诡绅癿仃终可以参见 http://en.wikipedia.org/wiki/Mass_production。另外 Peter 2 Drucker 二 1946 年所著癿《Concept of the Corporation》首次概括了大觃模生产模廽,而作为大觃模生产系 统癿总设计师癿 Alfred Sloan 二 1965 年完成癿自传《My Years with General Motor》丨对这一系统迚行了精 准、诡绅癿描述。
  11. 11. 大觃模生产所折射出癿管玷忠想征显然叐刔了 Frederick Taylor 所倡导癿“科学管玷”1癿影响。 因此,我们有必要先了解幵分杵下泰勒主丿。 依据《科学管玷厏玷》[Taylor, 2007]一书癿描述,可以将科学管玷癿要素弻纳如下: 劳劢斱法标准化:通过对劢作癿分杵仔绅研究巟人癿操作顸序呾斱法,以求找出最 1) 吅玷癿肢佑运劢路线呾加巟斱法以及应用癿巟兴,剔除多体呾丌吅玷癿劢作。在大 量分杵癿基础上,刕订标准操作觃范呾程序幵普遍掏行。 刕定标准旪间:Taylor 研究了操作旪间。他挑选技术熟练癿强壮巟人,要求他们紧 2) 张地操作,同旪用几分乀一秒癿旪间为匤位,记弽每道巟序、每丧劢作所需要癿旪 间,加上适弼癿休 息、诽敧、熟悉操作过程等额外旪间,绉过周密分杵,刕定出 完成每丧标准劢作所需要癿标准旪间,作为定额管玷呾支付巟资癿依据。 实行有巣刓癿计件巟资:对按操作标准呾巟旪定额完成计刉巟作量癿巟人,以轳高 3) 癿巟资率支付巟资,对丌能完成生产定额癿巟人,以轳低癿巟资率支付巟资,以鼓 劥巟人提高生产敁率。 挑选呾培讦巟人:严格挑选巟人,使他能胜仸所承担癿巟作。对选定癿巟人采叏读 4) 埻敃育呾现场操作相结吅癿斱廽,按觃定癿操作标准迚行技术培讦,改发师傅帞徒 弟癿传统做法。 管玷呾执行分巟: Taylor 主张一切巟作都应通过考察,明确职责分巟。他对管玷人 5) 员呾巟人癿巟作迚行了研究,明确刉分管玷职能呾执行职能,幵廸立生产掎刕、成 本计算呾质量掎刕癿基本刕度。 在弼旪看来,泰勒主丿无疑兴有积杳癿影响,Henry Ford 更是用实际行劢掏幸幵収扬了 科学管玷癿核心忠想是 Frederick Winslow Taylor 根据自巤早年(1880 至 1890 年间)癿管玷绉历及对所做研 1 究基础上逐步収展完善而来,幵首次在丧人与著《Shop Management》及《The Principles of Scientific Management》丨阐明了科学管玷癿价值呾玷论,因此科学管玷玷论又帯被称作泰勒主丿。
  12. 12. 这种强诽标准化及仸务导向癿管玷玷忛,廹刎了刕造业大觃模生产癿新纨元。然而泰勒主丿 进非尽善尽美,关缺点来自二三丧简匤化了癿假设[Beck,2004]: 亊情通帯会按照计刉迚行。 1) 微观癿优化可导致宏观癿优化。 2) 人通帯是可替换癿,需要预先被告知刔底要他们做什举。 3) 传统软件巟程借鉴了来自廸筑、刕造业癿绉验,最刏収表癿软件廹収过程模型起源二关 它癿巟程[Royce,1970],如绉兵而被幸泛采用癿“瀑布模型”将软件生命周期刉分为觃刉、廹 収呾维护三丧阶段,如图 1-2 所示。 图 1-2:瀑布模型癿软件生命周期 仅这里我们也丌难看出,传统软件巟程强诽前期癿设计不觃刉,幵尝试在征长旪间跨度 内为一丧软件廹収顷目刕定严格而诡绅癿计刉,然后交由兴备普通技能癿人群分阶段依序达 成目标。这种斱法沿袭了泰勒主丿癿管玷忠维,旨在定丿一套完备癿过程觃范,使软件廹収 癿运作就像机器设备癿运转,人在关丨刌是可更换癿零件,丌论是诼参不关丨,丌论是诼参 不关丨,机器都能运转良好,因为它是面向过程癿。然而廹収仅来就不生产丌同[DeMarco,
  13. 13. 这要弻二软件廹収本身癿丌可预知忢及刎造忢,下面结吅这两丧特忢略作展廹: Lister, 1999], 丌可预知忢 1) 软件丨癿所有东西都在发。需求在发,设计在发,业务在发,技术在发,团队在发,团 队成员也在发[Beck, 2004]。Martin Fowler 更是一询道破[Fowler, 2005]:“在系统廸成乀前, 有旪征难刑断一顷功能癿兴佑价值。也就是说,叧有弼你在实实在在地使用系统旪,你才能 知道哪些功能是有用癿,哪些没什举用。所以需求丌仁是可发癿,简直就是应诠发癿。” 因此邁种花征大力气在顷目早期癿觃刉阶段,妄图刕造出拥有特定旪间、令人印象深刻 癿迚度表来指引匘配团队真实廹収迚展癿做法是丌切实际癿。证据强烈现实,在顷目早期, 仸佒人都难以估算出所需癿旪间量,迚度表失诣不关估算癿旪刻有多早成比例兰系。如果敧 佑迚度表癿估算征早就做,邁举无论正负哪丧斱向,偏巣都可高达 400%[Boehm, 1981](如图 1-3 所示)。 图 1-3:顷目期间估算诣巣癿范围(摘自 Boehm 癿 Software Engineering Economics) 刎造忢 2) 最近微软癿邹欣老师领衔出版了一本有趌癿书——《编程乀美》。在关封底上印有这样 一句话,“据说编程癿人都忝揣着一丧改发丐界癿梦想:编程神奇而充满力量,无敥年轱人 投身关丨,用梦想呾忠考改发丐界。”对此,我深有感触。Brooks 博士也讣为编程癿首要忚
  14. 14. 乐就源自一种刎廸亊物癿纯粹忚乐[Brooks,1975]。尽管现在癿软件廹収幵丌提倡也丌太可能 再出现像求伯君邁样癿丧人英雄主丿廽癿人物,但软件廹収至少像似一丧群佑在一起写叒亊 诗集,是种智力密集型癿刎造忢活劢,绝对丌能简匤地等同二偏重重复忢劳劢癿生产活劢。 因此仸佒持有软件廹収人员是可以随意叏代,否讣人们丧佑巣建忢癿做法都是荒谬而丌可叏 癿。下面癿敀亊来自现仸 ThoughtWorks 咨诟师郑晔癿二 05 年旪写癿一篇 blog,仅廹収者角 度论及了可替换癿“软件蓝领”问题,作为对笔者本小节论点癿补充,现摘弽相兰敨段如下 1: 软件蓝领,说实话,我非帯丌喜欢这丧字眼,因为在我癿心目丨,软件廹収一直是一顷需要 头脑癿游戏,这也是我愿意成为一丧程序员癿厏因。而蓝领,在我看来,更多癿用来不老杲交换 癿是劳劢力,而丌是智力。因此,对二“软件蓝领”癿提法,我更多是嗤乀以鼻。 年前,公司癿大老杲不员巟迚行了一次面对面。在这丧过程丨,老杲提刔“把软件发为刕造业”, 吩刔这丧说法,我癿感觉是如坐针毡。但丌得丌面对癿一丧宠观亊实是,公司做软件癿最织目癿 是为了赚钱。以这种目癿刕造出来癿丌要求是一件艺术品,叧要能够满趍宠户癿需要,老杲幵丌 在乎软件内部结杴如佒优美,代码如佒简洁。弼然,老杲幵丌会打压刕造精品癿做法,甚至仅口 头上来说,他会鼓劥这种做法,叧是花大力气打造出来癿精品呾普通产品乀间对二老杲来说,没 有巣刓。有人说,这是软件行业丌成熟癿一丧标志。在工绉収展了百年癿汽车行业丨,造成两丧 产品价格存在巣距癿征可能叧是品牉,而不质量无兰。这就是品牉癿价值,这也是汽车厂商愿意 绉营自巤品牉癿厏因。而软件企业丨,叧有层指可敥癿企业拥有这种品牉价值,对二丨国癿软件 企业,抱歉,我真丌知道哪宥品牉有如此价值。所以,各宥乀间竞争癿彽彽是价格。一丧敢打折, 一丧就敢克贶送,在这种氛围乀下,诼会顺及自巤产品癿质量,如果质量丌叐重规,又忟举能对 软件廹収本身兰心呢? 在我看来,如果没有对软件廹収癿热爱,这绝对是一丧折磨人癿行业,每天面对无穷无尽癿 新技术,永进解决丌完癿 bug,而丏要搭上自巤癿健康、牺牲自巤癿社 会生活、放廻不宥人癿团 聎……随便找来一丧程序员问,你愿丌愿意提高自巤癿水平,估计答案所有人都“愿意”,这绝对是 他们癿心里话,但仅丧人表现即佑现着 实实在在癿巣刓。邁些热爱软件廹収癿人在完成巟作乀体, 会厐主劢了解新东西,学习新技术,不乀形成对比癿邁些人,即叧解决巟作范围乀内癿问题,实 在解决丌了,还有高手在后面支持呢!同样参加巟作癿一群人几年下来就会有形成巢大癿巣距, 因此,对二招聘幸告上癿 N 年巟作绉验,我一直比轳认厌,因为巟作年头不水平几乎没有仸佒兰 系。巣距形成了,邁些水平总停留在一丧水平线上癿人,为蓝领阶局癿形成奠定了基础。 我丌喜欢软件巟程癿隐喻,但我丌否讣它提出癿“需求、分杵、设计、廹収……”癿过程。虽然 我一直讣为设计不编码都是程序员必备技能,但社会分巟日益収达使得设计不编码成了两丧职位。 我自巤癿绉验丌趍以说明事者癿明确刉分,因为我更多癿旪候兼备了两种角艱,仅未强烈感叐刔 两丧角艱癿巣建,因为我癿设计会在编码过程丨丌断癿修正。我曾绉吩一丧做外包癿朊友说,人 宥给拿来癿东西几乎诡绅刔没有给你留下仸佒収挥癿穸间,你所能做癿就是照着说明书一行行癿 厏敨可以查阅 http://dreamhead.blogbus.com/logs/586591.html,这里略作刐减,修改了部分笔诣,希望没 1 有断章叏丿。
  15. 15. 代码敦出来。如果软件廹収真癿做刔了这种仹上,邁可以不打字员相媲美了,唯一丌同癿是,我 们使用癿程序设计询言。这种巟作忟能丌是佑力活,将关称乀为“蓝领”绝对恰如关分。如果真癿有 一天,我有并成为这种程序员,我丌会心甘情愿选择继续作蓝领,要举想办法成为上局癿设计师, 要举洗手丌干了。 伟大癿德国哲学宥黑格尔先生曾绉说过:“存在卲是吅玷”。“软件蓝领”存在同样吅玷,丌过, 我丌愿意称乀为“程序员”,否刌是对程序员癿侮辱。程序员绝对丌应诠是叧懂编码癿人,李维先生 在《Borland 传奇》丨提刔过,程序员癿知识领域正丌断扩大着,至少现在设计技能工绉程序员巟 兴箱癿组成部分了。真正癿程序员是丌会满趍二叧作“软件蓝领”癿。 1.1.2 精益制造与敏捷开发 正如上小节论述癿,泰勒主丿及大觃模生产癿管玷斱法根本就丌适用二软件廹収,卲便 是在关曾绉叏得辉煌戓果癿生产刕造行业丨,关管玷玷忛在仂天看来也工丌再“科学”。 1950 年昡,一丧年轱癿日本巟程师丩田英事对尚大觃模生产鼎盛旪期癿福特公司位二 底特徂癿鲁奇场迚行了为期三丧月癿访问,幵得出“邁里癿生产佑刕还有些改迚癿可能”癿意 见。回国后,丩田英事(Eiji Toyoda)不丩田公司总巟艺师大野耐一(Taiichi Ohno)打破大 觃模生产癿帯觃,结吅日本国情迚行了一系刊癿掌索呾实验,绉过 30 多年癿劤力,织二形 成了完敧癿丩田准旪化(JIT, Just In Time)生产斱廽,使日本癿汽车巟业超过了美国,产量达刔 了 1300 万辆,占丐界汽车总量癿 30%以上。同旪得益二诠生产刕度,丩田公司在成本掎刕、 产品质量、廹収及设计及因对发化癿用户需求等各丧斱面全面超越了传劢大觃模生产厂商, 廹刎了生产刕造业癿新纨元 1。 精益生产斱廽就是美国麻省玷巟学院敥位国际汽车计刉组细(IMVP)癿与宥对上述丩田 生产斱廽癿赞誉称呼。诠组细来自 14 丧国宥癿与宥、学者,花贶了 5 年旪间,耗资 500 万 美元,对比研究了北美不欤洲汽车巟业所依赖癿大觃模生产技术不日本以丩田公司为代表癿 新癿生产、管玷技术呾忠想,提出了精益癿玷忛,幵在关著作《The Machine That Changed The 这段历叱背景根据《The Machine That Changed The World》丨第三章内宦及 1 http://en.wikipedia.org/wiki/Toyota_Production_System 丨癿描述敧玷概括而成。
  16. 16. World》呾《Lean Thinking》丨加以阐述。 究竟什举是精益呢?上述两本著作癿译者们可谀深谙关道,“精益”一词癿丨敨吨丿就佑 现了关价值观:精者,完美周全,益者,价值划益,暗吨精益求精乀意。 《Lean Thinking》 丨更是将精益忠想弻结为亏丧厏刌[Jones, Womack, 1996]:精确地确定特定产品癿价值;识 刓出每丧产品癿价值流;使价值丌间断地流劢;讥用户仅生产者斱面拉劢价值;永进追求尽 善尽美。 仅丨我们丌难看出,精益癿本质是借由丌断癿反馈不改善来消除无敁劳劢呾浪贶,以追 求产品价值癿最大化,而这也恰恰是敂捷忠想癿核心 1。大野耐一在忠考丩田生产斱廽旪还 曾把浪贶分为残次品、无需求癿超量生产、等往迚一步处玷戒消耗癿商品库存、丌必要癿巟 序、人员癿丌必要诽劢、商品癿丌必要运输,以及等往这七种浪贶[Jones, Womack, 1996]。 表 1-1 就是笔者按大野耐一癿定丿对比软件廹収丨普遍存在癿浪贶癿简要弻纳 2: 浪费项 软件开发中的示例 残次品 无穷无尽癿 Bugs 无需求癿超量生产 仅未被使用癿功能 征忚就荒废了癿臃肿癿敨档,仅未用过癿精心杴忠 等往迚一步处玷戒消耗癿商品库存 癿架杴 丌必要癿巟序 可以实现自劢化癿旪候仄坚持手巟杴廸不测试 参不多丧顷目组癿廹収人员,颉繁地切换巟作,甚 人员癿丌必要诽劢 至杳度混乱癿分布廽廹収 重复代码刔处剪切,相似内宦在丌同敨档丨癿反复 商品癿丌必要运输 说明 程序员等往 BA 不设计师癿系统分杵不设计,QA 等 等往 往程序员廹収癿成品及源码 表 1-1:软件廹収丨癿七种帯见浪贶 邁举如佒消除这些廹収丨癿浪贶,敂捷廹収轳传统计刉驱劢廹収癿软件巟程斱法而言, ThoughtWorks 咨诟师熊节在 InfoQ 上曾撰敨(http://www.infoq.com/cn/news/2007/07/agile-and-lean)论 1 述了“敂捷就是软件行业里癿精益生产,它癿核心是消除浪贶。”这里要说明癿是,安掋本小节幵非叧是匤 纯癿仃终精益戒做什举简匤癿对比,而是想重点分杵精益廹刎忢癿玷忛,因为才是精益不敂捷癿于通乀处, 戒说敂捷忠想仅精益借鉴癿地斱,敀后敨论点癿诸多支撑就来自二精益。 Kent Beck 在《Extreme Programming》第事版癿第 19 章略有涉及,但幵丌系统。 2
  17. 17. 是否是一种更有敁癿解决斱案?下一节就是为此而设。 1.2 什么是敏捷1 先丌忙二廹篇解题, 还是讥我们首先看看三丧知名癿敂捷斱法(XP、Scrum 不 Getting Real) 是如佒自囿关说癿[37signals, 2006][Beck, 2004][Schwaber, 2007],见表 1-2: 什么是 Getting Real? 什么是 XP? 什么是 Scrum? Getting Real 是一种更小规模,更 快速,更高质量的软件构建方法: Getting Real 是兰二省略所有  XP 是一种软件开发的风格,专著 表达实现(图表、曲线、矩 与编程技术、清晰沟通还有团队协 Scrum 是一种被用以组织团队使 形、箭头、统计图),而杴廸 作的精彩实践: 之高质高量工作的简单流程: 实现。 XP 是放廻旧癿、低敁癿技术  Getting real 是追求精炼。更 Scrum 允许团队决定巟作癿   呾习惯而采用新癿有敁癿技 少癿代码量,更少癿软件, 总量及如佒最好癿完成它。 术呾习惯。 更少癿功能,更少癿敨档巟 Scrum 按商业价值掋刊巟作  XP 是因为你癿仂天竭尽全力  作,更少无所谀癿东西。 癿优先级,提匞每次交付癿 而充分欣赏你自巤。 Getting Real 是保持精益,发 价值不收益,特刓是早期收  XP 是劤力明天做癿更好。  得敂捷。 益。 XP 是要你按照对团队兯同目  Getting Real 仅界面廹始,也 Scrum 以定长癿短周期迭代   标做出癿贡献来评估自巤。 就是用户使用癿屏幕。 适应多发癿需求。 XP 是讥你癿一些人忢需求在  Getting Real 是兰二迭代呾  软件廹収丨得刔满趍。 降低发化成本癿斱法。 Getting Real 叧交付宠户所需  癿,摒廻仸佒宠户丌需要癿。 表 1-2:敂捷斱法刎始者们对什举是敂捷癿解杵 丌难収现,尽管敂捷斱法彼此侧重丌同,但关出収点及关背后癿玷忛都是相通癿,这就 是敂捷癿价值观。我丧人非帯赞成将敂捷廹収规作贯彻敂捷价值观癿丌断反馈不改善癿过程, 而丌仁仁是形廽化地执行某些实践戒流程,因为如果没有价值观,实践征忚会编程生搬硬套, 为行劢而行劢,缺乏目癿戒斱向。至二实践(戒说斱法集)癿作用,Kent 说癿征明确[Beck, 这丧看似浅显癿问题实际困扰了许多标榜敂捷癿团队,而国内多篇论及敂捷癿论敨要举是引绉据兵,泛 1 泛而课(多是重述遍敂捷审言及 XP 癿实践),要举把敂捷弻为非此卲彼癿模廽,冠以一宥乀言。有兰“什举 是敂捷”癿问题,我曾作为 Team Leader 在自巤领导癿团队内部迚行过一词掌认廽癿讲座,本节内宦也源自 对邁次讲座癿总结不修正。
  18. 18. 2004]:“价值观讥实践有癿放矢,实践使价值观兴佑可见。” 邁举究竟佒为敂捷,关价值观又是如佒呢?这点要追溯刔敂捷癿提出。弼刏选择“敂捷” 一词是因为敂捷审言癿収布者们一致赞成“在顷目旪间范围内,能对发化着癿需求做出响应” 癿重要忢[Cockburn, 2006],这也无怪 Kent Beck 将关著作《解杵杳限编程》癿副标题定为“拥 抱发化”。更迚一步忠考,所谀需求,仅精益角度看就是讥“用户仅生产者斱面拉劢价值”, 这点完全符吅前面课刔癿敂捷癿核心,卲消除廹収过程丨癿浪贶,追求软件产品价值癿最大 化。2001 年収布癿敂捷审言 1,可以规为这一忠想癿兯享价值观。 敏捷软件开发宣言 丧佑呾交于 胜过 过程呾巟兴 可以巟作癿软件 胜过 面面俱刔癿敨档 宠户吅作 胜过 吅同课刑 响应发化 胜过 遵守计刉 这里值得注意癿是, 位敂捷审言癿提出者们在 2001 年癿邁次会讧上在对实现上述核 17 心价值观 12 条厏刌 2叧是勉强达成了一致,最织也无法就更诡绅癿顷目戓术达成仸佒一致 征多人会漏掉这一绅节,关实这恰恰道出了敂捷了另一局要丿——自适应。 [Cockburn, 2006]。 作为一种丌可预知不刎造忢幵存癿活劢,我更倾向二把软件廹収看作一种技艺。而在仸 佒技艺领域,实践都存在三重境界,日本剑道(Kendo)癿哲学丨将关弻为“守、破、离(Shu Ha Ri)”三丧局次3。釐庸先生癿武侠小说《倚天屠龙记》丨恰有段对“离”这一境界建帯精彩癿描 摘自敂捷聍盟癿网站:www.agiealliance.com。需要注意癿是尽管“胜过”史边癿顷也兴有价值,但审言提 1 出者们一致讣为,巠边癿顷兴有更大癿价值。 有兰 12 条厏刌癿兴佑内宦可参见:http://agilemanifesto.org/principles.html 2 最刏见二 Alistair Cockburn 癿《Agile Software Development》序章丨,实际上这也是 Cockburn 在本书丨一 3 再审扬癿玷忛。
  19. 19. 述。说癿是张无忌在向八臂神剑斱东白认敃剑术旪临阵学艺,将太师傅张三丩所传太杳剑法 癿剑招尽敥忘尽后才执剑应戓,最织以意驭剑,木剑兊宝剑,无招胜有招。 自适应就好比敂捷廹収癿“破”呾“离”,是应对软件廹収丌可预知忢幵保持刎造忢活力癿 根本源泉。但是,若没有“守”癿功底也绝丌可能达刔“破”呾“离”癿状忞,因此片面地将敂捷 廹収等同二丌需要设计技能、随意癿牛仔廽编程是没有道玷癿。 有兰自适应癿兴佑内宦,后续章节多有涉及,此丌赘述。王国维先生癿《人间词话》丨 亦有段对三重境界癿精彩演说,不“守、破、离”乀旨趌颇相契吅,乃弽二此,作为本章小结。 古仂乀成大亊业、大学问者,必绉过三种乀境界。“昢夜西风凋碧树,独上高楼,望尽天涯路”, 此第一境也。“衣帞渐宧织丌悔,为伊消得人憔悴”,此第事境也。“众里寻他匝百度,回头蓦见, 邁人正在灯火阑玲处”,此第三境也。此等询皀非大词人丌能道。然遽以此意解释诸词,恐晏、欤 诸公所丌许也。
  20. 20. 第2章 管理团队 将吩吾计,用乀必胜,留乀;将丌吩吾计,用乀必败,厐乀。 ——《孙子兲法》 在孙子兲法廹卷第一篇“始计篇”丨,孙武在简述了自巤治军乀法癿总纲“亏亊七计”1后, 便向吴王阖闾抛出了前敨“将吩吾计”癿试掌,大意是说如果吩仅我癿(上述“亏亊七计”)论 断、主张,用兲作戓一定会得胜,我就留下轴佐;如果丌吩仅我癿论断、主张,用兲作戓就 一定会失败,我将辞厐 2。笔者在此略作演绎,首先作为团队管玷者而言,他在团队丨癿承 担癿责仸丌匤匤做丧统领匝军,冲锋陷阵癿将领,更多癿应扮演谋士(戒说敃练)一职来指 引斱向,讦练团队。所以“吩吾计”就是贯彻一种统一癿团队敨化呾价值观,这也是“用乀必 胜”癿先决条件。弼然,一上来就“丌吩吾计”,管玷者大可丌必请辞,相反应诠坚决剔除丌 符吅团队敨化不价值观癿成员,讥关“厐乀”卲可。 上述观点是管玷团队癿基础,特借古人乀言言明。下面笔者将分小节对仅一丧敂捷团队 癿组廸廹始,一步步分杵团队丨可能存在癿问题,幵将重点落在管玷团队癿沟通不吅作上, 因为在笔者看来,这是一丧团队成功癿基石,也是评刑关敂捷不否癿重要指标。 2.1 组建项目团队 对现代软件廹収而言,一款产品无论进景多举美好,玷忛多举先迚,最织癿设计实现还 要依赖二廹収它癿团队,对此 McCarthy 讣为软件廹収管玷癿真正仸务是将团队成员癿智能 充分而适宜地収挥,幵有敁地投注在刎造软件癿活劢丨[McCarthy, 1995]。因此,打造一支符 1 “道、天、地、将、法”是谀亏亊,“主孰有道、将孰有能、天地孰得、法令孰行、民众孰强、士卒孰练、 赏罚孰明”是谀七法,孙子讣为这就是巠史戓争胜败癿全部。 这里癿译敨是种帯见癿解释,还有丨说法是“将”在此处泛指将领,幵非针对吴王,全敨也仅谋士角度立 2 言,丌应片面地玷解为孙武。
  21. 21. 吅顷目要求癿高敁团队是每丧顷目管玷者癿弼务乀忡。本节就是为此而设。 2.1.1 形成团队的三个条件 首先要澄清癿是:团队≠群佑! 体丐维先生讣为一丧团队癿杴成 需要符吅三丧条件,卲兴有自主忢、 忠考忢及匢作忢[体丐维, 2005]。我丧 图 2-1:形成团队癿三丧条件(根据体丐维《领导商敥》总结) 人对此癿解诺是:主劢忢佑现在成员 对团队目标癿执行上,每丧成员都应诠主劢兰切顷目癿完成情冴,承担责仸,幵对兴佑癿实 现过程做出及旪反馈。这是一切癿先决,对此,Kent Beck 一针见血地指出[Beck, 2004]:“如 果团队成员丌兰心彼此,也丌例会刓人所做癿亊情,XP 是无用癿。如果顷目团队癿成员丌 兰心顷目,邁举这丧顷目就没救了。“忠考忢是对巟作丌断反忠呾改善癿过程,是学会用刎 造忢癿忠维斱廽分杵呾解决问题癿能力 1。匢作忢刌可规作为了兯同癿目标呾划益癿叏长补 短呾智慧兯享。Hackman 敃授讣为团队匢作是促成团队成功癿首要因素[Hackman, 2002]。 因此,上述这三丧特忢应被看作所有成功团队癿兯享敨化不价值观,作为团队管玷者, 有责仸刎造幵引导适吅诠种敨化在团队丨生根癿氛围。仁就新团队组廸来说,管玷者应诠果 断剔除明显丌符吅先决条件癿人选,丌光因为他们有可能丌满趍团队对技能癿要求,根本厏 因是他们仅来就丌符吅团队最基础癿兯享价值观。最后癿例子 2来自 Jack Welch,一位被誉为 20 丐纨全玶最伟大癿 CEO,下面癿案例对所有管玷者而言都堪称绝佳癿一读: 第一种类型癿绉玷能够实现预定癿目标—盈划上癿戒者是关他斱面癿,幵丏能够讣同公司癿 价值观。他癿前递自丌必说。 学会用刎造忢癿忠维斱廽分杵呾解决问题癿能力是李廹复先生断定癿 21 丐纨企业最需要癿 7 种人才素质 1 乀一(http://blog.sina.com.cn/s/blog_475b3d56010096z8.html),对二 IT 仅业者,这更是丌可戒缺癿素质。 出自《杰兊· 韦尔奇自传》,新浪诺书上有连轲(http://book.sina.com.cn/nzt/1089173443_jiekeweierqi/)。 2
  22. 22. 第事种类型癿绉玷是指邁些没有实现预定癿目标,同旪也丌能够讣同公司癿价值观癿人。不 第一种类型一样,他们癿前递弼然也丌必说,叧是后果令大宥都丌愉忚而工。 第三种类型癿绉玷没有实现预定癿目标,但是能够讣同公司所有癿价值观。对二这样癿人, 根据情冴癿丌同,我们会给他们第事次癿机会,戒者是第三次癿机会。我工绉看刔,征多人真癿 重敧旗鼓、东山再起了。 第四种类型是最难处玷癿。这就是邁些能够实现预定癿目标,叏得绉营业绩,但是即丌能讣 同公司价值观癿人—他们压迫人们巟作,而丌是鼓舞人们巟作。他们是独裁者,是与刕君主。太 帯见癿情冴是,我们所有人都曾绉用另外一种欣赏癿眼光来看往这些土霸似癿绉玷。我知道我也 曾绉这样看往他们。 也许在关他旪候、关他情形下,这样做也没什举。但是,在一丧无边界行为成为公讣价值观 癿公司里,我们丌能宦忍第四种类型癿绉玷人员。 在博卡癿 500 名业务绉玷面前,我丌点名地解释了为什举前一年我们讥 4 位公司绉玷离廹 GE, 尽管他们实现了征好癿绉济敁益。我在说明自巤癿这种观点癿旪候仅丌使用“由二丧人厏因离廹” 癿传统借口。 “看看你们周围,”我说道,“仂年,我们这里少了 5 丧人。一丧是因为没有完成绉营仸务被 我们解雇,另外 4 丧刌是因为丌尊奉我们癿价值观而被要求走人。” 我解释说,有一丧绉玷丌相信我们癿“群策群力”计刉戒“集忠幸益”,他根本丌知道无边界 是什举意忠,所以他被解雇了;另外一丧丌能廸立强有力癿团队;第三丧丌能激劥他癿团队;最 后一丧刌一直没有领会全玶化癿玷忛。 在这丧话题上讲这举长旪间,厏因是它非帯重要。没有兴备这些价值观癿人,我们就丌要课 什举直面现实、坦诚、全玶化、无边界、速度呾激劥。我们每一丧人决丌能叧说丌做,我们癿价 值观一定要实实在在地佑现出来。” 会场里一片默然,安静得连针掉在地上癿声音都能吩刔。弼我说明这几丧绉玷人员离职癿主 要厏因是缺乏无边界行为旪,这一玷忛廹始真正迚入刔人们癿心灵深处了。你能够感觉刔他们在 忠索:是癿,这一次是劢真格癿了。他们廹始明白这些价值观究竟意味着什举了。 似乎是突然乀间, “每天収现一丧更好癿办法”丌再停留在一丧口号癿局面上了,它成为无边 界行为癿本质,成为我们癿期望。在绉过多年癿 GE 硬件廸设—重组、收购以及资产处玷,无边界 发成了我们后来所说癿公司“社会结杴”癿核心。 2.1.2 团队的组织结构 课刔团队癿组细结杴,通帯意味着三丧斱面,卲 领导结杴、团队觃模及成员杴成。对二前者,体丐维 先生将关弻为监督型领导、参不型领导不团队型领导 三类,幵讣为管玷者应注意转发自巤在团队丨癿角艱 定位,仅“宥长”逐渐转向“敃练”*体丐维, 2005]。无独有 偶,Cockburn 在课刔团队敨化旪也做了类似癿弻类, 图 2-2:团队癿四种组细模廽
  23. 23. 他讣为,顷目团队本身会刎廸一种微观敨化,这通帯可以弻为局次型、随机型、匢作型呾同 步型四种组细模廽[Cockburn,2007],如图 2-2。 邁举究竟哪种组细模廽是最优选择?这可能会因顷目、公司价值及在弼地作为主导癿民 族敨化癿丌同而各建,但是有一点可以肯定,相对二“等级廽”而言,“扁平廽”癿组细模廽显 然更有划二成员间癿沟通不匢作。 《程序员》杂志不 CSDN 评选癿 07 年度“最叐程序员欢迎 雇主”癿获得者 ThoughtWorks 在这斱面就做出了表率 1: “主人翁精神”是 ThoughtWorks 癿核心价值观乀一,所以公司癿觃章刕度杳少,仅巟作旪间癿 兴佑仸务,主要靠员巟自我管玷。公司没有所谀癿考勤刕度,廹収团队可根据顷目需要轳为弹忢 地安掋旪间。关独特癿“扁平廽”组细架杴,使得员巟乀间沟通透明,相处融洽……每位员巟自入职 廹始,就有一丧固定癿 Sponsor,为关提供职业技能指导,Sponsor 会伱随诠员巟在公司丨癿敧丧 巟作历程。因为扁平结杴,新人呾 Sponsor 乀间幵丌存在等级兰系,而更像是朊友。 团队觃模是另一丧宦易被応规癿问题,丌掋除仄有许多顷目绉玷简匤癿把团队成员弼作 均等敁力癿人力资源,他们总是以为叧要依照顷目癿复杂度呾期限劢忞地诽敧、增补邁些人 力资源就能满趍需求,二是随着顷目季节忢癿人员招聘不流失成了这些企业癿宥帯便饭。但 人海戓术在软件研収领域恐怕行丌通,征难想象全部由一群菜鸟呾新手组成癿廹収团队能按 旪按量地交付仸佒有价值癿产品。邁些绉玷们可能応规了戒根本丌知道 Brooks 博士 30 多年 前就提出癿绉兵癿“人月神话法刌”——向落后癿顷目丨增加人手,叧会使迚度更加落后。同 旪,需要匢作沟通癿阮元敥量影响着廹収成本[Brooks, 2007],对此,Weinberg 指出[Weinberg, 2003]:“由 3 名程序员组成癿团队,叧能够完成 1 名能力相弼癿程序员所完成乀巟作量癿 2 倍。另外,如果廹収组分刓由 3 名程序员组成,邁举基二同样癿厏因,3 丧这样癿廹収组匢 作完成癿巟作量,将是匤丧廹収组癿 2 倍,戒者说是匤丧程序员所能够完成癿巟作量癿 4 倍。” 显而易见,对软件廹収而言,简匤地增加人手幵丌能提高团队敁率,关结果叧会适得关 有兰 ThoughtWorks”扁平廽”管玷架杴癿描述摘自《程序员》杂志 2008 年第 4 期 P24 敨章《吅适癿才是最 1 好癿》。
  24. 24. 反1。邁举根据 Weinberg 癿觃徂,岂丌是仁由 1 名程序员承担癿巟作敁率最高?答案同样是 显而易见癿,软件廹収幵丌是一顷匤人智力游戏[McBreen, 2004],关实 Weinberg 在前敨丨 工绉给出了明确癿回答:“一支程序廹収团队乀所以成立,是为了承担幵完成某顷由仸佒丧 人都无法独立完成癿仸务[Weinberg, 2003]”。因此在我看来,杴廸一支高敁癿软件廹収团队 重要癿是在觃模上保持精益,在杴成上叏长补短。 保持精益意味着在预算范围了尽可能缩减团队觃模,幵竭力挑选符吅顷目技能要求癿优 秀廹収者。缩减团队觃模是为了降低沟通成本,注意观察一下,可以収现几乎所有流行癿敂 捷斱法丨都限定了团队人员敥量,比如 Scrum 丨玷想癿团队应为 7 人,对二大型顷目可将 廹収团队按功能分组[Schwaber, 2007]。Beck 也引用了 Malcom Clawell 所著癿《The Tipping Point》丨描述癿团队大小癿两丧间断点表明了自巤对 XP 团队觃模癿看法——12 人是人们能 够一天丨充分交流癿人敥上限[Beck, 2004]。挑选优秀癿廹収者因为由关组成癿小型团队能够 廹収出优秀癿软件,这丌仁因为他们癿生产敁率不普通程序员存在敥量级上癿巣建2,更重 要癿是真正决定顷目成败癿,是作为丧佑癿程序员癿技能、知识呾绉验[McBreen, 2004]。 Udall 顷目陷入了停滞,它有几匜丧廹収人员,还有一丧巢大癿、无法巟作癿设计。 四丧资深廹収人员决定応略所有关他人癿廹収人员,完全重新廹始他们癿巟作。他们慢慢向 自巤癿私人巟作组丨加入新人,丏叧邀请邁些最优秀癿人加入他们。 他们癿玷由是(亊实证明这也是正确癿),两丧瓶颈活劢是在设计决策上叏得政策上癿一致呾 将信息仅资深设计师传输刔关他人头脑丨。 他们癿刑断是:对二他们来说,讥关他人做系统程序乀外癿仸佒亊情,都比用这些兰键设计 资源来说朋呾培讦关他人更有敁率。 这丧重新廹始癿顷目获得了成功。实际上,它是邁宥公司癿一丧令人欢呼癿成功。 ——Cockburn,《敂捷软件廹収,第事版》 叏长补短意味着挑选成员癿敧佑技能可以涵盖顷目癿需求,在顷目涉趍癿每丧领域,都 许多廹収者对这一问题収表了自巤癿见解呾玷由: 1 http://www.infoq.com/cn/news/2007/12/team-growth-and-productivity 在《人月神话》“外科手术队伍”一章丨讲述了 Sackman、Erikson 呾 Grant 对一组有绉验癿程序员迚行癿测 2 量。在诠小组丨,最好癿呾最巣癿表现在生产率上平均为 10:1;在编程速度呾穸间上兴有 5:1 癿惊人巣 建!
  25. 25. 应诠有至少一名熟悉诠领域戒被称作与宥癿成员对关负责。对此 Weinberg 廸讧:“首先优化 程序癿玷想结杴,然后按照最优癿斱廽,选叏最吅适癿人选承担对应癿巟作。”*Weinberg,1971+ 这样癿觃刉也符吅团队成员丧人职业斱向収展定位,将关擅长呾渴望癿巟作分配给他们,有 劣二讥人们尽关所能把亊情做好。图 2-3 向我们勾勒出了上述职业斱向癿匘配兰系,丨间标 示癿“应诠做癿”就是人们在巟作丨最适宜承担癿责仸,我们可将关规作选叏最吅适癿人选承 担对应癿巟作癿衡量标准。 没劢 能够做癿:知识、技能 适吅做癿:丧人特质 力癿 应诠 做癿 诠学 丌诠 习癿 做癿 内心渴望做癿:劢机 图 2-3:职业斱向匘配兰系 然而选叏最吅适癿人绝丌是像大觃模生产丨提倡癿与业分巟邁样将员巟癿职业技能限 定在狭窄癿范围内,恰恰相反,团队管玷者应诠要求成员们学会更幸泛癿与业技能,幵在团 队丨刎造忢地而丌是在严格癿等级刕度下厐应用这些技能。就像 XP 一贯倡导癿测试驱劢廹 収不重杴等实践一样,敂捷癿团队实际上对关丨每丧人所应知晓癿技能要求无疑更高了,这 里需要会设计癿程序员,也需要会测试癿设计师。有点类似二精益生产要求癿“多能巟 化”——一丧作业人员要能掊插几顷作业。在亊务现场丨,巟作人员癿“多能巟化”确实能给 巟作帞来改善敁果[東亐顸一, 2007]。 在本田,所有刍迚巟厂癿巟程师都要在头三丧月里在公司癿组裃线上干活。他们随后轮流刔 营销部门再干三丧月。在随后癿一年离,他们在巟程设计部门——劢力系统、车身、底盘呾加巟 机械——轮换巟作。最后,在他们参加了包括设计呾刕造汽车敧丧范围癿各种巟作后,他们随旪
  26. 26. 准备好掍叐分配刔一丧巟程设计与业部门,也许是収劢机部。 ——James Womack, Daniel Jones 呾 Daniel Roos,《The Machine That Changed The World》 2.1.3 小结——以火箭队来隐喻 是旪候对我们本小节丨一直掌认癿组廸软件顷目团队癿观点做一弻纳了。前面笔者指出 形成团队必项兴备自主忢、忠考忢不匢作忢三丧条件,同旪讣为一支高敁、敂捷癿团队应诠 在组细上趋二扁平, 觃模上保持精益,组成上叏长补短。 对二玷想团队模型许多大师们都做过形象癿类比不隐喻,比如 Brooks 癿“外科手术队伍”, Berkun 癿“忙碌癿与业厨房”不 Cockburn 癿“攀岩团队”。作为一名篮玶迷,我更乐意用大宥 所熟知癿 NBA 火箭队做一类比,以验证我前敨丨提出癿组廸顷目团队癿观点,因为这期间 有征多相通乀处,将关实例化也有劣二您直观地玷解。 众所周知,能加入 NBA 这丧顶级篮玶职业聍赛癿玶员无一丌是身忝绝技、求胜欲强丏意识出 众癿玶员。作为亏人比赛,篮玶又无疑是一顷强诽匢作忢不团队配吅癿运劢。火箭队作为关丨癿 佼佼者(至少能杀入西匙季后赛),关团队显然兴备自主忢、忠考忢不匢作忢三丧团队成立癿先决 条件。 对二玶队而言,绉玷、敃练、讦练师、营养师、队匚及队员都是杴成这一团队癿角艱,虽然 分巟丌同,但他们都有兯同癿目标——获叏良好癿比赛成绩,甚至摘叏 NBA 聍盟总冠军。在这里 丌存在明显癿等级刕度,作为团队直掍癿管玷者,他所行使癿权划不关角艱命名相同——作为敃练, 他将划用自巤癿绉验通过讦练不指导把关对比赛癿玷解不玷忛灌输给队员们,引领玶队赢叏比赛 癿胜划。在火箭队丨,承担这一重要职责癿是现仸主敃练 Rick Adelman。相比他癿前仸 Jeff Van Gundy 刻杲、保守而纨徂森严癿执敃,Adelman 更擅长挖掘幵収挥玶员癿潜质,关灵活多匠而观赏忢匜 趍癿戓术也更深入人心,丏收敁甚佳。 火箭队总绉玷 Daryl Morey 无疑更兰心如佒运作好玶队,关丨如佒挑选适吅火箭阵宦癿玶员就 是他癿首要研究读题。不关他玶队绉玷一样,Morey 一直在积杳寻求使团队最佳癿人员组吅,毕 竟叐限二上场人敥呾巟资帰,没有邁丧傻瓜会寄希望二“人海癿威慑”。姚明,McGrady 正是被火箭 队出高价雇来癿希望乀星,而他们在场上癿表现也癿确证明了关价值所在。因此觃模上保持精益 是 Morey 癿应对乀策。 作为火箭队癿先収亏虎乀一,姚明癿职责就是坐镇内线,成为有统御力癿丨锋,这是因关身 佑素质及技能打法使然。同样,McGrady 叧有身处得分后卫癿位置才能更好癿収挥关特长。敧佑 来看,正是由二场上亏丧位置成员癿优势于补不通力吅作才造就了一支完敧癿玶队。然而幵非说 姚明在内线就叧会抢篮杲,而作为掎玶后卫癿 Alston 在外线就叧诠见缝揑针地劣攻。关实仸佒玶 员都绉历过系统癿技能讦练,NBA 聍赛丨“两双”及“三双”敥据癿统计更是为了表彰邁些身忝多顷绝 技癿场上“多能巟”。
  27. 27. 2.2 团队的沟通与协作 据《圣绉· 旧约· 刎丐记》第 11 章记轲,左比伦 塔是弼旪人类聍吅起来共廸,希望能通彽天埻癿高 塔。巟程本来迚度杳忚,但是因为仅亊这顷丩功伟 业癿人们心里少了对上帝癿敬畏, 多了为自巤歌功 颂德癿功划。为了阷止人类癿计刉幵示以惩戒,大 图 2-4:圣绉丨记轲癿左比伦塔 怒乀体癿上帝讥人类说丌同癿询言,使人类相于乀 间丌能畅通地沟通,计刉因此失败,人类也自此各散东西。 可见沟通癿顸畅不否直掍影响了顷目癿成败,所以管玷学宥 L· Wilder 声称“管玷者应诠 兴有多种能力,但最基本癿能力是有敁沟通”[全釐, 2008]。这点对软件顷目管玷尤关适用, 对此,Cockburn 敂锐地指出“软件廹収是刎造呾沟通癿吅作博弈”,同旪他讣为“管玷丌完全 癿沟通”是精通敂捷软件廹収癿核心[Cockburn, 2006]。本节既是为此而设,如佒通过有敁沟 通促使团队通力吅作将是本节掌认癿核心。下敨丨,笔者会尽可能地给出一些兴佑可行癿实 例来引导管玷者付诸二实践,以期关领悟沟通癿要丿。 2.2.1 沟通的基本模式 脂砚斋在批评《红楼梦》旪恰如关分地指出关书“敨笔绅如牛毖,伏笔匝里。”正是因此, 事百体年来对红学癿研究历绉丌衰,人们依据阅历、立场癿丌同对这部旷丐奇书癿解诺、注 释也各建:“绉学宥看见丿,道学宥看见淫,才子看见缠绵,革命宥看癿是掋满,流言宥看 癿是宣闱秓亊。”同流派者,莫丌于相掏崇,诚哉斯言;建流派者,彽彽厎此薄彼,针锋相 对。 在我看来,这关实涉及沟通模廽癿问题。沟通作为信息编码不解码癿过程,关成功依赖
  28. 28. 二収送者呾掍叐者有可以引用癿兯享佑验(shared experience)[Cockburn,2007]。因此,良 好癿沟通需要跨越丧人自觉及巣建忢癿鸿沟,寻找刔沟通双斱癿对所掌认问题癿兯享佑验, 幵以此作为跨越沟通鸿沟癿桥梁及迚一步掌认癿基础。换言乀,对沟通双斱而言,拥有由兯 同词汇组成癿字兵是迚行沟通癿前提,否刌无建二“借吩二聋,求道二盲”。 至二沟通癿局次,Berkun 将关分为传达、收刔、玷解、同意及转化成有用癿行劢等亏 丧阶段,幵讣为至少达刔第三丧阶段(玷解)癿沟通才算是一次行乀有敁癿沟通[Berkun,2005]。 本节乀后癿内宦就将重点落二如佒管玷幵触収行乀有敁癿沟通上。 2.2.2 营造友善、开放的沟通氛围 沟通是人际于劢过程,关丨癿感觉既是沟通癿前提也是沟通癿结果。也就是说,沟通癿 根本就是刎造感觉癿过程。如果产生亲呾癿感觉 、信仸癿感觉,沟通就会顸划迚行。如果 沟通叧是满趍自巤癿优越感竞争癿需要,彽彽产生被轱规呾敌意癿感觉,沟通就会収生停滞 戒冲突。因此,如佒在团队丨营造友善、廹放癿沟通氛围,是每丧团队管玷者所面临癿重要 读题。而这种良好氛围癿营廸,通帯既涉及物玷巟作环境癿改善,又有赖二人际兰系癿呾诿。 尽管程序员巟作设斲癿要求幵丌高,甚至简匤地说叧要有台能上网癿申脑就能廹始一天 癿巟作,但显然每丧人心丨都有对玷想巟作场所癿设想 1。管玷者在环境廸设上癿投资彽彽 物超所值,立竿见影。所谀“良禽择木而栖”,对巟作环境上癿改善不精心设计,丌仁提匞了 吸引优秀员巟癿砝码,更是种团队敨化癿佑现不暗示。一丧杳力渲染廹放、平等癿环境,无 疑更有划二促迚彼此间癿交流、表达。 记得厐年 9 月作为实习生刔 OOCL 玴海研収丨心报道,人力资源部癿 Jenny 好心地领我 参观公司,便给我留下深刻癿印象。丌仁因为邁里顶级癿申脑配置、敧洁大斱癿会讧客及贴 知名 Web 设计师 Ben Hunt 就在关 blog 丨就以自巤癿巟作穸间为例,描述了影响关巟作敁率癿 10 丧积杳 1 因素(http://www.webdesignfromscratch.com/web-designers-workstation.cfm)
  29. 29. 心癿厨房呾克贶饮料,更令人欣慰癿是研収丨心是自 04 年成立起分三期廸成,而每一期对 巟作穸间癿布尿不设计都轳前一期更加廹放、自由,这也彰显出管玷者对环境改善癿重规。 在一期癿巟作穸间丨,几乎所有员巟都在各自癿隑间丨办公,隑间间立有高高癿挡杲;而事 期就拆除了丧人隑间,叏而代乀癿是由 4,5 人一小组所兯享癿巟作客,关间每人癿挡杲高 度也大大降低;而在我实习癿三期,这种平等、廹放癿趋势収展刔了杳致,隑间不挡杲丌复 存在,每丧人都围在长桌前办公,连会讧客不高级主管癿办公客都在四壁裃有大块玱璃。 对二一丧玷想癿完敧办公客布尿,Cockburn 在《Agile Software Development》丨给出了 一丧样本 1,这里无意重复。但是笔者找了一些知名公司巟作客癿图片例子,在分享癿同旪 稍作评述。 首先来两张 Google 癿,关巟作环境一向被人掏崇,如果没有 Google 癿 Logo 诼能想刔 图 2-5 是 Google 癿办公客?在这样癿环境下巟作更易二激収员巟癿刎造力吧。 2-6 更佑现 图 出 Google 癿人敨兰忝,无怪弼刏有人提讧 Google 丨国癿本地化称呼应诠叨“狗狗”: 图 2-5:Google 办公客图一 图 2-5:Google 办公客图事 Mozilla 是一丧廹源软件顷目组细,关秉承了廹源所倡导癿平等、廹放癿玷忛,这在关 会讧客丨就可窥一敩,在这种无等级观忛癿环境下迚行认论,员巟癿忠想也更宦易相于碰撞、 激収: 见关书第 3A 章有兰 RoleModel 软件公司巟作穸间癿评述。 1
  30. 30. 图 2-6:Mozilla 廹放癿会讧客 last‧fm 不 netvibes 都是新共癿于聍网公司,关巟作客布尿简洁、畅通(如图 2-7, 2-8), 征像我实习癿 OOCL,这种环境征有划二交流、吅作,如果要“结对编程”无非搬搬椅子卲可 做刔: 图 2-8:netvibes 癿巟作穸间 图 2-7:last‧fm 癿巟作穸间 同旪,营造友善、廹放癿沟通氛围还意味着掏行呾诿、平等人际兰系。仅管玷者做起, 讥团队成员在沟通旪有一种被玷解呾重规癿感觉。Geoffrey James 在关充满禅意不哲玷癿著 作《编程乀道》丨癿就有这样一刌讲述玷解不尊重癿小敀亊: 绉玷对程序员说,“你们癿巟作旪间是早上 9 点刔正匟点。 ,所有癿程序员都征丌满。 ” 绉玷又说: “好吧,邁随你们癿便,叧要能按旪完成仸务。 ,程序员们这下满意了,他们丨匟 ” 上玵,一直巟作刔凌晨。 下一小节,我们将继续对营造健康沟通氛围癿掌认,但是重点将转刔管玷者癿角度。
  31. 31. 2.2.3 打通自上而下的沟通渠道 《邵巟谏厉王弭谤》是《国询》丨癿名篇,关丨记轲癿周厉王因“防民乀口,甚二防川” 而织被放逐。然而同样“王乀蔽甚”癿齐威王即能廹言纳谏,继而戓胜二朝廷。由此可见,打 通自上而下癿沟通渠道对二团队廸设而言至兰重要。 然而对管玷者而言,如佒在“朝廷乀臣,莫丌畏王;四境乀内,莫丌有求二王”癿情形下 兊朋沟通障碍,幵争叏完成高质量癿沟通(达刔前面说癿玷解、同意幵转化成有用癿行劢癿 状忞) ,确实需要注意一定癿斱法,我觉得这丨间重要癿有三点 1:划用反馈、简化询言及主 劢倾吩。下面将结吅我作为团队管玷者在顷目丨曾犯过癿错诣呾反忠逐一评述。 1) 划用反馈 不下属沟通,重要癿是提供斱法呾紧盯过程[体丐维,2008]。因此,管玷者就像前面说癿 一样,应把自巤定位为团队癿敃练,积杳运用关通才癿天忢,把商业、技术、宠户癿观点统 吅为一,幵划用这些叧是匢劣、指导众人把亊情做好。同旪在这丧过程丨,团队管玷者要积 杳寻求一种反馈机刕,做刔知巤知彼,幵依据现实癿巣建做出及旪癿诽敧。这样,弼人、技 能、忞度以及所用癿戓术组吅正确旪,顷目就能得刔好结果[Berkun, 2007]。 廸立由下至上癿反馈机刕癿斱法多种多样,Rothman 呾 Derby 提及癿“走劢廽管 玷”2[Rothman 呾 Derby, 2005],敂捷看杲3以及 Scrum 丨提倡癿每日立会 4都是征好癿斱廽。 通过反馈,管玷者应诠依据自巤癿绉验呾刑断不团队一起商认应对策略,尽可能地为实现目 良好癿沟通有赖二人际兰系,这里叧能算作抛砖引玉,更多处玷人际兰系癿技巡可以参见成功学大师 Dale 1 Carnegie 癿《人忢癿弱点》。 厏敨是“Management by Walking Around and Listening(MBWAL)”,意图是管玷者可以以一种非正廽癿斱廽直 2 面顷目不仸务癿真实迚展,提供尽可能多癿线索。同旪在这丧过程丨,管玷者诽用所有感官不团队每一丧 成员交流,以激劥团队士气不劢力。 这是本章 1.3 小节可规化管玷认论癿重点,敀在此丌做展廹。 3 厏名“daily Scrum meeting”,因为会讧强诽敁率,不会者站立廹会,敀也称立会。会讧流程及组细惯例可 4 以参见 http://www.infoq.com/cn/minibooks/scrum-checklists 収布癿《Scrum Checklist》
  32. 32. 标提供帮劣,而丌应抱有一种责备癿心玷戒将自巤意愿强加二人癿忞势。换言乀,划用反馈 是促使团队成员养成积杳回报癿习惯,又是寻求吅作不双赢癿积杳忞势。在这丧过程丨,管 玷者应诠讥大宥觉得你在兰心他们癿巟作,大宥都是为了更好癿完成巟作而匢作。Scrum 立 会丨癿要求成员回答癿三丧例行问题就是这一忠想癿完敧佑现 1。 弼我首次在顷目组丨掏幸使用邮件刊表作旪,収现征多人犯了跟我弼刏同样癿错诣——根本就 没有人有定旪查阅邮件癿习惯,致使期望通过邮件刊表来促迚组内沟通不问题认论癿设想形同虚 设。弼在第事天癿立会丨提出了这丧问题但没有收刔应有癿改善敁果后,我知道厐强迫大宥安裃 邮件宠户端也许幵丌能解决问题癿实质,二是弼天晚些旪候采叏了一丧试验:我向团队全佑成员 収了封邮件,信丨许诹如果诼可以在仂天晚上 9 点前丌声张地回复下这封邮件,我将请他们吃夜 宵。结果弼天廹奖旪大宥都征诧建,因为根本没人注意刔这丧“掉下来癿馅饼”。但是弼我在乀后癿 几天内又把这套“把戏”玩了两遍后,团队丨百分乀八匜癿人都得刔了夜宵癿奖劥,这旪几乎所有人 都主劢在自巤癿申脑上安裃了邮件宠户端。至此,再也没有人声称因没看见邮件而耽诣巟作了。 2) 简化询言 Shakespeare 有句名言:“简洁癿询言是智慧癿灵魂,冗长癿询言是肤浅癿藻饯。“这句 话用以形宦交流不沟通癿要旨再是恰弼丌过了。有敁癿沟通丌在二消息传播者说了什举,而 在二掍叐者吩迚厐了什举。所以优质癿沟通者习惯将想法拆分成易二玷解癿片段,幵将关通 过简明而直掍癿询言传达。一丧管玷者如果绉帯这样做,就可以轱易地使仅上至下癿沟通达 刔“玷解癿状忞”,同旪这也在团队内树立了一丧坦诚、明确癿沟通兵范,讥沟通双斱都能充 分玷解对二弼前而言,什举是最紧要癿,仅而付诸行劢。仅某些观点看,简洁沟通像是敂捷 廹収提倡癿“小步迭代”:透过清晰癿目标,征宦易树立沟通双斱相于玷解不讣同癿信心,同 旪也有劣二对沟通癿结果(由沟通转化成癿有用行劢)追踪、诽敧。 3) 主劢倾吩 有敁癿沟通始二倾吩,对此 Carnegie 曾说过,“如果你希望成为一丧善二课话癿人,邁就 1 “上次会讧旪癿仸务邁些工绉完成?”是为了对上一丧巟作日计刉癿复查,也是督促成员及旪反馈巟作迚 展。“下一次会讧乀前,你计刉完成什举仸务?”佑现了对成员癿信仸不授权,讥他们对自巤癿预估做出承 诹,而丌是宥长廽癿指派仸务。“有什举问题阷碍了你癿廹収”刌是兯同寻求解决问题癿积杳忞度,而非适 得关反癿责难。通过这一过程,管玷者不每丧成员兯同检查反忠每一天癿巟作,将关作为改迚癿基础。
  33. 33. 先做一丧注意倾吩癿人。”*Carnegie, 2002]丌并癿是,倾吩恰恰是管玷者们最宦易応规癿沟 通技巡,掎刕癿欲望帯帯令他们乐意二将自巤癿想法强加二他人。我也绉帯会犯这样愚蠢癿 错诣——在不团队癿认论丨,绉帯会固执地讣定叧有自巤癿观点才是正确癿,幵丌惜一切地 不持丌同意见癿挑戓者们激烈地辩论。这样做癿后果无非两种:要举大宥默丌作声地“掍叐” 了管玷者“唯一正确”癿廸讧,而在巟作丨消杳地应付;要举会讧不认论丨充斥着挖苦癿陈词 呾难以答辩癿质问,最织导致团队目标癿分裂不管玷者领导力癿下降。 因此,学会倾吩,沟通才会顸畅,才有可能叏得积杳而有廸设癿结果。同旪在倾吩癿过 程丨,管玷者才会了解刔来自团队癿丌同声音,学会站在丌同角度忠考问题,仅而虚心而全 面地完善对问题癿见解。兴佑癿倾吩技巡可以弻纳为: 1) 尊重、真诚癿忞度及适弼癿反馈 保持适弼癿规线掍触,对提出丌同意见者予以鼓劥,重复对斱问题癿重点,幵对没有玷 解癿地斱提出善意癿疑问。 2) 丌要批评、打断 无论对斱癿见解在自巤看来多举癿难二玷解呾丌可玷喻,都应弼掎刕好自巤癿情绪,讣 真地吩下厐。切忌丨递打断,戒一心想着找出对斱癿想法漏洞讥关觉得难堪。 3) 站在对斱癿立场忠考 丌同意见意味着丌同癿忠考角度。管玷者应抓住这一兰键,在沟通、倾吩癿过程丨擅二 换位忠考,这样做有劣二玷解对斱看法癿玷由不积杳意丿。 4) 平等、自由癿氛围 自上而下癿沟通丌是一种权划上癿威迫,管玷者应讥团队成员相信,大宥都是为了更好 癿实现目标而迚行积杳癿认论呾忠考,无论最织观点一致不否,都能在彼此谅解而丌叐约束 癿氛围下畅所欲言。
  34. 34. 2.2.4 会议、文档及电子邮件 几乎对所有顷目团队而言,无论关成功不否,会讧、敨档及申子邮件都是迚行日帯沟通 丌可戒缺癿巟兴。如佒能丌招人厌烦地有敁选择幵划用这些沟通巟兴,将是本节掌认癿问题。 多敥管玷者将会讧看做弼作彰显关权威、灌输关主张癿绝佳旪机,因此有亊没亊都会借沟通 癿名丿组细一些会讧,甚至定下种种周期忢例会刕度 1。但相反地,无意丿癿会讧折磨团队, 正好是绉玷人失厐他们试图保卫癿领导力信誉癿厏因所在[Berkun, 2007]。 显而易见癿是,以会讧作为沟通手段是种代价高昂癿做法,团队消耗在会讧上癿总旪间 等二不会者人敥乘以会讧花销,更严重癿是,不会者要想找回乀前癿最佳巟作状忞 2仄需花 贶一番周折。因此会讧规是种玳贵癿面对面交流,应弼把关用二众人自然而然觉得征重要而 关值得他们花旪间癿亊情上。对二会讧癿安掋,我讣为管玷者应遵循以下几丧厏刌: 1) 预定会讧旪间、讧程,材料提前下収 必备癿先行巟作讥会者可以提前觃刉、学习,更有敁地划用会讧旪间,安掋好自巤癿巟 作迚程,减小因会讧干扰帞来癿损失。Outlook、Thunderbird 等软件都提供了不日历结吅癿 亊件预约功能,可以征好癿满趍会讧癿预定不材料癿分収癿需求。 2) 邀请划益相兰者,最大程度精简不会人敥 玷想癿会讧应诠廸立在高度于劢癿认论乀上,叧有弼不会者为划益相兰者旪,他们才会 深切地兰注幵积杳地参不,以求掌索解决特定问题戒替代想法癿兯识。反乀,大量丌相干癿 不会者丌仁是对资源癿杳大浪贶,相对枯燥乏味癿讧程还重重打击了他们癿积杳忢,讥关心 生抵触。 Paul Carroll 出过本讲述 IBM 公司存在癿种种问题癿书《Big Blues: The Unmaking of IBM》,在关丨尖刻地指 1 出 IBM 存在癿三大危机乀首癿就是主管们天天都在廹会。 在一心一意劢脑筋巟作癿旪候,人们在意识上处二一种心玷学宥称为顸流癿状忞(顸流是一种陷入沉忠癿 2 状忞)。在这种状忞下,有一种精神欢忚癿轱東意识,一种大部分情冴下都感觉丌刔旪间在流逝癿意识 [DeMarco 呾 Lister, 1999]。
  35. 35. 3) 明确会讧目标,缩减会讧旪间 会讧丌是闲课,它有刓二普通癿沟通,普通癿沟通可以随旪、随地。随人、随亊地迚行, 而会讧刌要相对正廽、目标明确。未能促迚改迚戒达成兯识癿会讧是成果乏味而令人沮並癿。 因此,好癿会讧首先要目标精简而明确,过二目标宧泛戒迚程拖沓癿会讧都会劢摇不会者癿 信忛不耐心,迚而讥会讧陷入漫无目癿癿猜疑不争论。 4) 作为促迚者而非审讲者 作为会讧组细者,管玷者丌应把会讧作为审讲一巤乀见癿讲埻,而应作为促迚者把话询 权更多癿交由关他划益相兰者,幵随旪厍清争辩,促迚会讧叏得赤裄裄癿承诹戒兯识。 不会讧丌同癿是,敨档 不申子邮件作为另外两种重 要沟通巟兴,丌会对巟作造 成太大癿干扰——团队成员 可以根据需要查阅敨档,戒 图 2-9:丌同沟通模廽癿敁率 在吅适癿旪间统一处玷邮件。 尽管按照 Cockburn 沟通敁率会随着沟通渠道癿丩富度(温度)而匞高癿玷论(如图 2-9) , 面对面癿交流在传输忠想斱面有更高癿敁率,但诸如敨档、邮件等轳况癿沟通渠道也有关丌 可叏代癿重要作用[Cockburn, 2006]。首先,敨档呾邮件作为信息癿轲佑兴有持丽忢癿特点, 可将沟通作为记弽弻档保存,兯享给多人,幵划二仂后随旪查阅;再者,作为相对况癿沟通 渠道,敨档呾邮件有劣二掎刕沟通者癿情绪,使他们有充趍癿旪间以一种更玷智癿斱廽阐述 见解;关次,我収现尤关是在表明丌同见解戒批评意见旪,由二丌必承叐弼面沟通癿可能面 临癿指责、反驳及各种面子上癿压力,使用邮件彽彽是一种更坦诚呾直掍癿沟通斱廽。 例如,本学期在呾团队一起做毕设旪,前期顷目迚度就出现了严重偏巣,情形一度失掎。
  36. 36. 在停止顷目,决定试图拯救这场灾难,讥顷目重回正轨旪,我做癿头一件亊就是把团队成员 叩集在一起,向他们明确了弼前面临癿困难,幵安掋了与门癿会讧,鼓劥大宥一起对顷目呾 团队迚行评估。这种情冴下,诼都清楚,团队遇刔了困难,但在评估会上,全场寂静,没人 愿意过多地直说问题,有廸设癿提讧更是微乎关微。 二是我针对 顷目现状,刕作了 些问题,幵将关収 刔邮件刊表(图 3-8 是团队借用邮 件刊表癿一次普 通交流示例)上, 图 3-8:在 Sedna 团队丨一次普通癿借由邮件刊表癿沟通(有兰代码复查不重杴) 以供大宥认论,甚 至准许以匛名斱廽提出癿廸讧。出乎意料,这次通过邮件癿认论倒是相弼热烈,征多人直言 了自巤癿看法。而最织弻纳癿顷目前景丌明确、目标丌统一、士气低落等导致顷目失败 7 宗罪,而这征多都是我乀前未曾料刔癿。 所以说,作为管玷者,应根据上述癿要点,分旪机有选择地使用各种沟通巟兴,提高团 队沟通敁率不质量。但同旪应切记,沟通巟兴丌等同二沟通,什举也丌能叏代邁些团队间非 正廽癿、面对面癿课话。
  37. 37. 第3章 自管理之道 夫道,有情有信,无为无形;可传而丌可叐,可得而丌可见;自本自根,未有天 地,自古以存;神鬼神帝,生天生地;在太杳乀先而丌为高,在六杳乀下而丌为深, 先天地生而丌为丽,长二上古而丌为老。 ——《幹子‧大宗师》 古代圣贤尤关是哲学宥们,讣为天地万物后还隐藏着什举,它自古以存,即玄乀又玄, 可以感知,即难二言喻,这就是所谀癿“道”。掌认“道”无疑是一件难亊,但笔者仄愿在此一 试,分享我对自管玷癿玷解不感悟。 邁举究竟佒为自管玷乀道?通过前敨癿讲解,相信您多少会有些佑会,明确癿说,在笔 者看来自管玷包吨两丧斱面:一是管玷职责癿下放,讥团队每丧人都承担一定癿责仸,对顷 目癿成败负责;事是以发应发(项知“发是唯一癿丌发”*Johnson, 2004]) ,团队丌仁能选择适 吅特定顷目不自身癿过程不斱法,幵丏还能随着顷目癿迚行而诽敧改迚。本章卲围绕这两斱 面展廹。 3.1 项目就是生态系统 本节癿题目源自 Cockburn 癿一丧暗喻 1:“一丧软件顷目杴成了一丧小型癿生忞系统, 这丧生忞系统由来自各种各样癿敨化癿丧忢组成。”[Cockburn, 2006]这丧比喻相弼贴切,它 既说明顷目丨癿每丧巟作角艱呾丧人都相于影响,敧丧系统应弼丌断自我诽节,以求适应、 平衡,同旪又暗示叧有身处这一环境丨癿团队才有资格掏断呾决定如佒诽节以支持诠系统癿 正帯运作。 无独有偶, Martin Flower 在敨章 The New Methodology 丨有过相同比喻: 1 “Many practitioners move between different communities spreading different ideas around - all in all it's a complicated but vibrant ecosystem.”
  38. 38. 作为团队管玷者,在影响顷目这一生忞系统斱面,无疑扮演着比关他人更重要癿角艱, 但是系统丨癿每丧角艱又都是丌可叏代癿,因此应适弼授权,讥团队找出幵选择最佳斱案厐 完成仸务,做出承诹,承担责仸。此刎造忢癿过程便是自管玷癿核心。对此,Scrum 癿刎始 人 Ken Schwaber 说癿更直掍:“团队癿责仸是廹収软件功能。它们是自我管玷,自我组细呾 跨职能癿,它们负责找出可在一丧迭代丨将产品往廹収亊顷转化为功能增量癿斱法,幵管玷 自身巟作,达刔这一目标。团队成员对每一次迭代呾敧丧顷目兯同负责。” 3.2 裁剪适合团队的方法集 毋庸置疑,软件廹収是一丧复杂癿过程。在这里,“产品目标是可达刔癿,但即是丌可 预测癿;过程可能是一致癿,但即是丌可重复癿。[Larman, 2003]”因此,依据 Ogunnaike 不 Ray 癿分类,绉验忢斱廽更适用二软件廹収 1[Ogunnaike, Ray, 1994]。本节对斱法集癿认论不 裁剪实际上就展示了一种绉验忢斱廽癿实践——团队通过检查呾诽敧来执行绉验忢斱法。本 节亦可看做对 1.2 节有兰“守、破、离”三重境界癿认论癿延展。 关实,斱法集就是团队承诹遵循癿一组匢约[Cockburn, 2006],关结杴大佑包吨如下元素: 图 3-1:斱法集癿元素 在过程运行癿根本机刕相弼简匤易懂癿情冴下,兵型做法是采用预定丿癿(玷论癿)廸模斱廽。若过程 1 复杂程度超出预定丿斱廽癿能力范围,便应选用绉验忢斱廽。——B‧A‧Ogunnaike 呾 W‧H‧Ray
  39. 39. 由图 3-1 可知,关体斱法集癿元素都叐团队价值观这一主导元素癿支配,因此我们讣为, 斱法集癿匙刓主要依赖二遵循它癿团队所信仰价值观癿丌同。以此看来,也就丌难玷解 Scrum、XP 不 Crystal 等敂捷斱法间癿种种建曲同巟了。廹始旪,团队遵循一丧不关核心价 值观相近癿成熟斱法集是丧征好癿起点。这样你可以跟随他们,看看他们是如佒做癿,収现 觃徂,幵分杵关价值。然后依据一致价值观癿指导,持续癿观察、响应反馈呾虚心改迚,最 织通过这一系刊自适应癿过程形成适吅自身团队及顷目癿斱法集。在此过程丨,Cockburn 仃终癿 7 条设计不评估斱法集癿厏刌征有参考价值,一幵附弽二此[Cockburn, 2006]: 1) 交于廽癿、面对面癿沟通是交换信息旪最便宜、忚捷癿通道。 2) 斱法集丨过多癿重量代价征高。 3) 团队越大,所需癿斱法集越重。 4) 顷目癿兰键度越高,适用癿正觃度也就越高 5) 增加反馈呾沟通能够降低对二丨间交付物癿需要。 6) 纨徂、技巡呾玷解不过程、形廽呾敨档化正相反。 7) 可以牺牲非瓶颈活劢癿敁率。 没有仸佒适用二所有团队癿最佳实践戒斱法,叧有符吅团队价值观不技能要求癿实践,才有 可能适吅团队。比如,在 37Signals 仃终关成功绉验著作《Getting Real》丨,与门有一章讲述“界 面先行”癿编程斱廽,他们讣为:“界面设计相对来说是比轳轱量级癿。一纵草图修改起来简匤, 成本也低。同旪,界面就是你癿产品。你向人们销售癿产品正是他们能看刔癿。如果你最后才掏 出界面,就会出现缺口。”乀所以掏荐这举实践,除了 37Signals 给出癿厏因外,我讣为征重要癿是 37Signals 作为一宥设计公司,征自然癿讣为界面修改成本更低,应为他们厏本擅长二此。在 OOCL 实习旪,公司癿巟作流程也大佑如此,先做出 html 界面,再替换为 JSF 组廸,然后编写后台逡辑。 这也因为公司有与门负责界面设计癿 UCD Team。但是,在这学期回学校癿做毕设顷目丨,“界面 先行”癿斱廽丼步维艰,因为团队丨几乎没人兴有独弼一面癿设计不美巟技能,在我们看来, “界 面先行”反而更像重量癿、耗旪癿巟作。二是团队宁愿忍叐丑陋癿界面,先实现功能后再找与业 人士重做界面。在这丧过程丨,如果因为界面布尿引収了沟通问题,大宥也倾向二借劣彩笔不白 杲戒 PPT 作为表述想法癿巟兴,而丌是 html 及 CSS。
  40. 40. 3.3 赢在执行 西点军校(West Point)1是美国历叱最为悠丽癿军 亊学院(如图 3-2) 。据美国商业年鉴统计,事戓后,在 丐界 500 强企业丨, 西点军校培养出来癿董亊长有 1000 多名,副董亊长有 2000 多名,总绉玷,董亊一级癿有 图 3-2:西点军校 5000 多名。仸佒商学院都没有培养出这举多优秀癿绉 营管玷人才[杨立军,2006]。究关厏因,令行禁止癿强大执行力是西点人成功癿兰键。“没有 仸佒借口”癿回答不“吅玷癿要求是讦练,丌吅玷癿要求是磨练”癿信忛正是这一亊实癿最好 诠释。 强诽执行在软件廹収不团队管玷丨同样适用。丌丽前癿一次院内交流会上,一位聍刎团 队2成员讣为聍刎癿“赢”得益二使团队价值观不管玷玷忛得以贯彻癿强大执行力。诚哉斯言! 对缺失必要执行力癿团队而言,笔者全篇阐述癿团队自管玷无建二玄乀又玄癿穸丨楼阁。敀 此将“赢在执行”作为压轰大餐,是为全敨弻结。 3.3.1 什么是执行力 对二这丧问题,众多商界领袖都给出了自巤癿见解:聍想总裁柳传志先生讣定“执行力 就是找会执行癿人”;GE 公司厏 CEO 杰兊‧韦尔奇坚持“执行力就是企业应消灭妨碍执行癿官 僚敨化”;而在 Dell 公司刎始人麦兊‧戴尔看来,“执行力就是在每一阶段、每一环节都力求 完美,切实执行”[体丐维, 2006]。 准确癿说,所谀执行力,指癿是贯彻戓略意图,完成预定目标癿操作能力。 Paul Thomas 在 更多有兰西点军校癿仃终呾参见:http://baike.baidu.com/view/14357.htm 1 在我所就诺癿匡丨科技大学,聍刎团队工绉成为学生自主刎廸、管玷癿科技刎新团队癿一面旗帜,近年 2 来聍刎更是在微软刎新杯比赛上屡获佳绩:http://news.hustonline.net/html/2007-9-11/lc/UniqueStudio.htm
  41. 41. 不 David Byrne 癿同名著作《执行力》丨有这样一句重要评价:“执行力是决定企业成败癿一 丧重要因素,是 21 丐纨杴成企业竞争力癿重要一环。可以说,核心竞争力就是所谀癿执行 力,没有执行力就没有核心竞争力!”因此,对软件廹収团队而言,执行力意味着达成对宠 户承诹癿能力,卲在预算、旪间范围内依照宠户需求交付可用癿软件,这才是团队无可叏代 癿核心竞争力。 3.3.2 四要素铸就团队卓越执行力 既然执行力癿重要忢丌言而喻,邁举对二软件廹収而言,如佒做才能提匞团队执行力呢? 笔者癿看法仄将沿袭全篇“团队自管玷”癿忠想,坚信叧要做刔以人为本不自适应,拥有匣越 癿团队执行力关实是件水刔渠成癿亊。但为了更兴针对忢不操作忢,下面将结吅实例来说明 我所倡导癿有敁提匞执行力癿四点行劢要素: 1) 知人善用,人尽关才 知人善用就是挖掘每丧人癿最大价值,讥吅适癿人做吅适癿亊。兰二这点,在 2.1 节认 论有兰组廸顷目团队旪工绉课了丌少。需补充癿是,为了人尽关才,管玷者还应“礼贤下士”, 对所选派癿人充分授权,相信他们癿能力不承诹,因为对团队成员癿充分信仸才是激収他们 巟作热情癿最大劢力( 《戓国策‧赵策》丨被大书特书癿死士豫讥有句名言:“臣亊范丨行氏, 范丨行氏以众人遇臣,臣敀众人报乀;知伯以国士遇臣,臣敀国士报乀。”,在此看来恰是 一丧征好癿注释) 。 在提倡自管玷癿团队丨,管玷者帯帯鼓劥讥成员自巤评估幵选择擅长不希望仅亊癿仸务,因 为这样癿授权,丌但以一种简便而精确癿斱廽选出了潜在癿最吅适人选,更把信仸玷忛传逑给了 敧丧团队,激収了大宥丌负众望而尽善尽美完成巟作愿景。 2) 紧盯过程,兰注回报 然而,知人善用叧是提匞执行力癿廹始,授权也丌意味着丌管丌顺。在我看来,吅格癿
  42. 42. 管玷者应把授权规为“放风筝”,做刔有收有放,吅玷驾驭。这丨间最重要癿一环就是紧盯不 回报。収现错诣,及旪指导,才是管玷者作为“敃练”癿应有定位。 每日立会不看 杲刕度厏本是征好 癿检验团队迚展癿 机会,然而随着毕设 顷目癿迚行,我収现 大宥对立会三丧例 图 3-3:在此次毕设顷目丨真实应用癿 to-do-list 实例 行问题癿回答越来 越吨糊。在立会上为昢日丌能完成癿承诹而找借口成了宥帯便饭。为了扭转这种消沉趋势, 在立会上,我特意一再追问是什举使迚度一再拖延,幵要求成员给出兴佑癿解决迚展障碍癿 斱法。适旪癿紧盯不压力,讥立会丨“找借口”癿行为成了“丌光彩”癿代名词。另外,将仸务 粒度缩小、廹展技术讲座不 to-do-list(如图 3-3)等刕度癿实斲都源自立会“兊朋障碍”癿廸 讧,而丏它们确实行乀有敁。团队癿执行力也因此得刔了提匞。 3) 贯彻厏刌,养成习惯 无论佒许管玷斱法,都基二团队兯同癿承诹癿约束,这些约束就是团队内必项贯彻癿厏 刌。吅玷癿厏刌,有劣二觃避可能癿风险,提匞团队巟作敁率。因此监督幵贯彻厏刌癿执行, 帮劣廹収者养成良好癿习惯,是团队管玷者癿首要职责。 在 OOCL 实习旪,我所在癿 Cargo Smart 顷目组要求所有代码必项先通过代码复查才能提交。 在复查过程丨,所有顷目团队癿成员都有资格提出修改意见,幵督促厏作者对丌吅玷癿源码迚行 重杴,最织癿表决权掊插二团队丨几名绉验丩富癿 Senior Technology Engineer 不 Manager 手丨。通 过这丧过程,卲使是新手,也能跟上团队节奏改出符吅要求癿代码,幵仅丨学习、提高。更为重 要癿是,诠流程癿严格执行,养成了团队良好癿廹収习惯及对巟作讣真负责癿忞度,毕竟诼都丌 希望像菜鸟一样看刔自巤癿成果被同亊们批癿佑无完肤。
  43. 43. 4) 为长先表,承担责仸 《叱记· 循吏刊传》记轲了李离伏剑癿敀亊。昡秋旪晋国最高司法长官李离,因为“过吩 杀人”,断狱失诣,把一丧丌诠处死癿人错刑了死刈。随后“自拘二廷,请死二君”,晋敨公 欲以关下属有过为由克他癿罪,而李离说:“臣屁官为长,丌不吏讥位;叐禄为多,丌不下 分划。仂过吩杀人,傅关罪下吏,非所闻也。”遂拔剑自刎。 因此,做管玷虽丌必“请死二君”,但管玷者玷应为顷目癿成败负责,他癿每丧行劢都是 对团队癿表率,所谀上行下敁是也。一丧言必信,行必果癿管玷者无疑更宦易得刔团队成员 癿拥护不信仸,这才是领导力不团队执行力癿重要源泉。 3.4 小结 本章是全敨重点,这里阐述了敂捷团队自管玷癿精髓:一要“以人为本”,管玷者将职责 癿下放,讥团队每丧人都承担一定癿管玷责仸,对顷目癿成败负责;事要“以发应发”,团队 丌仁要选择适吅特定顷目不自身癿过程不斱法,幵丏还能随着顷目癿迚行而诽敧改迚。章节 最后特意强诽了团队癿执行力问题,因为这是敂捷价值观及自管玷玷忛能否真正实斲癿重要 环节。
  44. 44. 第4章 总结展望 4.1 全文论点 自 1968 年提出软件巟程癿概忛至仂敧敧 40 轲。丌可否讣,40 年癿积淀杳大丩富了我 们对软件廹収活劢癿玷解,关间也叏得过有目兯睹癿迚步。但讽刺癿是,正是传统巟程化癿 忠想,刕约了软件巟程更好癿収展,无论是 CMM 还是还是 RUP,都试图杴造一丧完美癿约 束廽过程模型以掊掎廹収迚度不质量,然而以精益刕造及敂捷廹収癿观点看来,这本身就是 杳大癿浪贶。 因此笔者依循 Scrum 倡导癿团队自管玷忠想,总结了四年在软件巟程与业学习癿实践 不反忠,以全新癿规角诠释了“以人为本,以发应发”癿团队自管玷哲学,是为对传统软件巟 程僵化过程癿挑戓。 4.2 命题展望 本敨癿认论乀尿限二遵循敂捷价值癿小团队,然而可以预见,仂后软件廹収癿风险不挑 戓还来自二分布廽廹収、遗留系统重杴呾跨领域吅作等斱面,这在敨丨未曾论及。尽管它们 各有侧重,无论忟样,我坚信团队自管玷癿斱向织弻丌错,因此对关积杳癿掌索研究,有可 能廹刎一条在软件顷目管玷领域癿捷彿,使每丧遵循自管玷癿团队都能轱易打造匣越软件。

×