个人简介 胡凯,ThoughtWorks公司的程序员,项目经理和咨询师,SpringSource官方培训师,开源软件的爱好者和贡献者,社区活动的参与者和推动者,Blogger,他的博客是 http://iamhukai.com。他于2006年加入ThoughtWorks, 非常享受于和聪明而富有影响力的Thoughtworker一起工作的感觉,一直站在敏捷软件开发、咨询的第一线,把写程序到退休作为自己追求的目标之一。
QCon全球企业开发大会(QCon Enterprise Software Development Conference)是由C4Media媒体集团InfoQ网站主办的全球顶级技术盛会,每年在伦敦、旧金山、东京、北京召开。自2007年3月份在伦敦召开首次举办以来,已经有包括金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。
1. 大家好,我是Infoq的记者鲍央舟,今天很高兴请到ThoughtWorks的胡凯。胡凯,你好。
你好。
2. 首先能不能简单给大家做一下你的自我介绍?
大家好,我是胡凯,来自于ThoughtWorks,我是ThoughtWorks一名咨询师,同时我是CruiseControl的一个核心开发人员,我是ThoughtWorks Go的一个核心开发人员,那么我也是Spring Framework的一个官方培训师。
3. 你好,那个之前在InfoQ上写的文章,叫《建设全功能团队》。然后今天下午也会给一个关于这个话题的演讲,那个建设团队是我们一直在说的问题,而且不只是软件行业,所有的公司都会说这个话题,首先你对这个建设团队这样一个大的话题是如何理解的?
我是这样去理解建设团队的这样一个话题的,在我的所经历的很多咨询的项目里面,以及我所看到的一些团队的建设过程当中,我觉得似乎有这样的一个倾向,团队这个概念被无限的抽象化了,以建设团队的这样一个概念被抽象化了。那么我们总是在提建设团队,建设团队,我们要在团队内部形成一种良好的团队氛围,但是我们究竟应该去做什么?
其实我们并不清楚。那么同时在建设团队的过程中呢,流程的作用被无限的放大了,我们总是在试图去寻找一种适合企业、适合团队的一种流程,我们寄希望这种流程可以帮助我们建设团队,建设团队文化,建设团队能力。那么我对建设团队的理解就是,建设团队特别是软件团队,没有什么比扎扎实实的把软件工程方面的基本功打扎实,那么没有什么比扎扎实实的去把业务分析好,测试完成好,把程序写好更重要的事情。那么一堆靠谱的人坐到一起,流程对于他们来说不是最重要的决定成败的因素,那么这时候我们可以看到建设全功能团队,或者建设团队在我的概念里面就是去扎扎实实做这些事情,去培养人这方面的能力,我觉得这是我所理解的团队与建设团队。
4. 那关于具体的如何建设团队的一些实施,我看你在你文章当中和今天下午演讲当中都会提到,在这边就不重复了。但我蛮好奇一个问题,因为前面听你的个人简介,从本身的技术方面都是比较强的一个人,也对咨询方面有很强的一个人,你怎么会想到建设团队这样一个事情,从什么时候你会突然意识到,这样建设一个团队的重要性,也就是说这个背后的动机是什么?
我觉得这个可能也是从这个咨询行业的这样的一个性质所决定的,那咨询行业在一开始的时候,你发挥得是个人的力量,那么你会慢慢的变得有经验,你会慢慢的成长起来,然后给客户带来更多的价值,但是你的成长终将会到达一个瓶颈。那么在这个过程中呢,去利用团队的力量,去帮助团队成长,对于一个咨询师来说是非常重要的这样一件事。那么这个咨询行业的这样所处的这样一个背景,就是这样基于杠杆的这样一个背景,所以建设团队和关注团队对一个咨询师来说,可能是一件比较自然的这样一个。
5. 所以你前面说到那个团队,这个建设团队是在慢慢咨询当中自然而然的事情,其实也是帮助这个项目成功非常自然而然的事情。所以我个人认为所有的一切,我们的出发点都是以业务成功,项目成功为一个前提的。那你觉得建设一个团队的重要性,在整个业务成功,或者项目成功当中扮演了什么样的地位,他的重要性是如何的?
我刚刚听你谈到两个词,就是业务成功和项目成功。但是在我的想法里面,我觉得还有一个很重要的成功是,团队成员的个人成功。我觉得一个现场的管理者,那么一线的项目经理这样一些角色,对于他们来说,有四个因素在这个过程中是非常重要的,一个是我们的交付,一个是我们的流程,那么还有我们的客户,以及我们团队内部的人。那么项目经理在这时候扮演着一个职责,就是不断把这四个球抛起来,不让任何一个球会落下去,他需要不断的去平衡这四个因素。
交付代表的是我们短期的成功。没有交付一个企业没有利润是没有办法去生存的。但是人代表得是企业的长期的成功,我们怎么去培养团队中的人,让团队中的人对企业有认同感,他的个人能力有成长,进而去信任这个团队,喜欢这个公司,对公司所提倡的这样一个价值与成长建立信任感。那么这个代表的是我们公司长期的利益。所以我觉得项目管理在这个过程中,不仅仅是去看我这个项目能不能交付,也要去看我的客户在交付的过程中有没有满意。我觉得这个很重要,成功的交付一个项目,在最终的截止日期之前,我们完成了Deliver这件事情,那么不见得意味着客户在这个过程中享受到了一个满意的这样一个开发过程,不见得他的商业利益被最大化了。
所以在这个过程中,如果开发团队着眼于更长远的跟客户之间的合作,那我们必然是要建立跟客户之间的一个信任的这样一个关系,把自己不仅不仅作为一个承包商去position,更多的是我们把自己作为一个建议者,摆到一个建议者的地位上。那么同时在这个过程中也要去看团队成员的是不是满意。如果团队成员在这个工作过程中没有个人的成长,甚至在这个做项目的过程中,被耗尽了,那么这个时候也不是一个,在我看来不是一个成功的项目,我觉得可能成功的项目更多的是能够在限制下去保证这四个因素的平衡。
6. 你前面说到短期利益和长期利益,我个人也是非常有共鸣的,觉得现在很多软件项目,或者说从以前的软件开发的经验来说,非常注重于短期的一个项目的交付,然后非常忽视,或者说没有那么重视一个长期的一个人的发展。但是我们随着现在敏捷在全国各地的流行,慢慢把这个“人”的一个话题给抛出来,所以也更多想象这个“人”的这个话题。其实说到底也就是短期这个和长期这样的利益的平衡那个关系。但是很可惜,现在并没有做得非常好,从我现在的感觉来看,还是很多人会注意这个短期的利益,非常忽视长期利益。那你有没有什么样的一个建议,可以让大家有更实际的一个措施,来更好的关注一个长期的利益,而不是只关注这个短期的利益?
我觉得你的问题问得挺好的,希望我能够提出这样一个建议。那我觉得短期利益之所以大家都看得非常清楚,恰恰就是因为它的回报周期短,它的这个反馈周期短,我们可以很快的在这个过程中衡量我们做得这样一个投资是不是有回报。我们雇了一个人,他在两个月,三个月之内能不能写出代码来,他能不能作为一个我们向客户卖的这样一个资源,那么这是我们可以去很快衡量的这样一个东西。
7. 就是直接有钱的那种利益价值可以回来的是吧?
没错,然后当我们谈到长期利益的时候,这个过程中似乎有更多有的不确定性。比如说我们的项目可能会变化,那么我们公司的未来的业务,以及这个客户在哪里,流程将近是什么样,我们有很多的不确定性,包括我们的人他会不会留下来。那我们在他身上做了很多投资以后会不会留下来,在这个过程中我觉得长期利益在这里面面对的挑战就是,我们有太多的不确定性,所以有恐惧。
8. 而且我觉得更加可能是无形的一些东西?
对,很难去衡量它,很难很快地就衡量出来这个长期利益有没有得到回报,所以对这样复杂的问题,我的理解是没有一个简单的解,也没有一个简单的说我们通过某种方法就可以衡量以及去跟踪这样一套体系,我相信很多的管理大师已经提出了大量的这样的帮助我们跟踪和衡量这个团队绩效,人员成长的一些方式和方法。
那么如果这些方式和方法在你的组织中可以很有效的运作,那么就去运作它,去好好的使用它。那如果它不能运作,我觉得更多是我们首先去定义,我们的问题到底在哪里,我们扎扎实实去解决这个问题。没有一个简单的流程,或者说,甚至一个咨询团队,当我们引入他们,当我们使用了这套流程,当我们引入了某个咨询团队,我们就可以奇迹般的去解决这样的一些问题。更多的就是真的把目光放下来,看到人身上,察觉出来每一个具体的有血有肉的这样一个人的,具体的需求,他对成长有什么样的需求,他希望在什么样的基础上有成长,那么他希望是不是在管理上有成长。那我怎么样在做项目的过程中,满足这样个人成长的这样一个愿望,对个人来说,这也是一种激励以及是一种动力。那么这个都可以帮助个人把工作做得更好。
我觉得在这个过程中,就是扎扎实实的把目光放下来,去做这样一些基础的工作,那么这些工作没有一件工作是容易做的,所以我觉得这些工作因为很难,相比来说,引入一套流程,或者说购买一个咨询服务看起来更容易一些,所以我觉得如果是我,我也可能在很多时候,经不住诱惑去选择一个比较容易的解决方案。但是回到我们自己的企业中,如果我们的企业真的有这方面的痛苦的话,我觉得更多的方面是下定决心,去扎扎实实去做这些基础的工作,把基础工作做好,那么团队中的人是会感受到这份关心,那么团队中的人在这个成长的过程中,如果能够感受到个人的成长,我们所担心的很多的问题,其实也不一定存在,当然这也是一个鸡生蛋和蛋生鸡的问题。
9. 我前面听到你说在做项目,比如说持续交付给客户价值的同时也要考虑到个人的成长,个人的需求是不是在这样一个项目当中得到一个满足,这句话突然让我想到了另外一个比较大的一个话题,就是在整个项目当中做一个绩效考核的话题,也是整个敏捷圈或者说现在非常热议的一个话题。比如说怎么把个人的一个目标和团队的一个目标给联系起来,和项目目标联系起来,最终、最终会联系到这个绩效考评,这个问题,这个点上,也是争议很大的一个点,所以我想问一下,在这方面你有没有什么见解,虽然这个我也知道是一个没有一个solution的一个话题,想跟大家分享一下你的一些见解?
我对这个问题没有特别多的所谓见解,或者解决方案的东西。但是我可以分享一些我们在团队中做得一些实践,在我所在的过去两个团队里面,我们会做两件事情。第一件事情是在项目开始的时候,每一个人写下,就是在这个项目的运作过程中,我个人希望达到的目标是什么,比如说在我们这个团队里面,我们可以看到有些人写下的目标是,我希望能够学习和掌握这个backbone.js,那我希望去做一场关于这个Ruby on rails的演讲,我希望能够读《meta-Programming with Ruby》这样一本书。
那么有的人会提到他的业务分析方面的需求,比如说我想学习和掌握更多的业务需求方面的这样的一些知识。那作为一个项目管理者,你作为一个项目的现场管理者,我觉得我要做得事情就是尝试去把他的个人目标和我的项目发展的目标去对齐起来。那比如说我们团队中有一个人,他的后端开发能力很强,那他在这个项目中向我提出了一个请求是,他说我希望能够做很多的前端开发的工作,那他在过去的两周,三周里面都是跟客户一个非常厉害的这样一个前端开发人员在一起结队,然后完成这个前端开发的工作,后端所有开发工作我们就全让别的人来做。
在这个过程中,我觉得就是项目管理者就是在这个时候想办法能够满足个人提出的目标,怎么跟我的团队前进的目标相对齐。那我觉得个人考评,为什么要做?我觉得还是一个对人起一个激励的作用,希望可以鞭策人的前进。我见过做得好的团队,也见过做得不好的团队,这个所谓的绩效考核变成了一场数字游戏。
10. 很常见。
我也见过很多的这样的团队,互相之间的评价都变成了这样一种说恭维话,说好听话的这样一个。还是回到我刚刚这样一个观点,就是项目管理者的这时候想的就是一个个具体的人,他的需求,而不是一个抽象的数字和一个考评指标。那有些人他想做前端,我就尽量安排他能够去做。那有些人提出的这个目标是业务分析方面,那我们公司里面有了培训,我就想办法能够把他安排到这个里面去参加这样的培训。那有的目标我完成不了,以我的能力完成不了,那我就想办法把这个问题上升起来,向我们的这个Resource Manager,向我们的CP去看我们能不能去解决这些问题,如果真的也无法解决,我觉得更多的就是我们可以在团队内部达成一致。也不是你所有的目标我们都达不到,有些目标我们能够达到,能够满足你的成长,你这些目标,有些能够帮的可以私人帮助你,那么也许这个项目本身不能帮到你,但是我可以私人帮助你,我觉得更多的就是这样一个就事论事的一件件事去解决的这样一个过程。所以在我的团队里面我们没有特别多的这样一个指标,但是如果说跟抽象的指标相比,我们的这样一个目标反而更具体,更容易追踪。
比如说我们在梳理这个目标两周以后,上一周我们又把大家的目标拿出来贴在墙上,使我们大家回顾一下,你立下来的目标完成了几个,你的书读了没有,你的演讲做了没有。譬如我们现在团队碰到的问题是在我们一开始说我们要做培训,然后到现在呢,我们的培训还没有开始做,那我们通过这样一个回顾,我们发现,我们这件事没有做。我们现在接下来做得就是每个人把这个写下来,指定到责任人身上,开始扎扎实实的把这种培训做起来,我觉得相比于这样的一个数字目标来说,这样一些具体的事情更加可以跟踪也更加有,更加可以具体的帮助人的成长。
11. 我觉得感受挺深的,其实是把那个个人目标也都透明出来,以前我们在做项目的时候,更多的是说项目目标是什么,我们非常清楚。但是并没有说,或者说从项目经理,管理者的角度来说,没有把个人目标非常显式的知道。你前面说的一点把个人目标也张贴在墙上,我们觉得这实践非常好,就是把所有东西都透明化出来,我们这个项目的目标不只是要交付,而且希望满足你们这些,这些,这些贴在墙上的个人目标。一旦信息都透明化出来这个事情就比较好办了。
那不仅是这个个人的目标我们把它透明化出来,包括我们在上一个项目里面,在两个月以前我的博客里面也贴了我上一个项目,我们上一个项目最终的团队的目标的初始状态以及最终的完成的一个状态,我们当时所有的人,在一个纸上,通过这样我刚刚去讲的这样四个维度,我们在人方面对于这个项目,我们认为他的目标是什么,对于交付方面,我们认为我们的目标是什么,对于我们的客户关系,我们的目标是什么,然后我们把这个目标变成一件件具体的事。
比如说我们说我们人放的目标,我们有一些跟公司价值观所对齐的,我们希望我们能够每星期做一次培训,那我们也有一些跟团队纪律相关的,比如我们希望每天早上9点15去站立会议,因为有些人可能住的比较远,所以我们希望在这样一个时间,也有一些比如说我们希望由谁带领大家来做瑜珈。那也有非常具体的这样一些目标,那么在最终我们项目完成的时候,我们再把这个目标拿出来,一个个去看一看,有那些完成,有那些没有完成,我们发现确实是有些事情我们最终没有完成,比如说我们刚说得做瑜珈这件事情,我们就真的团队没有坚持下去,但是有些事情,我们觉得我们还完成的蛮好。
12. 就可以做回顾嘛,为什么没完成。
所以我觉得刚刚你提到这样一个概念很好,就是把团队的目标可视化出来,把它变成一个大家都能看到的,贴在墙上,这时候它会产生一种被动的信息辐射,你看不看,你的团队目标都在那里,你一抬头就看到,我们原来说过,我们要每星期要做培训的,结果我们没有做,那我们出现了什么问题,我们怎么去解决这样一个问题。
13. 今天从胡凯听到了很多那个我认为是比较新的,和传统的一个项目管理不一样的一些概念,包括我们说要把交付的一个目标,个人目标,客户的目标,团队的目标都作为一个项目的目标来看,而不只是单独的一个目标。如果我们对项目做回顾的话,也不纯粹是从交付,我们怎么样更好的交付的角度来做,也从个人团队的成长,包括长期怎么更好的满足客户的角度来做。如果真的项目都可以用这样的方式来管理,我觉得团队成员应该都是处于一种比较幸福的这样一种工作状态的。好,谢谢胡凯。
谢谢。