聊的是什么
敏捷开发是一种快速迭代的软件开发方法,强调在不断变化的需求和环境下,与客户和团队密切合作,快速响应变化,适应变化,交付高质量的产品。敏捷开发的核心思想是通过迭代式、增量式的开发方式,不断优化产品和过程,从而最大程度地满足客户需求。敏捷开发注重团队协作和自组织能力,强调快速反馈和持续改进,鼓励面对变化和风险,并通过不断迭代来提高开发效率和质量。
为什么会延期
上面关于敏捷方法的定义里提到了,我们使用敏捷的方式,是为了进行快速响应,适应变化。
想象是美好的,《人月神话》里提到了,没有银弹。任何一种方法论,都只能在有限的场景下发挥作用,滥用只会给自己平添麻烦。
这里说下几个常见的延期场景
新人
一个成熟的业务如果让新人开发,一般情况下需要老员工进行适当的指引。否则让新人一步步摸索代码中的业务逻辑,熟悉现有软件架构,可能会花费数倍的时间来完成这项任务。
退一步来说,就算是有老员工指引,新人在莫名的心理压力之下,图方便而违背现有的开发规范;导致隐性的质量问题,把压力传达给了QA,最终也会导致延期。
新业务
敏捷的先决条件就是承认需求会发生变化,所以也不能规划的过于周密。不然那就不是敏捷了,而是瀑布。如果接手一个新业务,往往需要很多的前置规划和相关架构上的铺垫。
面向语音开发
某些情况下,需求方没有给出具体的文档,而是直接口述传达一些开发要求。虽然敏捷开发是为了适应变化,但也是有局限性的。如果在当前开发周期内,反复变更业务需求,那么造成延期也就是必然情况了。
乐观评估
从乙方公司角度出发,作为一个供应商,在评估项目报价时,往往需要承担极高的心理压力。因为在同等条件下,甲方会更加倾向于报价低的供应商。在这种情况下,乙方可能对复杂的业务场景进行乐观评估,给之后的研发进度埋下隐患。
不适用的场景
- 项目需求稳定性高:如果项目需求比较稳定,变化较少,敏捷开发的优势可能不明显,反而可能会增加开发成本和时间。
- 团队成员缺乏经验:敏捷开发需要高度协作和自组织的团队,如果团队成员缺乏经验或能力不足,可能会导致项目的延迟和质量问题。
- 项目规模太大:敏捷开发适用于小型到中型的项目,如果项目规模过大,可能会造成团队协作和管理的困难,从而导致项目延期。
- 安全要求高:敏捷开发注重快速迭代和响应变化的能力,但可能会忽略一些安全问题。如果项目需要高度的安全性和稳定性,可能需要采用传统的软件开发方法。
- 预算和时间限制:敏捷开发需要不断迭代和调整,需要更加灵活的预算和时间规划,如果项目预算和时间限制比较严格,可能不适合采用敏捷开发。