00 引言
当外包软件项目开发时,客户自然希望对项目成功有信心并对最终交付结果满意。但是与内部开发团队不同,客户不能关注到外包团队,项目团队的日常工作并不总是可见。
这就是为什么选择合适的人和形成有效的团队对项目经理来说是一个重大的挑战。对于成功的软件项目开发,不仅技术经验是重要的,还应考虑以下因素:
沟通技巧是外包商的核心方面之一,误解可能导致迭代失败,甚至导致整个项目失败;
每个团队成员的个人软技能对整个团队可能有相当大的意义;
能够在分布式环境中工作是外包商的另一个核心要求;
自律要求按时完成令人满意的工作,而不是需要天天进行监督才可以;
解决问题的技能允许开发者不仅不是任务执行者,一旦出现意外的问题就停止工作,而是理解问题,找出导致问题的原因并且能够克服它;
这些素质是外包团队中每个开发人员所必需的。 当形成这样一个软件开发团队时,不仅每个开发人员的技能和素质都很重要,而且要更关注他们的协同效应。
如何选择外包IT开发团队的方法,主要有以下两点:
选择个人:在这种方式下,可以让客户对每名候选人访谈,最终通过所选择的开发人员形成一个团队;
选择团队核心:客户访谈并选择核心专家(团队领导(TL),技术主管等)。然后团队领导根据项目要求,来组建形成开发团队;
这两种方法被广泛应用于各个需要组建分包团队的项目或组织中。
01 个人选择
在合同谈判前,我们能为客户提供交付经理与项目领域专家,客户会和每个交付经理沟通并选择其中的一个进行合作。然后客户给出我们项目所需的开发人员和其他专家名单,或者交付经理暗示这个团队应该根据项目要求进行搭建。
然后我们按照客户的需求选择相关的人并提供简历,客户审核提供的简历,通过面试来确定哪些人与预期相符,然后让他们选择出最终合适的人来组建成最终的外包交付团队。
如果该项目启动后,有开发者因为个人原因离开团队,这里的个人原因可能是由于无法融入到团队中或者是因为客户对他/她的表现感到失望,那我们需要提供新的简历供客户面试新的候选人。
这种方法有其优点和缺点:
优点:客户对所选择的开发人员感觉更自信,因为他们中的每个人都是经过客户面试的;
缺点:选择和面试每个项目成员需要时间,这可能会拖延项目的开发进度;
同时单独优秀的个体并不能总是产生有效的绩效所需的协同作用。如果团队领导没有参与进去来形成最终的团队,他/她可能无法保证获得最好的结果。
02 选择团队核心
类似于以上描述的方法,在这种情况下,客户首先选择与相关的交付经理,然后根据项目的细节,交付经理确定项目是否需要TL或项目经理,或任何其他核心专家(业务分析师,技术专家,质量专家),核心专家的要求由客户根据由交付经理提出的建议所定义。
人员选择包括以下步骤:
如果谁满足项目需求的核心专家是不可用的,我们会从人才市场上挑选候选人;
交付经理面试所有可用的候选人,并选择几个最好的把简历提供给客户;
客户选择面试并在项目工作开始前选择确认大部分专家;
客户随后与TL形成对团队中其他成员的工作要求,TL根据要求,组建项目开发团队;
这种方法假设客户选择的核心专家后,他/她会信任他们形成团队,确保项目的开发。如果开发者需要更换,新的候选人面试由TL选择。
这种替换,甚至可以不需要客户的同意,客户他/她只需要看到结果(比如另一次迭代成功完成),而并不需要了解如何做以及由谁做。
这种方法也有它的优点和缺点。
优点:客户没有去花费大量的时间去面试每位候选人,只有核心的专家是由客户选择,项目团队中其他开发者是由TL按照客户要求进行选择录用;
TL选择已经形成的开发队伍,这样他可以确信将能够使团队产生协同效应和良好的高度执行力;
在选择成员而言,TL可以去排除掉团队成员之间存在不兼容的可能性;
缺点:客户可能有关于该项目的成功表示怀疑;为了减轻客户的质疑,可以提供一个小型的测试项目,以显示TL的能力。
TL是在开发团队中最重要的角色之一,TL影响整个团队的工作,而项目的成功依赖于TL团队的有效工作。
TL除了具有技术技能,还应该能够形成有效的团队,有管理团队的足够的经验。为了确定TL在这方面适合性,在面试TL时需要注意以下几点:
有带领过开发经验的团队:候选者生应该能够描述他/她如何形成各个项目团队,在项目团队组建过程中,有什么可以展示的亮点和经验总结?
能够理解他/她自己的错误:在选择队员方面犯过哪些错误?这些错误具体是什么?产生的后果是什么?
对于项目中的冲突管理能力:如果一个团队成员对项目是无共享的,那需要采取什么样的行动?如果需要更换团队成员,如何最大限度减少更换造成的损失?他/她是否寻求团队保持稳定减少流动的可能性?
建立内部开发流程:如何方便团队成员完成代码审查,如何提供团队成员的职业上升通道,如何建立有效的沟通?如何确保团队合作的透明度,如何采用关键绩效指标来考核团队的效率?如何建立反馈渠道来确保项目交付在保证质量的前提下有效快速的前进?
当然,除了以上的团队管理经验,技术能力也是TL不可或缺的。
03 小结
当需要聘请外包团队的时候,公司和客户会选择最便捷的方式来形成开发团队,每个上述方法都有其优缺点,那你使用哪种上述方法,形成外包团队?也许你用完全不同的方法?可以留言进行讨论。