为什么软件开发周期总是预估的2~3倍?
先从软件开发的大概流程来说,首先是要进行可行性分析,其中包括
- 技术可行性
- 经济可行性
- 操作可行性
再去进行需求分析,来做出满足客户需求的产品。
例如我们老师上课说的例子:
银行与公司合作要做一个系统,2022年1月16日公司一部门与其直接签约,并要求此与2022年6月28日开始运行,公司将任务交给小李所在的部门负责,他们组加上小李一共五个人,两个编码员,两个测试员,小李是总监,同时还兼顾市场调研的任务,本来的计划是2月28日完成市场调研以及前期工作开始编码,到4月20日编码完成,开始进行测试,在6月26日试运行。
但是在实际操作中,前期任务及市场调研到3月16日才完成,3月17日才开始进行编码,5月28日才编码完成,按照此进度,他们在6月26日无法得到一个试运行的系统。(老师上课讲的具体日期我不记得了,依稀照着印象写出来的)
原因很多,其一是小李一人做两份工作,是不合理且不应该的,会拖后进度;其二是在进行前期工作时后期工作人员空闲,人员利用不合理;三是二月为春节假期,在规划日程时没有考虑到节假日的影响。
软件开发不仅仅只是技术上实现某个功能,天时地利人和缺一不可,各种外界原因影响都会导致开发周期延长。
总而言之,软件开发是一项非常复杂的工程,不仅包含需求分析、设计、编码、测试、实施、维护等不同的过程,还涉及到开发工具、开发人员、项目管理、风险等众多因素,不同因素会对周期预估产生不同的影响,经常会导致预估时间是预估周期2-3倍。