background image

 

代码,并对提交的所有模块进行初步测试。这种工作划分使得程序员能集中精力做编程。
  当然,还有许多其它组织开发或维护项目的方式,上面介绍的两种组织结构代表了两
种极端的情况。在给定的条件下怎么选择最合适的结构呢?在有着高度确定性、稳定性、一
致性和重复性的项目中,使用像主程序员负责制这样的等级组织结构会更有效。这些项目

 

成员之间的交流很少,强调规章、专业、正式以及组织层次的清晰定义。
  另一方面,当项目中涉及大量的不确定性时,采用更为民主的方法可能会更好。因为

 

项目的不确定性比较高,参与决策和鼓励开放式交流可能会更为有效。
  在适当的时候把两种类型的组织结构组合起来。例如,可以要求程序员独立自主地开
发一个子系统,在层次结构内部使用民主制;或者可以为一个结构松散型项目的测试小组

 

规定一个层次结构,指派某人负责所有主要的测试决策。
  4

 

风险管理

  在软件开发过程中,经常会碰到对需求的误解、关键人员流失、测试时间不充分、实时
性能达不到要求、外部提供的环境达不到要求等风险事项。所以项目经理必须确定在开发或
维护过程中是否会出现这些风险事项,并制订计划以避免这些事件。如果这些事件不能够
避免,也要把伤害降到最低。风险管理包括识别风险、分析风险、为每个风险分配优先级、降

 

低风险、风险管理计划及风险化解。
  首先,评价项目的风险,以便了解在开发或维护过程中可能发生什么。可以通过类似
系统的检查清单,以确定新项目是否可能受到清单中风险的影响。其次,分析已经识别的
风险,以便能尽可能多地了解风险事项的性质。有很多技术可以增加对风险的了解,包括
成本模型、性能模型、网络分析等。最后给所有的风险分配优先级。优先级能够利用有限的资

 

源集解决最有威胁的风险。

 

   可以通过改变性能或功能需求,避免风险;也可以把风险分配到其他系统中,或者
购买保险,转移风险。要是风险发生,接受并用项目资源控制风险。在风险管理计划中做好
记录,以便他人查阅。随着项目的进展,定期地重新评估风险、风险出现的概率以及风险可

 

能造成的影响。
  综上所述,成本估算应当在早期进行并且经常进行。可以将成本估算和风险管理结合
起来,通过成本估算,我们在对预算内完成工作表示担忧时,风险管理技术可以用来减少

 

甚至消除风险。