软件开发周期总是预估的2-3倍的原因有以下几点:
1. 需求不稳定:需求理解有差异,用户表达的是这样的,而程序员的理解是这样的,且客户需求不定,增加需求,组织协调不畅。
2. 技术难题:项目技术难度很大,花费的时间超过原先的估计。在软件开发中,可能会遇到复杂的技术课题,需要进行一番研究和尝试,这将导致软件开发周期的延长。
3. 人员变动:软件开发的过程涉及到很多人,例如开发人员、测试人员等等,当人员发生变化时,需要进行培训和交接工作,这将导致软件开发周期的延长。
4. 命令决策:软件开发周期可能会受到中层管理人员及以上人员的干预,这些干预可能会导致需求变更、工作量增加等情况,从而导致软件开发周期的延长。项目经理没有处理好任务的时间分配。有的任务分配时间过长,浪费了时间,有的任务分配时间过短,没时间去完成。
5.主观因素:程序员大多是乐观的,乐观表现于假定一切运作是良好的,而事实经常相反。
综上所述,软件开发周期总是预估的 2-3 倍,主要原因在于软件开发周期存在着不确定性,需要面对需求变化、技术难题、人员变动以及命令决策等各种不确定因素。因此,在软件开发中,需要敏捷、灵活,不断适应变化,不断调整和优化软件开发流程,才能更好地控制软件开发周期和质量。