为什么IT项目总是延期?
共 1884字,需浏览 4分钟
·
2024-03-24 05:30
这是 程序员小跃 的第 174 篇原创分享
还在读大学的时候,有一门课程叫:软件工程。里面会提到各种开发模式,什么瀑布式开发、敏捷开发、迭代式开发、敏捷瀑布模型等等,然后老师也都会提到开发时间,按期交付的重要性。
哪怕是做毕业设计的时候,导师们给了一个deadline,就必须在这个时间点之前完成毕业设计,完成答辩,才能毕业,否则就GG。
图源:文心一言
但是,自从自己步入职场,貌似自己做的开发项目,基本多多少少会有延期,一开始也很纳闷,怎么学校里学的理论和现实中的实际不一样呢?直到工作多年之后,我才慢慢领悟,原来这不是我的幻觉,是大部分人都遇到的现实问题。
需求不明确或频繁变动
虽然现在很多公司的项目开发规范里,都会有业务部门提需求,产品经理接需求,然后下达到开发人员。这里通过一系列的串讲,反串讲,反复确认需求,然后进行开发。
但是,哪怕是这么做了,随着时间的推移,随着每个人思想上的进步,项目开发进行中多多少少会遇到变动。
或者说,一开始的时候都没有流程规范,口头提需求,然后靠各自的理解,这么做就会导致一开始就做不好,跟着不明确的需求做,是真的累。
计划不充分
在项目开发中,需求方和接收方各自了解,但是因为不明确,或者频繁沟通,导致一开始制定的时间计划不够准确。
或者开发人员因为经验不足,错误的估计了自己的能力,导致时间估计不准确、未考虑依赖关系或者没有设定合理的里程碑,也可能导致项目延迟。
图源:文心一言
技术挑战
如果是简单的需求,按部就班就可以了。
但是,很多客户的需求都有一定的难度,然后客户又想着对标一些大厂的产品,比如用户体验对标苹果,这就导致一些高难度,高技巧的开发项参杂在里面。
因为,在项目实施过程中就遇到预料之外的技术挑战或复杂性,这些问题可能需要额外的时间来解决。
沟通不足
项目开始前期,需求方,和开发方做了一系列沟通这个挺好的,但是当开发开始的时候,就突然失联了。
这样的事情我不是没遇到过,是遇到过好多次。
因此,项目团队成员之间以及与利益相关者之间的沟通偏少可能会导致误解和错误决策。
图源:文心一言
范围蔓延
理想的开发当然就是新来一个需求,然后照着这个需求进行开发就完事了。
但是,现实他不和你这么玩呢。因为这个需求,你动了历史代码中的一小部分,导致一整块功能执行不了,这就是所谓的牵一发而动全身。
现在知道为什么会有那么多人叫历史代码为:屎山。开发过程中你都预想不到会有哪些事情发生,工作范围在无意中逐渐扩大,没有相应的调整时间表和资源。
客户参与度低
这也是我遇到过的场景之一。
业务部门只管提出需求,但是人家只管生不管养的样子,提了需求自己的任务就算完成了。
殊不知后面还有持续的沟通,以及测试需要他们参与呢。
很多时候,因为他们参与不足,会导致对于需求的理解不一致,或者统一决策花费更长的时间。
图源:文心一言
风险管理不足
很多时候项目开发不可能一帆风顺,在你开发的过程中,领导们会识别到各种风险。
比如版权风险,代码的安全规范,或者政策的改变需要进行紧急修改等等。
项目中潜在的风险可能没有被恰当地识别或管理,一旦这些风险成为现实,可能会导致延期。
小结
要有效地避免或减少IT项目的延期,通常需要改进项目管理实践,包括更好的需求管理、风险管理、沟通和资源规划等。
在这里,跃哥还是推荐使用敏捷方法、持续集成和持续部署等现代软件开发实践也可能有助于提高项目适应性和减少延期的几率。
重磅!两万字长文总结,梳理 Java 入门进阶哪些事(推荐收藏)