遗留系统现代化实战
姚琪琳
Thoughtworks 资深咨询师
5615 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
用户故事 (1讲)
遗留系统现代化实战
15
15
1.0x
00:00/00:00
登录|注册

05 | 以假设驱动为指引:如何评价遗留系统的现代化成果?

你好,我是姚琪琳。
前两节课,我们学习了遗留系统现代化的第一个原则:以降低认知负载为前提,以及能够显著降低认知负载的利器——活文档。今天我们就来看看遗留系统现代化的第二个原则:以假设驱动为指引
我们很多人在做遗留系统现代化的时候呢,总觉得它是一个十分复杂的技术问题。本来嘛,无论是代码的重构、架构的拆分,还是 DevOps 平台的搭建或技术栈的升级,无一不是技术活动。
下面我来分享一个我早年间的经历,看看能不能颠覆你的想法。

脱离业务的技术改进都是耍流氓

十年前,我曾经试图去主导一次技术改进,希望将一个遗留系统上的 JDK 从 1.4 升级到 5。你可以想象一下,使用 Java 1.4 开发是一个什么样的情形,没有 stream、没有泛型,甚至没有枚举,实现一个简单的功能都需要好几行代码(当然现在的 Java 也没好到哪去……),在这样的项目上工作简直痛不欲生。
我当时做了充分的调研,制定了详细的计划,以确保升级过程的平滑。然而这样一个看起来很“正常”的改进却被部门领导叫停了。
他的理由是,系统刚刚上线不久,一两年内不会有很多的新需求,旧 JDK 导致的开发痛点并不明显。而业务方也没有明确提出,未来要提升开发效率以支撑更多的需求。所以,这样的改进,虽然看上去在技术上十分必要,但在业务上优先级却没那么高。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

文章总结:以假设驱动为指引的遗留系统现代化是本文的核心主题。作者通过分享自身经历,强调了技术改进必须以业务为导向,而不是脱离业务的“耍流氓”。文章介绍了假设驱动的概念和在软件开发领域的应用,强调了以假设驱动的方式构建产品可以将用户反馈纳入开发过程,让每一个需求的效果都可以度量。作者以电商App的视频功能为例,说明了假设驱动开发与传统需求方式的区别,并强调了假设驱动开发的精益优势。最后,作者提出了以假设驱动的方式进行开发,可以快速验证假设,不断迭代,得到能带来最多客户价值的方案。文章通过实例和理论阐述,强调了以假设驱动为指引的现代化成果评价方法,为读者提供了深入思考和实践的启示。 在具体操作上,文章提到了明确目标和度量指标的重要性,以及如何制定和使用度量指标来评估技术改进的效果。作者强调了避免使用绝对数据,而要尽量使用相对数据的重要性,并建议将数据可视化以便团队和业务方了解改进的成果。最后,文章提出了思考题,鼓励读者分享项目上遗留系统现代化的心得和经验。 总的来说,本文通过深入浅出的方式介绍了以假设驱动为指引的遗留系统现代化方法,并提供了实用的操作建议,适合技术人员和项目管理者参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《遗留系统现代化实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • aoe
    DDD、TDD、假设驱动都需要想象力,当个程序员要想的多一点

    作者回复: 👍

    2022-04-20
    6
  • Kent
    - 假设驱动开发,本质上是以**成效**为目的的开发。 - 成效=需求产出+技术效率。 - 只关注需求产出会产生大量技术债。只关注技术效率会浪费开发资源。 - 决定开发任务时遵循假设驱动的思考模型,可以帮助我们审视开发任务的成效。即:“我们相信 < 某个功能 >将 < 产生某种结果 >当 < 我们看到某种可度量的信号 > 时,我们就有信心沿着这个方向继续下去” - 贯彻假设驱动开发,应当尽可能引入合理的成效评价指标,既可以帮助团队客观衡量工作情况,也可以向团队外相关方展示价值。

    作者回复: 感谢分享

    2022-05-08
    1
  • 小菜鸟
    本质上就是项目的roi,投入产出比,要有可量化的收益。关于ab实验有个问题请教作者,如果每个需求都增加对照实验会额外多一些成本,毕竟又要开发分组功能,还要测试分组功能,为啥要做ab呢,本身就是业务需求,即便效果不好,又能怎么样呢,技术说了又不算

    作者回复: 要以开发产品的心态去开发软件,AB主要是验证最初的假设,这个AB并不是开发团队自己决定的,而是整个产品团队的共识才行。

    2022-06-12
  • 跫音
    需求响应力如何去衡量呢?如果没有一个需求管理工具,感觉量化有点难度。有推荐量化需求的工具吗?

    作者回复: 有工具当然好,但没有工具,一个Excel也能做好需求管理。

    2022-05-17
  • 子夜枯灯
    假设驱动法,还能举例一些场景么?老师。这部分理解的差一些,希望能给出一到两个例子

    作者回复: 其实就是在开发一个需求时,把它要达到的目标进行量化,如果量化满足的当初的假设,需求开发就成功了,以此来验证,而不是以开发完成来验证。

    2022-05-10
  • “K、Biao.
    客户洞见这条价值指标如何做量化定义呢?

    作者回复: 每个行业和系统都不太一样,所以很难一概而论。 我文中的例子是客户投诉率,这其实背后就是基于客户洞见给出的。

    2022-04-22
  • 特修斯之船
    Bug数这东西,不是越修越少,趋向于0的吗,不好衡量吧

    作者回复: 持续开发的软件系统,会不断有新的增量上线,每次上线,肯定也产生新的bug,这是很正常的

    2022-04-20
  • peter
    正常开发中,不管是传统的瀑布式开发,还是敏敏开发,是否可以运用假设驱动方法?

    作者回复: 都是可以的,尤其是互联网产品

    2022-04-20
  • belief
    小公司用不到
    2022-12-28归属地:广东
  • MaLu
    假设其实面向的还是价值,价值是需要被验证的,而验证就要有度量指标,口说无凭,拿数据说话。数据从哪里来?收集什么数据,数据做什么处理,怎样分析、怎样统计,面向的是最终的业务价值。而不是为了收集而漫无目的地收集。
    2022-11-07归属地:广东
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部