影响软件生产率的有三个主要因素,分别是沟通、管理和技术。而软件开发团队的组织形式就与沟通和管理两个因素有关。所以,如果我们想要提高组织的软件生产率,就有必要了解下不同的团队形式对软件生产率的影响。
在过去的大约几十年间,出现了很多不同类型的软件开发团队。这里只讨论5种常见的团队类型:Ad Hoc团队、首席程序员团队、结对编程团队、跨功能团队,以及老虎团队(Tiger Team)。
-
Ad Hoc团队
作为一个团队,每个成员都应为了同一个目标而努力。从这个意义上讲,Ad Hoc团队并不能算是一个真正的团队,因为它根本就没有清晰明确的团队结构,它只是被分配到一个给定的开发任务上的人群。作为团队,它只是与考勤卡上相同的费用代码有关,除此以外基本再无其他关联。
这种团队通常会工作在彼此有隔间的办公环境,团队成员之间缺少交流,甚至管理者也很少与开发团队坐在一起办公。
这种团队由于缺乏沟通和必要的管理,软件开发效率会可想而知的低下。
-
首席程序员团队
首席程序员团队由一名首席程序员(经验丰富、能力超强)、一名后备首席程序员(首席程序员的后备和保险)、一些功能领域专家(处理首席程序员不能覆盖的业务领域问题)、一些编码人员以及一名配置库管理员组成。这种团队结构通常是“中央集权”结构,团队沟通往往是垂直进行的,首席程序员负责规划、协调并审核所有的技术活动。
这种团队形式对于规模较小,复杂度不高的软件而言是比较合适的,而对于规模较大,复杂度又很高的软件,由于首席程序员的能力可能就无法完美地执行所有的规划、协调 、审核任务,团队之间的沟通有效性不足,软件开发的效率必然会被拖垮。
-
结对编程团队
结对编程团队是两个程序员肩并肩地在同一台电脑上一起工作,在相同的分析、设计、实现和测试任务上进行协作。
实际上,不可能再有比这种方式更能实现两个团队成员之间的紧密协作了。
有实验数据表明,某个软件项目成员的平均生产率是每人月77行源代码,在实行结对编程之后,平均生产率提高到每人月175行源代码,而且,该项目所达到的错误率比该组织的正常水平低3个数量级。
-
跨功能团队
跨功能团队包括了从开始到最终交付开展项目所必要的各种类型的工程师,其中包括的人员有分析师、设计师、程序员、测试和集成人员,以及项目管理人员。
跨功能团队通常会被赋予一定的权限,它以高度自治的方式运作,不受外部干扰。团队成员的工作环境通常也是一个开放的环境。
所以,这种团队内部可以进行紧密的沟通,同时又不会受到太多外部的干扰,它的软件生产率通常也会比较高。
-
老虎团队
老虎团队是在特定领域里,针对特定的任务,聚集在一起工作的一组专家。它通常被用于拯救濒临失败的项目或在项目最后期限来临之前解决项目中的重大问题。
老虎团队成员通常都是由技术过硬的人员组成,短时间内解决问题又使得他们之间必须进行高度协作和交流,这种团队形式基本完全符合高软件生产率的三个要素。而且,为了解决棘手的问题,老虎团队通常还被授权可以游离于正常的管理体系之外,打破“条条框框”,这会使得他们的效率进一步提高。
但是,这种团队形式不应该也不可能成为常态。
所以,如果想要提高组织的软件生产率,可以考虑跨功能团队+结对编程团队组合的形式。
网友评论