前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >敏捷开发的 4 个误区,你了解一下

敏捷开发的 4 个误区,你了解一下

作者头像
DevOps时代
发布于 2019-10-29 12:15:24
发布于 2019-10-29 12:15:24
7540
举报

不少公司都在考虑采用敏捷开发,或者在项目开发过程中融入敏捷的思想,在这里,我列出几个常见的误区,希望能对大家有所帮助。

误区1:敏捷开发 == 极限编程/Scrum/…

敏捷开发是一种方法论,只是一些基本原则的集合,并非具体流程。

极限编程、Scrum等流程是具体的实施方法,它们都声称符合敏捷开发的思想,但执行起来是否真的“敏捷”,还得看参与者究竟思想上是否真的接受敏捷开发的原理。

如果把结对编程、daily scrum当做是敏捷开发的表现,那更是本末倒置,可悲的是,不少人还真是这么认为的。

误区2:敏捷开发 == 简化流程

敏捷开发不一定能简化工作流程,而且简化流程也并非提出敏捷开发的初衷。敏捷开发最重视的是拥抱变化,至于怎么拥抱,只能随机应变。实际应用中,既有流程相当简单的经典Scrum过程,也有极为冗繁、不亚于CMMI的RUP,根据应用场景不一样,项目组应该使用最适合的流程。

选择敏捷开发流程时也应带着敏捷开发的思维去选择,即快速响应项目实际的流程需求、拥抱流程应用过程中遇到的各种变化。没有银弹,也没有长期适合的项目流程,生搬硬套某个看似成熟的敏捷开发流程是大忌。

误区3:敏捷开发 == 快速开始编码

敏捷开发强调迭代,鼓励开发人员用代码说话,不过绝对不鼓励没想明白就写代码。

符合敏捷开发思想的流程往往主张在一个稳定的基础之上迭代完成各种功能。如果基础都不牢固,迭代就无法进行,整个开发过程就退化成不断重写的过程,浪费开发时间。敏捷开发实际非常重视“设计”,并且对开发人员的设计水平提出了极高的要求,既要“持续重构”又不能“过度设计”,稍有不慎就会陷入反复推翻已有代码的窘境。对于内功不够的开发人员最好还是想好再写代码,设计的时候慢一点没关系,尽量少的做无用功才是最重要。

误区4:传统开发能随时转变成敏捷开发

敏捷开发过于诱人,很容易让深受传统软件开发思想折磨的开发人员感觉敏捷开发就是灵丹妙药。

要想转变,首先需要从思想上正确认识敏捷开发的含义,了解它能解决什么问题、会带来什么新的问题、对现有软件/硬件资源有什么要求等。

例如在原先采用CMM的团队中,想利用敏捷开发简化冗余的文档、降低沟通成本,那么敏捷开发确实能在一定程度上缓解这些问题,但也会造成内部文档缺失、沟通不够深入的问题,在应用敏捷开发之前需要先确定适合团队的新的文档流程(代码注释能够自动/半自动的变成团队需要的文档么?),并且确定沟通的一些原则(比如,对于一些重要的沟通,是否还是用邮件来进行,不要过于“敏捷”?)。

有趣的是,有可能在回答这几个问题之后会发现,敏捷开发并不能解决项目中遇到的问题,反倒是其他方面出了问题。

举例来说。如果之前开发方法是简单的目标管理,遇到的问题是项目进度不可控、开发+测试的周期较长、不能及时响应需求变化,那么敏捷开发能解决的是快速响应需求变化,对项目进度和开发测试周期帮助不大(没有一种流程能够承诺改善项目的开发效率!),但前提是开发人员必须懂得怎样正确的去迭代开发,并且必须认识到一次迭代的结束是以完成测试为标准的。

在这个例子中可以看到,敏捷开发能带来的好处非常有局限性,如果开发人员达不到一定的层次是很难受益的。与其号召使用敏捷开发,不如想想如何增加执行力,以及找到周期偏长的根本原因(是因为设计不充分而返工?还是因为没有可以快速回归的测试用例?等等)。

来源:Simon的博客,链接:http://blog.sina.com.cn/s/blog_6971d9c30100o1f5.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps时代 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
了解敏捷开发
理论上来说,重构思想和开闭原则是相违背的,但如果一开始没有超强的设计分析和预测变化的能力,用来设计的时间不如花在重构上。【设计终究只能浮于纸上,而实践才能更加真实的发现问题】
Noneplus
2019/09/24
1.4K0
软件工程模型
你在工作中, 软件的开发流程是怎样的? 你是否想过, 除了你当前使用的流程, 还存在其他怎样的流程? 现在的流程有哪些问题, 又能够如何解决? 别说, 前辈们已经给出了一些项目流程的模型, 既软件工程
烟草的香味
2021/05/17
4490
软件工程模型
为什么要学习敏捷?敏捷有哪些好处以及敏捷工具
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。 那企业为什么要进行变革,实施敏捷开发呢?
一只爱生气
2023/09/21
3070
什么是敏捷开发流程
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
全栈程序员站长
2022/07/02
6350
什么是敏捷开发流程
敏捷开发实践(一)--谈谈我对敏捷开发的理解
随着敏捷开发越来越流行,人人都在谈敏捷,人人也都在学习scrum等敏捷开发方法。。。当然,自己也是敏捷开发的实施者和受益者。
程序猿小亮
2021/01/29
1.5K0
敏捷开发七个步骤和Scrum敏捷管理工具
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
一只爱生气
2023/09/23
3760
漫画:三分钟了解敏捷开发
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
小灰
2022/07/05
2830
漫画:三分钟了解敏捷开发
敏捷软件开发简述
前言:由于我读了邹欣老师的《构建之法:现代软件工程(第二版)》,因此对敏捷软件开发有了比较大的兴趣。于是我在网上找了一些论文,比如Requirements Engineering and Agile Software Development、A decade of agile methodologies: Towards explaining agile software development。在读了这些论文之后,对敏捷软件开发有了大致的了解。这篇博文主要是简单介绍敏捷软件开发,重点集中在主要的敏捷开发方法和它的优势,同时也作为一个备忘录,来记录我在这个过程中收获到的重要的知识。
庞小明
2018/09/19
1.5K0
敏捷软件开发简述
什么是敏捷开发,它和传统瀑布开发有何不同?
敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、客户需求和适应变化。敏捷开发并不寻求在开始阶段就定义所有事情,而是寻求灵活地响应变化。敏捷开发被视为一种更加高效、灵活和可持续的软件开发方法,适用于现代快速变化的企业环境。
DevOps持续交付
2023/12/05
9100
什么是敏捷开发,它和传统瀑布开发有何不同?
敏捷软件开发 原则_敏捷方法论
由于书是由英文书籍翻译,读起来会难免拗口,本次分享是由《敏捷软件开发》结合网上相关资料总结而成。
全栈程序员站长
2022/11/17
4890
敏捷软件开发 原则_敏捷方法论
敏捷开发实践总结
敏捷开发它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的,这里我主要讲Scrum。
PhoenixZheng
2018/09/29
2.6K0
敏捷开发实践总结
敏捷开发:拥抱变化,持续交付价值的艺术
在快速变化的技术和市场环境中,软件开发项目面临着前所未有的挑战。传统的瀑布模型,尽管在某些情况下仍然有效,但往往因为其僵化和缺乏灵活性而受到批评。敏捷开发,作为一种新兴的软件开发方法论,应运而生,旨在解决这些问题,提供一种更加灵活、响应快速的开发方式。
正在走向自律
2024/12/18
2560
敏捷开发:拥抱变化,持续交付价值的艺术
互联网企业的敏捷开发之道
个人介绍:1999年大学实习期加入初创期的网易,成为第30号员工,8年间从程序员开始,历任项目经理、产品总监。2007年后创业4年,开发过视频直播社区,及多款页游产品。2011年后就职于腾讯游戏研发部
韩伟
2016/10/10
3.1K1
老曹眼中的敏捷开发
但确实可能存在一种开发方式,可以帮助我们一步步构造出需要的软件和架构——这有可能就是敏捷开发。
半吊子全栈工匠
2018/08/22
5090
老曹眼中的敏捷开发
除了敏捷你还知道啥?说说软件开发的10种主流方法
1、敏捷开发 2001年,17位软件开发人员签署了敏捷宣言(Agile Manifesto),因此载入史册。自那以后,敏捷软件开发迅速流行起来;实际上,在2015年弗雷斯特调研公司的一份报告中,54%的受访企业表示,其内部一半以上的开发团队在使用敏捷方法。敏捷理念基于12个核心原则,这些原则注重简短迭代、持续交付、简洁性、回顾以及最终用户和开发人员之间的协作。 2、Scrum 敏捷软件开发有多种版本,Scrum是最受欢迎的版本之一,接受《2015年敏捷现状》报告调查的受访者中70%表示,他们采用Scru
企鹅号小编
2018/01/29
1.9K0
数字化 IT 从业者知识体系 | 软件开发方法 —— 敏捷篇
瀑布式开发的另一个主要问题是每个阶段都是串行的,当前阶段正在进行软件活动时,向下的阶段全部处于等待和阻塞状态,严重浪费团队资源,降低团队效率。
腾讯云 CODING
2022/02/13
5870
数字化 IT 从业者知识体系 | 软件开发方法 —— 敏捷篇
敏捷开发--scrum
1.  请简述一下什么是敏捷开发(Agile Development),以及什么是持续集成。 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。、 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的
smy
2018/04/03
1.9K0
产品狗,为何总是手撕程序猿?
产品原型制作完成了,下一步的工作就是将原型及相关文档交付给开发团队进入到产品开发环节,这时作为产品经理,可以稍微松一口气了。但是!并不是这以后的事情和自己没关系了! 作为一个产品,你应该是无所不能的产品,从产品、交互设计、开发到运营,所有的知识不能说精通但是都要略懂,这样无论在创业公司需要一人兼多职还是在大公司与其他同事有良好的沟通、写作都是可以胜任的。 说到软件开发流程与管理有很多堪称经典的书讲解得要深刻的多,在这里只是对常用的软件开发流程进行大致的介绍,具体到各个公司不同的开发团队应用的具体方法还会有所
BestSDK
2018/02/28
6170
产品狗,为何总是手撕程序猿?
瀑布开发与敏捷开发的区别
敏捷开发,首先把客户最关注的软件原型先做出来,交付或者上线,在实际场景中去修改弥补需求中的不足,快速修改,再次发布版本。再次上线或者交付。通过一些敏捷实践方式,细化story,可以提供更小的迭代。如此循环,直到用户(客户)满意。适用于需求不明确的项目、创新性的项目或者需要抢占市场的项目。
风君子
2020/05/20
4K0
瀑布开发与敏捷开发的区别
瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别
传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到上线大概这样的流程,希望每一个开发阶段都要做全做好。特别是前期阶段,设计的越完美,上线后的成本损失就越少。
jack.yang
2025/04/05
2280
相关推荐
了解敏捷开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档