理想很美好,现实很骨感,这是效率的问题还是能力的缺失,要认真设计出来一个系统进行软件开发是一个漫长且复杂的过程,不仅包含需求分析、设计、编码、测试、实施、维护等不同的过程,还涉及到开发工具、开发人员、项目管理、风险等众多因素,不同因素会对周期预估产生不同的影响。当低估项目周期时,会造成人力低估、成本预算低估、日程过短,最终人力资源耗尽,成本超出预算,为完成项目不得不赶工,影响项目质量。而项目周期估计过长,也会带来成本估计过高,人力资源利用不充分效率低下的后果。所以,过长过短的预估周期都是不好的。我们知道在软件开发的过程中总有可能出现各种各样的问题,比如需求分析中软件的功能可能达不到客户的需求,就像文章中所以提到的:看上去前方道路多曲折啊。走40英里路只能到「月亮湾」的一半。这么一看,整趟路途不是原来的400英里,而是500英里! 又或者是编码时一个小小的错误没有被检查出来,又或者是项目经理没有规划好任务的时间分配,导致有的模块时间太长,有的模块时间完全不够用,计划总是赶不上变化的。这些意外都是不可避免的,我们要做的是尽可能的减少损失,冷静分析我们的遇到的问题,所以,团队之间要相互合作,及时沟通,提高开发的效率;软件开发团队的经验不足,遇到问题时不能快速有效地解决。
根据上述情况:
我觉得产生软件开发周期总是预估的2~3倍的原因:
1.需求的不断变化与理解的差异,用户表达的是这样的,而程序员的理解是这样的,且客户需求不定,增加需求,组织协调不畅。
2.在需求分析阶段出现了错误,构造软件框架时做的东西没有也无法全量覆盖 ,导致与实际落地产品差距甚大。
3.项目经理没有处理好任务的时间分配。有的任务分配时间过长,浪费了时间,有的任务分配时间过短,没时间去完成。
4.开发人员对实现目标的可能出现的问题,估计不足,往往会低估问题的复杂程度。风险意识不足,没有意识到风险或者意识到风险响应错误不及时。
5.程序员大多是乐观的,而事实经常相反。
人的因素,技术因素,管理因素,分配因素等诸多因素的综合影响下,造成了开发周期的推迟。
解决的方法:
1.为系统测试安排足够的时间。
2.重新安排进度,或者重新安排功能优先级,优先级低的排到下一次迭代去做。
3.聘请优秀,能干,有开发经验的工程师,并且开发团队规模不超过10人。 由一个首席程序员完成问题的分解,其他人给予他所需要的支持。
4.内部自研的系统,需要认准一个系统,有专门的一个人在上面负责维护和同步这些信息,其他人跟自己相关的在做完的时候更新一下状态,如果没有更新负责的那个人要能够经常确认并进行更新。定期跟大家同步进度状态。
如此,术业有专攻,使效率和收益达到最大化。
为什么软件开发周期总是预估的2~3倍?
最新推荐文章于 2022-04-29 17:35:26 发布