敏捷开发环境下的领导问题
Agile 领导的背景
当我们回忆软件开发的进程,在 21 世纪的头 10 年间,可能是 Agile 时代。Agile 开发,发展自一大批在会议中陈述软件开发方式的咨询员,现在我们已经举行了专门讨论 Agile 开发的会议。Agility 不再是一小部分人的专有讨论物;现在整个软件开发机构的主要兴趣扩展到技术与应用的广泛领域。我们仍然面临着误解 Agility 的严重问题,但是不管有新的流行趋势出现,或者从新奇性转变为普遍接受时,这种情况都会发生。如果你知道盲人与象的故事,那么你就可以理解要了解 Agility C 以及 Agile 领导人的真正意义该有多么困难。
每一个与我交谈的人都承认 Agile 软件开发在当今社会是无处不在。小型公司与大公司一样都采用了 Agility 的一些方法。这个问题出现在 Association of Computing Machinery 的 Communications 与 Crosstalk 之类不同的杂志内,软件工程的军事防御杂志。Agility 与提高开发软件系统的方式变得相同。
就像名词“Agile”对不同的人有不同的涵义一样,所谓的“Agile 领导人”也是这样。参考的框架是软件开发员的。如果我们不去考虑领导人,那么这种问题就不会自己解决。如果我们讨论成为一个 Agile 项目领导的有效方式,我们就必须承认与这种“独特性”打交道。
我一般会在我的演讲中 问我的听众(就像最近我在 IIBA 中所做的一样),他们是否在使用 Agile 方法。在最近的几年间观众举手的越来越多。然后我就会问这些使用这种方法的人,什么才是 Agile。虽然我对收到的回答的多样性没有多大的惊讶,但是我却对这个问题一致的回答震惊了。一些问题来自于词语“Agile”的滥用。我曾经对含有该词的软件开发短语做了一个简单的调查。在大约 30 分钟内,我总结的列表包括:Agile 开发,Agile 设计,Agile 建模,Agile 测试,Agile 项目管理,Agile 策划,Agile 决策,Agile Scrum, Agile 语言, Agile 数据库, Agile 编程, Agile 集成, Agile 游戏开发, Agile 思考, Agile 使用, Agile IT…我也许会向这个列表添加一条:Agile 过载。当然我们都经受了这一切。
所以,关于领导权,我更想探讨在与 Agile Manifesto 中描述的 Agile 特征相符的举措与特征。对于 Manifesto 的四个主要特征,个人的价值,以及过程和工具之间的联系,才是最与下列讨论相关的。
我们拥有不同类型的领导人,就像不同类型的软件开发。关于“领导人”这个词的另外一个简单的调查,产生了一系列描述领导特征的词:官僚,独裁,民主,无为而治,人际关系型的,任务型的,业务型的,仆人-领导,转化以及环境。也许像 Agile 这样的领导对不同的人有不同的意义,这取决于他们对参考的框架。怎样开始去让它们变得合理呢?
图 1:一些著名的领导者
我从列举一些不同领域著名的领导人开始我的阐述。图 1 显示了一些这样的领导人。读者也许知道他们中的一些,像 Winston Churchill,John F. Kennedy,以及 Adolf Hitler。其他的,像 Lee Iacocca 以及 Lou Gerstner,也许只有特定的人群才会知道他们。
接下来让我们回忆一下技术领导人:这些人就是软件开发员在软件开发工业中参考意见的一群人。开发员想要理解这群人,模仿他们,并听取他们的意见。图 2 显示了技术领导人的列表。这个列表中并不是所有人,都来自一个建模背景。他们中有一些人把注意力放在运行主要的公司上面,如图 1 所示。我把他们列为技术领导的原因是,他们完成了开发员们想要做的事情。
图 2:技术领导人
下一步,让我们看一下第一组与第二组之间的差别。这些差别并不是绝对的,人们可以任意的对其做出评价,但是我并不准备提供我的意见。
第一组领导人的特征(图 1)可以描述如下:
◆关注管理与公司。
◆结构很重要。
◆关注的大区域就是“大场景”。
◆战略要比战术更加重要。
◆领导人是神圣的。他们中有许多人被分配给领导的位置或者通过竞选上台。
◆依赖被领导人。当你拥有工作或者加入一个军事组织时,你答应跟随这些组织上分配的领导人。你并不能做出选择。
第二组的特征(图 2)可以描述如下:
◆富有知识。
◆创新同时是一种目标和达到目标的手段。
◆收到欢迎的领导人。这一组的成员能够获得领导权,是因为人们认为他们是值得尊敬的领导并愿意跟随他们。
◆服从的被领导人。
◆这一组的每一个成员都是某一个领域内的专家。
像 Bill Gates 和 Steve Jobs 这样的人可以很容易的说明两种类型的领导。我将他们放在第二组,因为他们心中将软件开发员将创新性视图应用到技术中以构建公司摆在同一个位置。他们学着作为一个好的经理人,但是首先他们是一个领导。
神圣型领导与魅力型领导
成功的领导人必须能够激发他们的员工。一个成功的军事领导人通过向他的部队传达战争的正义性以及必胜性,来激发士兵们的斗志。这种领导权就是神圣型的领导人。技术性领导通过让员工们相信只要他们采纳领导人的意见就能获取成功。我想这种差异对于理解怎样才能成为一个合格的技术性领导至关重要。
一个公司的 CEO 的主要的武器,与士兵和公司雇员的核心价值和责任有很大不同,甚至他们都处在同一个团队中。但是,技术领导人的核心价值与个人雇员的价值是很匹配的。这使得我相信如果你想要成为一个技术性领导人,那么你首先就得先成为一个技术人员。如果你想在一个 Agile 团队里成为领导,你首先需要与团队保持相同的价值,而不是让团队来适应你的价值,这样可能效果适得其反。图 3 显示了神圣型领导人与被领导人之间的差异可以有多大,以及魅力型领导人与被领导人之间的差异可以有多小。
图 3. 领导人与被领导人之间的价值是怎样匹配的。
基于这种思考活动我们可以弄清楚一件事情:
管理这要涉及到资源收集,成本管理,分配工作以及利润最大化等等。对于所有想要获取成功的机构来说,处理这些事情是十分重要的。
领导人,尤其是技术领导人,领导的是人!技术领导人与被领导人之间有很大的关系。也有较好的领导人可以处理领导和管理之间的关系,但是好的管理人与领导之间还是有很大的区别的。
领导人特征与Agility
商业教育杂志 2005 九月/十月期 Bi Z Ed 含有 Tricia Bisoux 写的关于领导人特征的文章。人们可以发现这样的列表,但是该文列举了一系列匹配这些讨论的特征。我们将会检查下面的每一条,并看什么才是最适合 Agile 项目的。
自我意识:一个好的领导自己最了解自己。特别的是,领导知道自己在公司或者系统的地位,以及自己的优点和缺点。领导人有规律的检查自己的生活和价值观。这种特征最适合 Agile,因为反省是Agile 最核心的一个原则。 8 Agile 领导的价值观反应并鼓励他们不断的去做出提高。与之相反的是,当你有了一个很好定义的,策划驱动的过程时,反省并意味着苛刻。当机构遵循策划驱动的方法以谋取改进,这个改进的过程也是一个很快就策划好的过程。这些公司应该有关一个专门负责这一块工作的机构,不断去策划进程并改进进程。
并不是所有的管理员都会赞成“个人自扫门前雪”。在传统的公司内,每一个人都扮演一个特定的角色,只需要扮演这个角色,他们的管理人也乐于看见这一点。Agile 团队的领导人也是各有不同的。他们乐意让团队决定怎样去完成一件工作。他们的领导愿意让他们扮演自己,在团队工作时随心所欲。
自我意识所产生的一件事情,就是判断什么去领导,什么时候不去领导的能力。几年前在 IBM®Rational®User Conference 上, Susan Butcher,著名的“拉雪橇的人”,发表了一番精彩的演讲。在击败 Iditarod 狗拉雪橇很多次以后,她假设了一种情况,狗拒绝沿着设定好的路线拖动雪橇,她设定好的路线完全失效,她和她的狗最终都会失去生命。她对这种情况所做的评价一直留在我的脑海中:“有时候你需要去领导,有时候你需要让狗去领导”。她必须意识到她自己能够放弃对狗的控制。
如果你正在一个团队中工作的话,你在一个人手底下做事会干兴趣吗?如果不是,那么你恐怕不能成为一个 Agile 团队的领导。
个人信仰任何一个领导都必须有个人信仰。技术性的和 Agile 领导人在这一点上与其他领域的领导没有区别。一个缺乏个人信仰的领导是一个骗子。雇员与他们的领导之间的关系,就像是孩子与成人之间的关系。
个人信仰并不意味着你总是对的。在你采取某个立场时,你必须相信你是对的,但是你必须有足够多的自信去说服别人做一件事情有最好的方式。如果你没有个人信仰,不相信自己和团队正在做的事情,你能做的就是安静的走开,让团队在没有你的情况下前进.
勇气:勇气意味着“心灵或者道德上的力量,去争取美德,坚持,并抵制危险,恐惧或者差异”。没有个人信仰就不可能有勇气。领导人必须拥有个人信仰,并拥有足够多的自信坚持它们。勇气就是另一项 Agile 原则,但是通常它都被误解了。
人们通常都会想拥有勇气意味着他们可以根据计划不断前进,而不管这样做的后果。实际上,勇气意味着拥有力量和毅力寻找并沿着正确的路线前进;在你研究不同的选择,分析你所做行为的后果,并坚信你为公司、团队以及投资者所做的是正确的方法之后,就可以做出满意的决策。知识来自于应用战术,智力,经验以及对情况的判断。优秀的领导人都善于展现自己的勇气。
在计划驱动的公司内,追求的目标就是不顾一切代价去遵循一项计划。一个人所能做的最糟糕的事情,就是偏离这项计划。这会导致对项目状态错误的评价。被人报告落后是一个经理人的耻辱。如果你觉得你落后了,那么你就会迫使你的团队加班加点以赶上进度。每一周,领导人都会宣布团队在沿正常轨道运行。一周以前,我们计划向领导报告,他的团队落后了,并需要两到三个月以完成剩余的工作。
发生了什么?当然团队不会在一周内度完两个月。问题有两个。首先,领导没有勇气说出真相。第二,公司的价值不允许他们传递坏的消息。如果你准备去领导一个 Agile 团队,你需要拥有勇气说出事实,并鼓励你的团队成员也说出事实。为了让这一切变得简单,公司必须赞成允许 Agile 团队存在的价值。
创新:在这个列表中我最喜欢的一个就是创新了。我对他很着迷,因为我们对创新的理解实际上并没有道出它的本质。创新不是简单的做新的和不同的事情。它不是新颖性。创建的一个主要方面是产生新的注意,选择以及可能性。创新性领导帮助团队产生选择并评价它们的价值。
创新产生价值(思考带来价值)。思考产生伟大,但是这种活动的结果必须产生对团队和公司有价值的东西。简单的找到一种解决问题的方法并不是创新。找到解决问题的更加有效率、比以前的方式更加有用的新方法才是创新。我见过的最具创新性能的人,是那些能够在已存在的基本技术和方法的基础之上,找到方法把它们结合起来并解决新的问题,或者能够产生更加有效率的解决问题的方法。
很多读者可能对Dilbert连环画都很熟悉。其中你认为谁最有创建精神?我认为是 Wally;不是作为一个领导,而是一个纯粹的创新精神。他总是能够产生很有创新意味的选择去避免工作,但是 Wally 并不是一个领导,因为他的创新只能够对自己,而不是对公司产生价值。一个创新性的领导总是把注意力集中在为公司产生价值上面。
创新并不是对 Agility 独一无二的。一个好的领导需要在任何条件下都能够创新。
好奇心:好奇并不能杀死猫,但是能够激发技术性领导。一个好的开发团队以及他们的领导都很有好奇心。对他们来说仅仅执行一套方案并不够好。他们通过问“如果这样会发生什么”的问题来创建更好的软件系统。他们想要知道系统是怎样工作的,为什么事情以一种这样的方式发生,怎样做的更好。只要在满足他们的好奇心的情况下,他们才能将工作做的最好。
领导人必须允许好奇心的存在。一个成功的领导,必须知道什么时候是减少回报的地方,并引导团队的好奇心。好的开发员想要产生优异的软件,而且是最了解怎样评价产品到了足够好的人。坚持 Agile 原则的团队以一种轻易知道什么时候到了对顾客最好的时候的方式,构建系统。
激发斗志的能力住在 Massachusetts 使我有机会观察一些有能力激发团队士气的优秀领导。Bill Belichick, New England Patriots 足球队的教练,产生了一个战绩辉煌的足球队。Belichick 并不是一个高调的教练,而且也不总是暴露在聚光灯下。他努力指定并执行比赛计划,并为每一场比赛做好准备。他不断的鼓励他的团队并证明给他的球队看。他拥有经验和记录来支持他。他拥有强烈的给人原则和信仰。合适的时候,他会向他的队员展示同情心和好感。
好的技术性领导,不管是 Agile 还是更加传统的,就是像 Bill Belichick 这样的人。他们从过去的成功中获取现在的领导位置。他们拥有成功的记录,以及强烈的核心价值。我曾经与这样的人共事过,而且是我最愿意记住的人。那些没有当过领导却发表高谈阔论的“拉拉队领袖”,我很快就忘记了。
倾听的能力:领导一群人的人必须能够倾听。Susan Butcher 倾听她的属下并为他们服务。倾听是一种可以学习的技巧,但是必须有学的欲望。做你自己这种主题再次出现。如果你把听他们的话当做一种任务的话,你就有麻烦了。
让我解释一下听与倾听的区别。“听”意味着有人同你谈话时,你理解了他们的话,但是你没有表示同意也没有产生具体的行动,而且你也没有对那个人产生回馈。简短来说,你可能听到了他的谈话但是并没有注意它的内容。另一方面,如果你“倾听”的话,需要理解以及与另一个人的实际交流。假设有人提出了更改进程的建议。如果你听到了这个建议,而你又是一个好的倾听者,那么你需要提供建设性的回馈。这个注意也许很好,你想要鼓励他继续下去。或者这个注意需要进一步改进。如果你认为这是一个很糟糕的注意,那么你需要让他知道原因,并提出改进的方法。好的领导人,尤其是 Agile 团队的领导人,需要这样做。他们参入整个团队活动并帮助队员们更好的完成他们的活动。
因为 Agile 团队非常重视面对面的交流,所以你需要培养倾听的能力。向坐在你旁边的人要求状态报告,并不会给团队增加多少好处,特别是对 Agile 团队更是这样。Agile 团队找到了与其他人交流的最好方式,并不断提高当前的活动。
创新:创新可以促进更改,而 Agile 团队需要的就是改变。短语“需要改变”成为 eXtreme Programming 团队的一个特征。这样的团队鼓励在需求、技术以及项目生命周期内项目其他方面的改变。如果你并不鼓励程序,你就不可能鼓励改变。改革和创新同行,并相互支持。一个好的领导应该鼓励团队不断改革和创新,并注重传递价值。如果你想要找到一种证明你现在所做事情的标准,那么改革就是最适合的。团队是不是在创造,改革和不断的传递价值?
改革渗透到 Agile 团队中。当一个领导人身上集成了上面所有的,或者大多数的特征,那么就会发生协同作用。领导人并不保留改变自己的能力。Agile 领导鼓励所有团队成员身上的改革。Agile 技术性领导,像一个优异的经理人一样,通过团队的努力,而不是个人英雄主义来获取成功。
对于经验的渴望:改变的另一方面就是停滞。如果你不去改变,那么你就是停滞的。如果你是停滞的,那么你就会落后。一个富有朝气的团队总是在不断改进它的实践活动并追寻新的知识。.
经验就是知识:不止是随着实践增长的经验。经验最好通过多样性进行评价。广泛的经验使你变得心胸宽广,并拥有接受不同观点和文化的能力。在我的大学内,我们鼓励学生到我们的项目中心广泛旅游,以得到最少一种项目经验。他们通过学习以及在泰国、匈牙利、摩洛哥以及纳米比亚工作得到的知识是无价的。他们回到校园时就会改变很多。他们对生活以及学习,以及怎样回报社会都有了新的看法。
一些年前大学里面实行休假年以增加经验。这种经验可以是行业内的,另一个教育机构内的或者其他的地方。当他们回到他们原来的地方时,就会得到改变很多。我时常在想为什么公司不对他的雇员实行休假年制度。我坚信这种投资得到的回报会更大。
作为一个团队的领导,你想要获取什么?你是否想让他们经历没有激情的工作?如果不是,那么你就应该思考一下你的领导方式是否合适。
反省:这使得我们又回到了开始:自我意识。你通过反省获取了自我意识。这就是我们和我们的团队所做的循环。但是,这个循环不是一个简单的反复。它是螺旋形的,我们要么螺旋式上升到新的和好的经验结果,要么失败。反省可能是对 Agile 团队以及他们的领导最重要的性格。
Agile 团队不断的对他们的行为做出反应,并更改他们的实践活动。他们通过在过程中这样做。在 Agile 团队的每一次反复之后,查看这种反复,并看是否有什么问题存在。如果需要的话,他们会重新再来。他们不会等到项目成为过去时再去行动。