从code&fix 到敏捷开发,软件开发模式的变迁

引言

从code&fix 到敏捷开发,软件开发模式的变迁

解决方案

想象一个不会画画的小孩,拿着画笔笨拙地在纸上涂鸦,最终画出了梦娜丽莎的画像,但确实那么难看。
再想象这次是达芬奇在作画,他凭借多少年的艺术修养和技术积累,在画纸上行云流水,潇洒自如。画出的画像惟妙惟肖,而梦娜丽莎的微笑,更是让无数人痴迷。
所以,那个时代,用户的需求是明确的,但软件质量的高下,全赖个人的技术积累和艺术修养。

总结

总结一下,code&fix 时代,软件开发的特点是
● 需求简单,基本明确
● 个人英雄主义,拼个人才华,很少协作
● 工具简陋,对交付物的影响也不大
● 不需要流程,随写随改
● 没有标准,企业内部如果需要多个系统,则是各自为政,完全竖井架构。

2,传统的软件开发模式时代

场景略有改变

蒙娜丽莎希望乙方在一周的时间内给自己制作一幅画像。

解决方案

在这个时代,照相技术正在传统模拟相机的时代。

从code&fix 到敏捷开发,软件开发模式的变迁
乙方决定采用敏捷开发的模式来开展这项工作。首先和梦娜丽莎签了一个长期的合同,然后用scrum的方式开展工作,每周一个sprint 迭代,scrum master 在第一次的需求确认会上,收集了蒙娜丽莎的需求并通过其他途径收集了蒙娜丽莎的关键影迷的需求,和蒙娜丽莎一起确定了最小可用产品(MVP))的各个需求,放入第一个sprint log池中,编辑人员根据需求分解出来的看板(kanban)上的task开展外饰组件的编辑工作和给蒙娜丽莎的数字化照片进行编辑的工作,编辑完成后提交到画像的产品分支(代码分支管理工具),触发其他编辑人员和智能评审工具(自动化测试工具)对该组件进行评审,被修改的组件一旦评审通过,则自动合成并自动发布(CICD)到博客待发布区供蒙娜丽莎和她的关键影迷们进行检查,通过后自动发布到正式的博客区。同时蒙娜丽莎、关键影迷和博客的访问者的需求被不断堆积到product backlog中,供下一轮冲刺中选用。在每个sprint冲刺中每天开15分钟站会来沟通编辑小组的工作情况,周末开展评审会和回顾会,沟通每次交付的技术情况并及时调整敏捷工作方法。此项工作一直延续到梦娜丽莎不再制作画像为止。

总结

通过这个例子,结合软件开发实践我们可以发现敏捷开发时代,软件开发的特点是:
● 需求频繁变更、不断反复,工作量难以估算,工期无法确认,开发合同必须是长期合同
● 需求不再是客户一方的,还有大量的用户(这里客户是梦娜丽莎,用户是她的影迷和博客访问者,产品必须频繁发布以满足客户和用户的需求。
● 业务接口标准化,标准的业务中台已经建立
● 标准的可伸缩的后台架构是支持快速交付和业务流量的核心能力(比如容器云)
● 有成熟的持续集成持续部署和发布的流水线,和自动化测试工具,确保频繁的集成和发布
● 分工明确,依赖于业务中台和技术中台以及CICD工具,团队有极大的自治能力。可采用Scrum等方法进行流程管理
● 系统间接口调用已经升级为服务调用,且不仅限于企业内部,已经开放到整个市场,服务治理成了软件开发的核心能力。

四,总结

软件开发模式的进化,市场需求是幕后推手,同时也得益于云原生的生态环境的进化(包括微服务化、容器化、DevOps等)。对于企业来说,同样要注重整个生态环境的建设,切不可头痛医头脚痛医脚,以至于顾此失彼。
同时,软件开发模式的进化,实际上就是成熟度的提高。如下图所示

从code&fix 到敏捷开发,软件开发模式的变迁
软件开发的原始时代 code&fix时代,就是ML1初始级的时代,而随之传统开发模式时代的到来,我们已经在需求确定情况下,把软件开发做到ML5这样的极致。到了VUCA时代,也就是呼唤敏捷的时代,我们依旧需要站在传统开发模式时代所积累的技术和经验的基础上,努力向ML5的级别迈进。而这个成熟度提高的过程,实际上就是把原来的艺术的东西逐步用技术和平台的方式固化下来,让更多的资源投入到更高的艺术追求上去。换句话说,就是让那个不会画画的小孩更容易地成为达芬奇,而让达芬奇成为更高的高手,创造更大的价值!

来源:alpha xu

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月7日
下一篇 2019年2月7日

相关推荐