如何让开发变得敏捷起来?

比特弦歌者
• 阅读 1005

不久前和同事交流的时候看到这样一段话,“在经历敏捷软件开发方法在中国传播和发展的过程中,我们深切地感到,缺少对软件开发日常基础时间、尤其是与编程紧密相关的核心技术实践的指导,敏捷注定流于形式。缺少完备的软件设计、开发和质量保障相关实践,盲目强调快速迭代、接纳需求变化,项目只会陷入质量迅速腐化、Bug百出、交付失控的悲惨境地。对于这种只得其形、尽失其神、缺乏核心能力、空谈快速响应变化的敏捷,业内将其调侃为中国田园式敏捷”。为什么会出现这样的问题呢?因为大家在学习敏捷开发的时候只是做到了形式上的模仿而忽略了对于本质的理解。那么,今天我们就说说敏捷开发方法的核心目标是什么,掌握了其神,我们在项目管理中就可以聚焦于敏捷的实质,达到事半功倍的效果。

如何让开发变得敏捷起来?

目标1.更快更早的向客户交付价值

我们先来看看传统的瀑布开发模式有什么问题。传统的瀑布开发模式软件会经历需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试等阶段才能发布,这一过程少则几个月半年,大型项目周期长达1年甚至更长,软件的价值在全部做好之后一次性交付。现在VUCA时代(商业和外部环境充满了易变性,不确定性,复杂性,模糊性)等到产品或者项目正式发布的时候,商业环境或者用户的使用场景已经发生了很大的变化,产品或者项目的功能已经不能满足当时的需求,软件交付的价值大打折扣。

不同于传统的瀑布开发模式,敏捷研发模式以迭代的方式持续进行,每个迭代持续收集用户真实的需求以及上个迭代的反馈信息,持续的向客户或者市场交付可以完整运行的产品,持续的向客户交付价值。

价值又来自于什么? 应该来自真实的业务痛点以及客户实际的需求或者问题。不管是敏捷还是瀑布或者其它的软件开发方法,其产生的价值取决于要解决的问题的价值,微信之所以成为伟大的产品,因为解决了人与人沟通,人与人连接,分享信息的问题,百度和今日头条解决了信息爆炸时代的信息检索,获取问题,一切脱离用户业务价值的软件研发活动,都是耍流氓。

目标2.更灵活的响应客户和市场变化

在瀑布开发模式的需求分析阶段,产品设计人员调研需求,设计产品功能这些设计决策活动都是基于假设或者信息并不是很完备的情况下做出的,这就意味着距离后续的技术实现、真实的用户需求或者市场前景会有一定的差距,这种差距会导致后续技术实现、投放市场时会有很多非预期的问题出现。在敏捷开发中,决策是以持续增量的方式做出的。在每个迭代发布后都会收集团队内部、客户、市场或者竞争对手等反馈信息,应用这些信息做出更正确的决策,在下一个迭代中实现,从而可以更灵活的响应变化。

综上,敏捷的核心在于提高一个组织更早交付价值,更灵活响应变化的能力,敏捷的一切实践活动都应该围绕着这两个目标来执行。我们再看一个比较形象的例子,有不少朋友都喜欢看美剧,比如很多年前流行的《越狱》,18年的《权利的游戏》,大家会发现美剧在制作发行的时候有一个特点,是一集一集的构思剧本,拍摄,发行这样的制作流程,之后收集观众的反馈意见,根据大家的投票来决定后续的剧情发展,这其实就是和敏捷的思想是一样的,尽早尽快交付价值,收回成本,根据反馈信息优化后续产品,这样才能制作出受大家欢迎的产品。

那对于一个产品或者项目而言,是否应该采用敏捷研发的方式呢?笔者认为,要根据具体的商业和竞争环境,项目特点来分析,不能一概而论。比如互联网产品,竞争非常激烈,晚几个月出来就没机会了,同时技术发展,用户需求变化很快,就非常适合敏捷。对于一些传统行业,软件相对比较稳定,比较大型的项目(需要顶层设计,自顶而下分解后再集成),产品的一体化程度比较高比如汽车这样的产品就不太适合持续交付价值,就没必要采用敏捷研发的模式。决策者一定要回归到软件的价值和本质上来思考,不能盲目跟风。

下面推荐一款适合各大团队使用的敏捷开发工具CORNERSTONE,它是一款基于智能化框架,能为企业打造专属管理体系的项目管理与协作平台,支持包含研发、缺陷、运营、销售等多场景项目管理。并且提供文件共享、wiki知识库、多功能报表、仪表视图、汇报等多种协同辅助功能,集成了DevOps、CMDB等多种配套工具。能够帮助企业科学量化团队表现,实时把控项目进展,全方位提升管理效能。

敏捷不是银弹,如果一个组织使用瀑布的方式做不好项目,换成敏捷或者其它方法一定也不行,相反,如果瀑布方式做的很好,换成敏捷只是水道渠成的事情,因为软件研发本质的方法是一样的,道理是相通的。这点拿金庸小说里武功高手打个比方,一个人内功足够强,他再学什么招式,都是一个相对简单的过程,欧阳锋逆转经脉,一样可以练成九阴真经,内功不够,使用什么招式都是花架子,行走江湖被人吊打。最后祝各位读者注重敏捷的神而忘记形,勤加练习内功,早日练成自己的独门绝技。

如何让开发变得敏捷起来?

点赞
收藏
评论区
推荐文章
【敏捷研发系列】前端DevOps流水线实践
软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运维侧,从而将产品、设计、开发、测试、运维团队更紧密的结合在一起。而从交付给客户产品视角看,前端研发通常又是在整个产品设计开发链条的最终节点,意味着前端团队受到上游变更的影响是最大的,并且从经营理念效率出发,提升前端交付效率是至关重要的。
待兔 待兔
4年前
敏捷软件开发背景下的软件设计
在目前大部分的软件开发组织中,敏捷开发已经成为毋庸置疑的标配。随着数位技术大神和布道师的宣扬和数量庞大的敏捷教练的身体力行式推广,商业环境和客户需求变更速度的日益加快,采用端到端交付周期更短的敏捷开发过程基本已经成为项目成功的必要条件。软件设计的刚需被敏捷了吗?工作流程的变更以及开发节奏的加快并不能绕开一个很核心的问题
Wesley13 Wesley13
3年前
90%的开发都没搞懂的CI和CD!
据IDC统计,2017年,DevOps的全球软件市场已达到约39亿美元的水平,预计到2022年市场将达到80亿美元左右!在敏捷软件开发环境中,工作模型和操作需要对公司不断变化的需求具有超级灵活的能力。DevOps——一种工具和实践的结合,有助于软件开发与IT运维并携手共进。这种跨功能的工作模式旨在最小化系统开发生命周期的持续时间,并提供持续的部署
Stella981 Stella981
3年前
Jenkins自动化部署
感谢之前带领过我的leader,让我能够知道什么是好的开发方法。在很早之前就接触过敏捷开发。什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧。而敏捷开发中有许多的实践,可能并不是每一种实践都适合于你的团队,但是总有一种能帮助你们的团队快速地将软件可靠地,高可用地发布出来。如果在读这篇文章之前,还没有接触过敏捷开发,那么
Stella981 Stella981
3年前
Scrum 实操流程
Scrum是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。敏捷的原则和方法必须在每天的实践中落地,对人和管理要求高。所以有scrummaster为了适应变化,敏捷的迭代周期短特征1.迭代开发:这意味着你应该重复开发过程。2.增量交付:意味着你应该一步一步地创建产品的“可用”子集
Stella981 Stella981
3年前
Scrum敏捷开发工具推荐!
软件开发的项目经理一枚!大家都知道,一个好的敏捷工具对开发项目可以起到推波助澜、事半功倍的做用!我们做敏捷开发,如何敏捷?当然敏捷工具的选用也是非常关键的因素,对我们也起着关键的作用!我来介绍一下我所找到的,好用的敏捷工具:国内的「Leangoo(中文名:领歌)」Leangoo是一款基于看板的项目协作工具,Leangoo(https://
敏捷开发 敏捷开发
1年前
敏捷开发模式下如何快速提升产品质量
在团队选择敏捷开发模式下,敏捷测试部分也同以往的软件测试流程有所不同。如何平衡敏捷的快速迭代开发和解决Bug的矛盾?
敏捷开发 敏捷开发
1年前
敏捷开发:想要快速交付就必须舍弃产品质量?
在创新驱动的市场环境中,敏捷开发已成为许多组织的首选软件开发方法。其关键优势在于能够快速适应市场变化,并频繁地交付靠谱的产品。然而,快速交付的同时,团队要如何确保产品质量,确保交付的产品都是高质量的、可靠的且附加价值的,一直以来都是大家挑战以及争论的焦点。
敏捷开发 敏捷开发
1年前
实践了上万次,原来这些才是敏捷测试需要遵循的原则
与传统的阶段性测试不同的是,敏捷测试能够将测试集成到整个软件开发过程中,尽早、及时地发现缺陷,帮助交付有价值的高质量产品。传统测试与敏捷测试的比较大的区别在于:在瀑布方法中,测试只能在开发结束后进行;在敏捷方法中,测试是贯穿在整个开发过程中的,同时可以在需
比特弦歌者
比特弦歌者
Lv1
习惯了孤独之后,一个人就是全世界。
文章
4
粉丝
0
获赞
0