📜  软件工程|人员规划

📅  最后修改于: 2021-01-09 15:06:31             🧑  作者: Mango

人事策划

人事计划负责人员配备。人员配备与任命人员一起处理由组织结构确定的职位。

它涉及:

  • 人员定义要求
  • 招聘(确定,面试和选择候选人)
  • 补偿性
  • 开发促进剂

对于人员计划和调度,为子系统和系统中的必要组件做出努力并制定调度大小会很有帮助。

在计划时,当系统方法尚未完成时,计划者只能考虑了解系统中的大型子系统以及这些子系统中的主要模块。

一旦估计了项目计划,并且知道了各个阶段和功能的工作量和时间表,就可以实现人员要求。

从项目的成本和总体工期,可以通过将总工作量(以人/月为单位)除以整个项目工期(以月为单位)来确定项目的平均员工人数。

通常,项目的需求人员在需求和设计期间很小,在实施和测试期间最大,而在集成和测试的最后阶段又会减少。

使用COCOMO模型,由于已知每种方法的工作量和进度,因此可以计算各个阶段的平均人员需求。

当每个动作的时间表和平均人员水平众所周知时,可以计划该项目的总体人员分配。

该计划将指示在项目持续时间内,在不同时间进行不同活动需要多少人。

每个月的总工作量和每个步骤的总工作量可以轻松地从此计划中计算得出。

团队架构

团队结构解决了各个项目团队的安排问题。有一些可能的方法可以组织不同的项目团队。主要有三个正式的团队结构:首席程序员,无自我或民主的,以及混合的团队组织,甚至这些结构的其他几种变体也是可能的。各种复杂性和规模的问题通常需要不同的团队结构作为主要解决方案。

缺乏自我或民主的团队

较少人组成的团队由数量较少的程序员组成。该小组的目标是通过共识确定的,每个成员的意见均用于重大决策。小组领导在小组成员之间进行。由于其性质,无自我团队一直被称为民主团队。

该结构允许所有代表进行输入,从而可以在各种问题上做出更好的决策。这表明该方法非常适合没有时间限制的长期研究型项目。

首席程序员团队

与无自我团队相比,首席程序员团队具有层次结构。它由一个首席程序员组成,他有一个备用程序员,一名程序库管理员和一些程序员。

首席程序员对于项目的所有主要技术决策至关重要。

他负责大部分设计,并且将设计不同部分的编码分配给程序员。

备用程序员使用首席程序员来制定技术决策,如果首席程序员生病或离职,则由他来接管首席程序员。

程序管理员对于维护文档和其他与通信有关的工作至关重要。

这种结构大大减少了人际交流。通信路径,如图:

控制下放团队

(层级团队结构)

第三个团队结构称为分散控制的团队,试图将民主团队和首席程序员团队的力量结合起来。

它由项目负责人组成,这些项目负责人下有一类高级程序员,而每个高级程序员下都有一个初级程序员。

一个高级程序员小组和他的初级程序员的行为就像一个无自我的团队,但是不同小组之间的交流只能通过该小组的高级程序员进行。

高级程序员还与项目负责人沟通。

这样的团队比民主团队拥有更少的沟通路径,但是与首席程序员团队相比拥有更多的路径。

这种结构最适合直接简单的大型项目。它不太适合简单项目或研究型项目。