对于软件项目团队,人员的技巧和经验可能对生产率产生高达10倍的影响。在《人月神话》中曾提到对于一个100人的团队,最好是只保留25个经验丰富的项目经理进行开发,而解散其它成员。当实际上一个软件团队不可能要求每个人都经验丰富,经过充分的培训和智商奇高,都是牛人的团队往往更容易出现混乱。因此需要谨慎实施只雇佣优秀开发人员的想法,一个更好的方式是多考虑如何去建设一个有战斗力的团队或者是如何真正去保证团队的有效性。
平衡和工作匹配是软件项目团队的重要方面。只要失去了平衡,团队就会变得脆弱。正如一个成功的橄榄球队,进攻,防守,教练,替补,传球等各种角色和活动都不可少,伟大的球队需要在每个位置都有关键球员,但是球队中不可能每个人都是球星。因此球员应该更多关注如何赢得比赛胜利,而不是单纯的个人荣誉。
团队合作远比个人总和重要,因此项目经理需要真正做到人尽其材,每个人才都能够真正找到适合自己的位置,这样人才的配置才能达到一个平衡状态。对于如何为软件项目提供人员时候,波姆提出以下五项原则:
1.顶尖人才原则-使用更好和更少的人员
对大多数项目都有一个自然合适的团队规模,偏差太大都不利于发挥团队的能动性。另外团队中不可避免的有辅助性工作要做,必须要为软件项目团队配置如《人月神话》外科手术队伍中谈及的一些秘书和辅助人员,但是我们需要搞清楚的是核心团队的人数要尽可能的少,以保证高度的概念完整性。
2.工作匹配原则-把任务分给技能和动力都匹配的人
对软件团队,辨别难以琢磨的个人技能并做到最优分配是相当困难的,而且项目经理的个人主观意愿也可能使分配复杂化。在软件项目团队中最胜任编码的程序员总是希望能够得到提升上升为设计师和经理,由于帕金森定律导致的金字塔上升现象在软件项目团队更加明显。我们不能承认编码工作的重要性,也不能给高效编码人员更高的薪水,好的编码人员都在朝上走,在用的编码人员都很难是经验丰富的高效率人员。人才不能发挥所长,对工程师和管理者来讲是一个双重的打击。
3.职业发展原则-帮助员工的自我实现并取得好成绩
新员工刚进入团队中的时候职业发展原则是很有效的,可以帮助员工技能的完善和自我价值实现。当对于老员工和技能达到一定层次的员工,这点上往往是困难的,组织或团队不可能一直产生很多新的东西或应用新的技术,团队中也不可能一直都存在职业发展的机会。在组织中,组织的培训受益最大的往往是中等或中等以下的员工,而团队的培训往往更是战术性的,关注的是结束后就能马上应用的内容,而不会太多关注和培训业界新的知识和技术。
4.群组平衡原则-选择与其他人互为补充和协调一致的人员
在软件项目中我们不仅仅是关注项目的进度,质量,范围和成本四要素的平衡。还需要关注人员角色分工的平衡,冒险和保守的平衡,外部和内部的平衡,纪律和灵活性间的平衡等等。任何一个方面失去平衡,项目都可能处于危险中。
5.逐步淘汰原则-一个不称职的人留在组织内对谁都没有好处
不称职可以给你提供寻找更好员工或四使用更少员工的理由,不称职会阻碍其它组员自我实现能力,并且在某些方面会破坏团队内的平衡,给团队其它成员造成不称职也可以在团队中生存和获取报酬的负面影响。
软件开发是一项集体运动,项目经理必须培养一种团队合作,而不是单纯的追求个人成功的氛围。群组平衡和工作匹配应该是最主要的目标,因为顶尖人才原则和逐步淘汰原则必须在群组平衡的前提下实施。另外职业发展原则不可以过分强调,因为过分强调这一原则而忽视了团队成功的个人或组织在竞争激励的市场上不会长久。