1.2进度的经验性安排
项目进度和工作量的不同:工作量只是子任务的数量的简单分解。项目进度依赖于顺序上的限制,以及资源制约、培训时间、管理成本等。
这里有一个基于经验的时间安排尺度。假设以一个项目的总体执行项目周期为1。对于软件任务的进度安排的经验法则:
·1/3计划
·1/6编码
·1/4构件测试和早期系统测试
·1/4系统测试,所有的构件已完成
除了系统测试,进度基本能保证。不为系统测试安排足够的时间简直就是一场灾难。因为延迟发生在项目快完成的时候,问题才出现在客户和项目经理面前。延误发布,将付出相当高的商业代价。上述的二次成本远远高于其他开销。
因此,在早期进度策划时,允许充分的系统测试时间是非常重要的。开发并推行生产率图表、缺陷率、估算规则等等,而整个组织最终会从这些数据的共享上获益。项目经理需要挺直腰杆,坚持他们的估计。
当一个软件项目落后于进度时,加派人手可能产生的进度灾难。
·要及时聘请到多么能干的新员工;
·新员工需要接受培训。有经验的职员将投入到原有进度安排以外的工作中;
·原先划分为三个部分的工作,会重新分解成五个部分;
·更多的交流成本、管理的工作;
·某些已经完成的工作必定会丢失,系统测试必须被延长。
2. 团队的组织
大型项目的每一个部分由一个团队解决,而并非一拥而上。由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力。
2.1协作成本
需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果。所以并不是人越多越好,系统应该由尽可能少的人员来开发。
2.2成员差异
程序员最好的和最差的表现在生产率上平均为10:1;在运行速度和空间上具有5:1的惊人差异。
2.3团队组织关系
一个项目中的两种角色安排的三种可能的关系,他们是:
1 产品负责人和技术主管是同一个人。这种方式非常容易应用在很小型的队伍中,可能是三个或六个开发人员。在大型的项目中则不容易得到应用。