当敏捷开发遇上固定交付……

智码映溟使
• 阅读 464

假设一个固定交付的项目,这个开发项目是构建一个应用程序,时间表是一年。在项目进行期间可能出现什么问题?

一、什么是固定交付?

一个固定交付的项目意味着它具有固定的范围、固定的时间表和固定的成本。

长期以来,传统的项目管理方式侧重于由项目范围、预算和时间表组成的“三重约束”,这也被称为铁三角。任何项目的“三重约束”都保持着彼此之间的平衡,任何一项发生变化就可能导致其他项发生变化。

其实,三重约束是错误的,主要有两个原因:
第一,三者之间的关系会发生变化,不会一直维持着平衡状态。
第二,过于关注“三重约束”反而容易忽略质量等其他重要约束。

“三重约束”只关注了项目的交付交互,而忽略了项目的价值交付。如果我们所提供的解决方案不能增加价值,那项目按时、按预算交付的意义是什么呢?
当敏捷开发遇上固定交付……

二、敏捷是否适用于固定交付项目?

敏捷开发是一种以迭代、协作和快速响应变化为核心的软件开发方法。它强调灵活性、适应性和持续交付,以满足客户需求并提高质量的软件产品。

客户本身可能并不知道自己想要什么,也不知道项目团队采用何种方式交付,因此在交付方法中保持灵活性至关重要,利用交付周期、获得反馈并不断改进工作方式。

传统的项目管理方式对于一个固定的交付项目其实没有那么适用。
首先,通过对构建范围的时间和成本进行估计,但这估计结果仍存在着偏差。 根据不确定性锥,早期估计结果可能会比实际交付所需的偏差多达4倍。即使在需求完成后,估计结果也可能比交付所需的费用低 1.5 倍。
其次,一年的开发周期对于一个技术项目来说是很长的时间。 即使我们对项目有固定的要求,并保证不会有任何变化,但如此长的开发周期仍会出现不能预料的变动,如对所写内容的理解将发生变化。潜在的客户需求和优先事项将发生变化。
最后,使用阶段的传统方法,我们通常无法确定能否在分配的时间内交付了所有预算工作, 这会导致将工作从一个阶段推到未来阶段。

其实,无论使用传统还是敏捷交付方法,交付固定项目都是有风险的。但不得不承认在固定交付项目中使用敏捷方法可能会有一些优势。
当敏捷开发遇上固定交付……

三、使用敏捷进行固定交付的优势

1.适用不断变化的需求

在项目进行过程中,项目需求随时会发生变化。敏捷开发方式能灵活应对这些变化,让团队快速响应新的反馈和需求,以确保最终产品满足客户的需求。

2.早期交付价值

敏捷开发方式强调定期交付产品的工作增量,而不是等到项目接近尾声时才爆炸式交付。即使产品的所有功能尚未完成,但定期交付的产品能让客户尽早使用并从中受益。

3.提高可预测性

使用迭代可以让团队更好地预测未来。在每 2 周迭代 (Sprint) 结束时,团队可以使用平均吞吐量和剩余积压工作来预测交付整个项目所需的时间。在使用阶段和按顺序交付时,这种级别的可预测性是不可能的。

4.提高透明度

使用限时迭代和优先产品待办事项列表为团队的有效性提供了透明度。这使得进度跟踪更加有效,并加快了问题和风险的识别和解决。

5.持续改进

敏捷方法促进了对产品的持续反馈以及团队反思和回顾的时间。对产品的反馈会带来更高质量、更有效的解决方案。团队反思和回顾推动了团队流程的改进,从而使团队合作更加有效和愉快。

6.降低风险

敏捷的增量交付方法允许及早识别和缓解项目风险。通过提供较小的增量,可以在问题升级之前及时解决问题。
当敏捷开发遇上固定交付……

四、使用敏捷进行固定交付的缺点

1.管理范围

敏捷开发能够轻松适应需求的变化,但前提是必须与客户仔细协商。

假设固定范围与交付时间表和预算完全匹配,那范围的增加会破坏平衡。但如果客户了解范围是固定的,每次对范围的任何更改是用另一个范围所替换而不是增加,则这仍然有效。

举个例子,一个表示范围的存储桶。一个存储桶的容量是需要交付的确切范围量,如果进行添加就意味着必须删除相同大小的其他内容。

2.人员成本

运用敏捷开发方式需要拥有一个完全敬业的团队,且在项目的整个生命周期中保持团结。

但如果人员成本的估算基于为特定任务在项目内外轮换的专家,就会发现的人员成本估算低于专门团队的人力成本。

3.合同和客户期望

当客户和开发团队之间关系牢固,每个人都在寻求双赢的解决方案时,敏捷效果最好。

然而,在典型的固定交付项目中,合同往往是输赢的。如果交付团队能够比计划更快地交付,即使他们没有为客户提供真正需要的东西,他们仍会获得更多利润。

因此,在客户获得实际需要的一切和交付团队估计之间通常存在紧张关系。
当敏捷开发遇上固定交付……

五、写在最后

在固定交付的项目中使用敏捷开发方式是一把双刃剑。

虽然敏捷开发方式具有适应性、早期价值交付等好处,但范围、预算管理以及与合同相关的问题等挑战可能成为项目进行过程中的重大问题。但我们不得不承认,敏捷开发方式更加人性化。

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
开发者测试你必须知道的7件事
好买网(www.goodmai.com)IT技术交易平台摘要:开发者测试是现代软件工程中非常重要的一环,敏捷开发、主干开发这些先进的项目管理方法和流程都基于完善的开发者测试。一、“开发者测试”就是“开发者来测试”开发者测试是现代软件工程中非常重要的一环,敏捷开发、主干开发这些先进的项目管理方法和流程都基于完善的开发者测试。当每个月甚至每周都要交付一个版本
Wesley13 Wesley13
3年前
java中比较两个时间的差值
项目背景1.某篇文稿的发布时间是publishDate,例如:2020072118:00:41。2.现要求判断该篇文稿的发布时间是否在近30天之内。publicstaticlongdayDiff(DatecurrentDate,DatepublishDate){LongcurrentTimecurrentDat
Wesley13 Wesley13
3年前
vs2010
asp.netwebformvs2008发布网站的时候dll文件名是动态的不固定,需要使用插件生成固定名称dllvs2008发布web项目的时候就不需要插件了,直接发布就是固定名称的dllvs2010之后网站与web项目都可以生成固定名称的dllasp.netmvcvs2013vs20191.发布mvc项目的时候可以生成之后直接复制
Stella981 Stella981
3年前
Scrum 实操流程
Scrum是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。敏捷的原则和方法必须在每天的实践中落地,对人和管理要求高。所以有scrummaster为了适应变化,敏捷的迭代周期短特征1.迭代开发:这意味着你应该重复开发过程。2.增量交付:意味着你应该一步一步地创建产品的“可用”子集
Wesley13 Wesley13
3年前
JIRA中的史诗、故事、版本与冲刺
史诗,故事,版本与冲刺这四辆马车能够优雅地管理敏捷过程的范围和时间表。并构建您的工作。一旦软件团队熟悉瀑布或其他传统项目管理风格,他们常常感到“如何构建我的工作”的痛苦。幸运的是,敏捷开发使用四个明确的交付工具,将结构带入任何敏捷项目:史诗,用户故事,版本和冲刺:·Epic史诗大量的工作,包含故事·Story故事最小
Stella981 Stella981
3年前
Scrum vs. Kanban
相似性都是既精益又敏捷都是拉动式计划都限制了WIP都以透明的方式驱动过程改进都关注于尽早交付、频繁交付可发布的软件根基都是自组织型团队都需要把工作拆分发布计划都是根据经验数据差异SrcumKanban规定了古代时长的迭代固定时长的迭代是可选的
Easter79 Easter79
3年前
SpringBoot开发及学习
SpringBoot是Spring新出的一个框架,他的目的一如始初简化开发。我们开发项目的时候,为了让项目运行起来,我们要考虑很多架构、配置、依赖等问题,这些问题其实每个项目都要考虑,而且每个项目的开发都有固定的模版,这些重复的工作是每个项目的样板代码,SpringBoot做的就是帮我们完成这些重复行的工作,让我们只关注业务逻辑。主要帮我们完成了以下
Stella981 Stella981
3年前
SpringBoot开发及学习
SpringBoot是Spring新出的一个框架,他的目的一如始初简化开发。我们开发项目的时候,为了让项目运行起来,我们要考虑很多架构、配置、依赖等问题,这些问题其实每个项目都要考虑,而且每个项目的开发都有固定的模版,这些重复的工作是每个项目的样板代码,SpringBoot做的就是帮我们完成这些重复行的工作,让我们只关注业务逻辑。主要帮我们完成了以下
SAP 发布2022年第三季度财报
云业务增长持续加速,中国市场表现更加突出。云收入分别增长了38%和25%(固定汇率)目前,要交付的云业务以38%和26%的速度增长(固定汇率)SAP(https://www.sap.cn/index.html)S/4HANA当前要交付
智码映溟使
智码映溟使
Lv1
再忙碌也要捕捉日常快乐。
文章
4
粉丝
0
获赞
0