敏捷开发失败的五个原因以及解决方案

news2024/11/20 20:32:49

作者:David Bevans , Mendix公司高级内容营销经理

敏捷开发是一个可以改变软件交付方式的框架且效果十分惊人,但鉴于需要反复不断规划、测试、集成以及其他进行中的开发方式,敏捷开发在某些情况下行不通。下文将对常见的敏捷开发失灵以及相应的解决方案展开讲解。

敏捷开发是一种迭代型软件交付方式

敏捷开发的目标是根据反馈来逐步构建和交付软件,而不是一次性交付整个解决方案。标准软件开发生命周期(SDLC)和瀑布式开发等传统开发方法已经无法快速、高效地交付解决方案。耗费数年完成的瀑布式开发项目在结束时所交付的解决方案,也未必能完全满足当下的用户需求。每个IT部门和软件开发公司都会遇到这个问题,这就是为什么在需要灵活性的项目中,敏捷软件开发正在成为新趋势。

敏捷开发包含四种主要角色:产品负责人、敏捷教练(ScrumMaster)、开发人员和终端用户或业务团队。

  • 产品负责人的作用是推动解决方案愿景的实现,他们需要知道建立哪些核心流程。
  • 敏捷教练的作用是排除开发团队所遇到的障碍,并通过各种可能的方式提供协助。
  • 开发团队包括软件工程师、质保团队和任何其他参与解决方案构建的人员。
  • 终端用户是使用最终敏捷应用的人。

敏捷开发失败的五个原因

根据我与医疗保健、金融、教育、政府等垂直行业公司的合作经验,每家公司都对敏捷开发有着不同的理解。虽然每家公司都会根据自己特有的用户群体来自定义流程,但他们总会犯一些常见的错误。以下是进行敏捷开发时的五大常见错误以及我的避免方法建议。

  • 缺乏信任

缺乏信任会扼杀团队项目,对工作环境会产生巨大的不良影响。由于涉及到大量机动的任务和人员,再加上每1-2周就要交付新功能的压力,在敏捷开发流程中必然会出现沟通不畅的情况。

因此,保持开发过程中的透明性十分重要。也就是说,所承诺的最后期限和交付内容必须合理,让每个人都感到他们在为一个共同的目标而努力。

  • 沟通不畅和任务分配不合理

敏捷教练需要为团队服务,包括排除开发团队可能遇到的障碍、为产品负责人和其他相关方提供建议与辅导,以及防止开发团队受到其他因素的干扰。

在一些项目中,我见过试图支配团队工作的敏捷教练,他们事无巨细地管理所有活动。这种领导方式不仅损害了团队的士气、表现出不信任,而且还妨碍团队实现目标。我也见过相反的情况,也就是敏捷教练对工作不闻不问,可能只参加会议,对团队的工作毫无头绪,甚至一无所知。

敏捷教练应该平易近人、能够快速地意识到问题并及时解决。他们应该了解正在构建的技术并尽自己所能提供帮助。下图展示了敏捷教练应该如何工作:

图1 敏捷教练对于管理互动和团队来说至关重要

  • 范围蔓延和领导不力

产品负责人需要具备相关领域的专业知识、了解技术和业务需求并制定产品愿景,其作用是对用户反馈进行把关、提供明确的指导并管理期望。该角色需要与终端用户和开发团队互动交流,指导大家开发出所需要的业务解决方案。

图2  理想的产品负责人 

在我最初接触的一个项目中,客户需要在2-3周内投产,并在用户验收阶段帮助修复bug。我们迅速解决了出现的bug,但发现很多用户的实际反馈是对功能的请求。用户在投产最后期限前的2-3周提交功能要求并希望都能够得到满足。产品负责人没能管理终端用户的期望,也没有明确功能与bug的区别,只是将信息传递给开发团队,并指望他们搞定一切,该项目的最后期限自然越拖越长。

产品负责人必须理解业务目标并推动项目愿景的实现,同时还需要保持坚定并明确管理用户的期望。否则就连项目的第一阶段都有可能永远无法完成,这就是范围蔓延所带来的影响。

  • 项目过度复杂

一个项目越复杂,花费的时间就越长,出现的问题也就越多。在处理复杂的需求时,开发团队和敏捷教练应尽可能一起规划和设计解决方案,将复杂的需求分解成更小的需求并逐渐进行迭代。

如果团队遇到任何障碍,或者敏捷教练注意到任何可能在将来成为障碍的问题,应该提前提出并制定解决方案。我们必须清楚在迭代过程中,对应用作出的每一个改变都是有成本的。

  • 使用错误的工具

有些工具专为敏捷交付而生,比如西门子低代码!有了西门子低代码,就相当于有了所有用于敏捷迭代规划和项目交付的工具。团队开发服务器能够处理所有用户故事和迭代。下图就是一个用户故事和迭代开发的示例。

图3 当前迭代用户故事截图

图4 用户故事的流程和燃尽图 

使用西门子低代码更好地发挥敏捷开发的作用

西门子低代码可以解决所有上述常见问题,是一个可以不间断提升敏捷开发流程、加强敏捷开发框架的工具。产品负责人、敏捷教练、开发人员和终端用户或业务团队都可以从低代码中受益。

您只需通过团队开发服务器的功能即可跟踪项目进展,无需再使用电子表格或白板。西门子低代码不仅使开发流程变得更简单、更快速,而且还提供实现有效、敏捷项目管理的正确工具。

敏捷开发是整个团队的事情

总之,如果团队存在信任、有“理想的”敏捷教练和产品负责人愿意共同努力解决问题,而且能够组合式使用正确的工具和方法来简化流程,那么敏捷开发就会非常有效。每家公司的情况不同,都有自己的文化和IT架构。公司内部和团队成员之间的信任以及必要时的培训与支持,对于项目的成功至关重要。

关于Mendix公司 
在一个数字化先行的世界中,客户希望自己的每一项需求都得到满足,员工希望使用更好的工具来完成工作,而企业意识到自己只有通过全面数字化转型才能生存并取得成功。Mendix公司,a Siemens business正在迅速成为企业数字化转型的推动者。其业内领先的低代码平台和全方位的生态系统整合最先进的技术,帮助企业创造出提高互动性、简化操作和克服IT瓶颈的解决方案。Mendix公司以抽象化、自动化、云和协作为四大支柱,大幅提升开发者的生产力,并且依靠自己的工程协作能力和直观的可视化界面,帮助大量不熟悉技术的“公民”开发者在他们所擅长的领域创建应用程序。Mendix公司是权威行业分析师眼中的领导者和远见者,也是一个云原生、开放、可扩展、敏捷和饱经考验的平台。从人工智能和增强现实,到智能自动化和原生移动,Mendix公司已成为数字化先行企业的骨干。Mendix公司企业低代码平台已被全球4000多家领先的公司采用。

感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素,CY3/CY5/CY7-Streptavidin/Insulin

产品名称:菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素 英文名称:CY3/CY5/CY7-Streptavidin/Insulin 链霉亲和素(streptavidin下称SA)是与亲和素(avidin下称AV)有相似生物学特性的一种蛋白质,是streptomyces avidinii菌的分泌物,其分…

AotuDL中Linux环境下运行pix2pix-tensorflow的环境配置(tensorflow==1.8.0 python==3.6)

目录写在前面1. 租用实例时基础镜像的选择2. 配置环境3. 实验记录写在前面 🍀windows环境下运行:【用于图像修复、数据增强等】结合官方代码教程,在Windows 10下运行pix2pix-tensorflow(tensorflow1.4.0 python3.6) A…

【网站架构】服务器弹性伸缩不能全自动,实际如何追加服务器

大家好,欢迎来到停止重构的频道。 本期,我们讨论大型网站的伸缩性。 伸缩性指的是通过自动增减服务器数量以适应用户量或压力。 这些年,微服务、ServerLess、K8S等技术,都让人有一种服务器自动伸缩很容易实现的错觉。 其实&…

最短路径问题

目录 一、前言 二、算法讲解 1、Dijkstra--朴素算法:O(n * n) 2、Dijkstra--堆优化算法:O(mlogm) 3、Bellman_ford贝尔曼算法: O(n * m) 4、Spfa算法:O(n * m) 5、Spfa处理负环:O(n * m) 6、Floyd算法&#xf…

iOS 列表页面实时刷新解决方案

iOS 列表页面实时刷新解决方案 一、背景介绍 1.1 问题的出现 客户要求APP客户端每次切换Tab,都需要从服务器去获取最新的数据,所以每次切换Tab,客户端都会去主动刷新接口,以获取最新的数据。但是实际发现,每次切换T…

基于FPGA MIPS CPU设计学习(1)

关于什么是MIPS以及MIPS架构可参考文章: MIPS架构与指令简介 1 MIPS寄存器学习 MIPS寄存器详细解释如下: • 0 : 即 0: 即 0:

【Shell 脚本速成】04、Shell 脚本格式化输出与用户交互

目录 一、shell格式化输出 1、echo命令 案例演示: 2、输出颜色字体 3、综合案例 二、 用户交互 1、read命令 2、交互输入案例 计算机程序其实就是三步:输入、运算、输出,这个理论也适应于shell编程。 那么计算机是如何将信息按照比较舒服的格式输…

Unity - BRP管线关闭 - UpdateDepthTexture的绘制

最近一直忙着跟项目打杂。。。 比较少时间进修,充电。。。难受香菇 但是 unity 的踩坑经验倒是增加了不少(还有很多坑的经验我都懒得写了,但是这些坑浪费查资料时间,还不如自己记下来,便于日后如果还有 BRP 项目的处理…

Neptune CHT-C助力零束打造智舱界王者

9月27日,上汽子品牌飞凡汽车的首款旗舰车型——飞凡R7刚一上市就牢牢吸引了众多视线,在了解了其配置后,用户纷纷称其为“智驾界卷王”。 飞凡R7搭载的RISING MAX 31巨幕,由中国品牌车型最大尺寸的43英寸宽幅真彩三联屏和全球首发量…

CSS的元素显示模式

元素显示模式是什么&#xff1f;&#xff1a; 由于网页中的标签非常多&#xff0c;在不同地方会用到不同类型的标签&#xff0c;了解他们的特点可以更好的布局我们的网页。 元素显示模式就是元素(标签)以什么方式进行显示&#xff0c;比如<div>独占一行&#xff0c;比如…

线索二叉树

目录 一、线索二叉树的类型定义 二、各种线索化的二叉树 三、中序线索二叉树的算法 完整代码&#xff1a; 一、线索二叉树的类型定义 typedef struct BTNode {ElemType data;//数据域struct BTNode* lchild;//左孩子或线索指针struct BTNode* rchild;//右孩子或线索指针int lt…

锐捷MPLS隧道单域实验配置

目录 配置AS100内的IGP路由协议 配置AS内的LDP 配置PE-PE的MP-BGP协议 在PE侧配置PE-CE的路由协议 在CE侧配置PE-CE的路由协议 将CE的路由重发布进MP-BGP中 将MP-BGP的路由重发布进CE中 MPLS隧道——单域基础理论讲解_静下心来敲木鱼的博客-CSDN博客_mpls隧道https://bl…

Python安装

一、官网下载 二、安装 找到下载的安装包&#xff0c;直接双击安装 三、设置环境变量 1、mac自带的python版本 2、修改为新下载的python3.11版本 1&#xff09;修改.bash_profile vi ~/.bash_profile 修改完成后&#xff0c;生效该文件&#xff1a;source ~/.bash_profile…

如何写出公众号爆文?分享你一份爆文写作秘籍

新媒体时代&#xff0c;想要产出一篇公众号爆文真的是难于上青天&#xff01;现在公众号内容同质化严重&#xff0c;如果你没有一些新颖的观点和真本事&#xff0c;是无法从成千上万的公众号中脱颖而出的&#xff01; 如何写出公众号爆文&#xff1f;为什么你看了那么多写作干货…

java--07 面向对象

altenter 文件名和public名保持一致 两个变量指向同一个对象的内存图&#xff1a;如果被一个对象更改 &#xff0c;另外一个对象跟着更改 垃圾回收机制&#xff1a; altenter &#xff1a;添加方法 ctraltt:添加循环 构造器 this关键字 ​​​​​​​ 封装&#x…

周志华机器学习(6):支持向量机

周志华机器学习&#xff08;6&#xff09;&#xff1a;支持向量机6 支持向量机6.1 间隔与支持向量6.2 对偶问题&#xff08;dual problem&#xff09;6.3 核函数6.4 软间隔与正则化基本是大段摘录加上一些自己的补充&#xff0c;去除了冗余的话。6 支持向量机 6.1 间隔与支持向…

实体店应该围绕什么核心来打造自己体系多模式多平台的生态

大家好&#xff0c;我是阿璋&#xff0c;阿璋时不时会发布一些创新的电商资讯&#xff0c;经过电商与疫情的反复摧残&#xff0c;实体商家的收益大不如从前&#xff0c;营业额一跌再跌&#xff0c;迎来实体寒潮&#xff0c;本期给大家分享一个实体店结合共享消费积分联盟广告生…

封神之作,超火Java面试突击手册,进大厂真的就这么简单?

2022年的互联网行业竞争越来越严峻&#xff0c;面试也是越来越难&#xff0c;一直以来我都想整理一套完美的面试宝典&#xff0c;奈何难抽出时间&#xff0c;这套完整的java后端学习路线以及1000道的Java面试手册我整理了整整1个月&#xff0c;上传到Git上目前star数达到了30K …

MCE | 阿尔兹海默症发病机制

阿尔兹海默症 (Alzheimers Disease, AD)&#xff0c;俗语常说的“老年痴呆症”&#xff0c;在奥斯卡提名短片《勿忘我》中以动画形式展现出了阿尔兹海默症患者的世界&#xff0c;动画中的老人&#xff0c;逐渐失去自己的记忆&#xff0c;甚至忘记最爱的人&#xff0c;他的脑海中…

学习软件测试需要注意的几点

⒈ 测试主页技能掌握 关于软件测试&#xff0c;所需要的专业技能&#xff1a; l 基础测试技术&#xff1a;黑盒测试、白盒测试、测试用例设计等; l 软件测试方法&#xff1a;单元测试、功能测试、集成测试、系统测试、性能测试; l 软件测试知识&#xff1a;基础的测试流程管理、…