如何组织开发团队
如何构建软件开发团队取决于可供选择的人员、项目的需求以及组织的需求。本文阐述了项目实施过程中各种团队组织的策略。
有效的软件项目团队由担当各种角色的人员所组成。每位成员扮演一个或多个角色;可能一个人专门负责项目管理,而另一些人则积极地参与系统的设计与实现。常见的一些项目角色包括:分析师、策划师、数据库管理员、设计师、操作/支持工程师、程序员、项目经理、项目赞助者、质量保证工程师、需求分析师、主题专家(用户)、测试人员。
作为一个项目经理人,您是如何组织项目团队的?是采用垂直方案、水平方案还是混合方案?以垂直方案组织的团队由多面手组成,每个成员都充当多重角色。以水平方案组织的团队由专家组成,每个成员充当一到两个角色。以混合方案组织的团队既包括多面手,又包括专家。
一个重要的考虑因素是可供选择的人员的性质。如果大多数人员是多面手,则您往往需要采用垂直方案,同样,如果大多数人员是专家,则采用水平方案。如果您正引入一些新人,即使这些人员都是合同工,则仍然需要优先考虑您的项目和组织。本文描述了形成团队组织的垂直、水平和混合方案,并指出了它们各自的优缺点。本次讨论的一个重要含意是您的团队组织和用于管理项目的手段之间应构成默契;任何方法上的失谐都很可能导致项目产生问题。
垂直团队组织
垂直团队由多面手组成。用例分配给了个人或小组,然后由他们从头至尾地实现用例。
优点
● 以单个用例为基础实现平滑的端到端开发。
● 开发人员能够掌握更广泛的技能。
缺点
● 多面手通常是一些要价很高并且很难找到的顾问。
● 多面手通常不具备快速解决具体问题所需的特定技术专长。
● 主题专家可能不得不和若干开发人员小组一起工作,从而增加了他们的负担。
● 所有多面手水平各不相同。
成功因素
● 每个成员都按照一套共同的标准与准则工作。
● 开发人员之间需要进行良好的沟通,以避免公共功能由不同的组来实现。
● 公共和达成共识的体系结构需要尽早在项目中确立。
水平团队组织
水平团队由专家组成。此类团队同时处理多个用例,每个成员都从事用例中有关其自身的方面。
优点
● 能高质量地完成项目各个方面(需求、设计等)的工作。
● 一些外部小组,如用户或操作人员,只需要与了解他们确切要求的一小部分专家进行交互。
缺点
● 专家们通常无法意识到其它专业的重要性,导致项目的各方面之间缺乏联系。
● “后端”人员所需的信息可能无法由“前端”人员来收集。
● 由于专家们的优先权、看法和需求互不相同,所以项目管理更为困难。
成功因素
● 团队成员之间需要有良好的沟通,这样他们才能彼此了解各自的职责。
● 需要制定专家们必须遵循的工作流程和质量标准,从而提高移交给其他专家的效率。
混合团队组织