敏捷与瀑布需要和平相处

 我们是银行的软件开发部门。尽管公司这几年自顶向下力推敏捷开发,但是实现端到端全面敏捷的项目还是凤毛麟角。虽然不少业务人员开始接受敏捷的理念,但是在具体项目实施上,还是更接受传统的瀑布项目计划与承诺。我相信我们的情况具有广泛的代表性。对此,与其抱怨业务‘不解风情’,不如深入理解业务部门的需要,找出更适合业务特点的方法。



预计阅读时间:8分钟



01

To C产品与业务项目的区别


我们看到各种敏捷教科书里很多端到端的敏捷案例都是像互联网产品这样的面向消费者(To C)的产品的,其需求和用户都是不确定的,产品经理能决定这个产品是怎样的。这类产品的具体的用户和需求,是一个需要不断探索和验证的过程。整个过程最关键的是试错——更快地开始行动并通过真实的市场反应获取反馈。因此也不适合和不可能预先做长期的计划。


但是作为银行的软件开发部门,我们面对的情况则完全不一样,业务作为甲方是需要确定性的。针对一个需求,尽管可能还非常概要,我们需要明确回答要多长时间和多少预算才可以完成,而敏捷开发,确实无法在一开始回答这个问题。虽然有敏捷计划方法(故事点和测速),但通常需要几个迭代的过程。因此有业务人员会说“敏捷就是不做计划的借口”(尽管采用瀑布计划,也不见得真的可以准确地回答这些问题)。不管准确与否,业务需要一个承诺,因为他们需要以此给客户一个承诺。



02


为什么业务不能接受MVP


我们知道,最有效的降低项目交付风险的方法就是定义最小可用产品(Minimal Viable Product,MVP),然后快速交付出来给用户体验,以收集反馈,持续改进产品和进行产品的长期演进。这一点对于To C的产品尤为重要。


大家可以回忆一下2011年腾讯刚推出微信时,它有多简单,但正是这一简单的版本(MVP),由于已经实现了最核心的语言聊天功能,大大拉近了人与人的距离,迅速得到了市场的认可,经过多年的演进,今天已经成为移动端最重要的平台级产品。但是当初谁也无法预测这样一款产品到底市场会否接受,主要受众会是谁,有没有竞争对手在开发同样的产品。以最小成本和最快速度向市场推出成品(MVP),在这个阶段,是个验证想法(idea)的过程,如果市场反应并没有预期的好,要么及时通过收集到的真实的产品反馈进行调整,要么放弃掉这个产品止损。唯快不破,快速试错,是像互联网产品这样的To C产品的生存法则。最近,腾讯又发布一款新产品——腾讯文档(在线跨平台协同文档编辑工具),目前的版本也是极度简单,就是一个活生生的MVP的例子。


对于我们的业务部门来说,大多数情况下,我们并不是推出一个市场上没有的新产品,而往往是市场的追随者。比如我们要做的基金外包业务,市场上已经有多个竞争对手在做了,如果竞争对手在提供10项服务,而我们只提供3项(MVP),客户根本不会选择我们。当我们的业务去询问客户需要我们提供哪些服务时,会被反问我们能提供哪些服务。我们不能从客户那里得到准确的需求,但是我们必须推出比竞争对手更丰富和更好的服务。简单地说,只包含最核心服务的MVP对于业务来说是卖不出去的



03


瀑布与敏捷的和平共处


2017年,面对小米的困境,雷军曾说过守正比出奇更重要:“遇到问题的时候,大家希望用奇招来逆转,这是错的。遇到困难一定是某个基本功出了问题,守正比出奇更重要。” 通过守正,小米实现了销售上的逆转。


业务需要知道的交付时间和成本问题,尽管一开始确实很难回答,我们是无法回避。我们依然需要拿出传统项目管理的基本功——工作分解结构(WBS)、任务间的依赖关系、每项任务的大概估算以及找出关键路径这样的瀑布计划方法。我们知道,对项目的理解是越到后期越明晰的,整个软件开发和交付过程也充满了不确定性,对计划进行持续和及时的调整和修正非常重要。Microsoft Project在这方面是很好的工具。


即使在整体上很多项目不得不以瀑布计划的方式进行,但并不妨碍我们在具体实施过程中适用性地采纳敏捷实践。


笔者最近的项目是帮助业务部门在国内开展基金外包服务,核心系统都是采购的,我们的工作主要还是在银行内部搭建符合集团灾备要求的服务器架构、配置环境、安装应用、安全测试、满足上线要求的各种非功能性要求等。整体上来说,是一个非常瀑布的过程。为了满足业务规划,我们也必须回答是否能在目标日期前完成。


通过对项目上线所需要的所有要件进行尽职调查,得到了整体的瀑布项目计划,对目标日期能否上线做到了心里有数。同时,我们采纳了以下的敏捷实践:


  1. 与业务部门采用了像JIRA这样的敏捷工具记录和跟踪所有的任务和变更,并通过JIRA进度板和每日站会进行持续讨论和跟踪。

  2. 由于核心系统是采购的,大部分的开发工作由供应商来完成,我们通过Scrum让供应商的开发人员在每个Sprint聚焦在有限的最重要的交付上,从而让他们有更明确的短期目标和更快的交付速度,并实现持续交付。

  3. 为了实现更多的增值服务以满足客户期待,项目所采购的系统比较多,每个系统的应用架构又不一样,运行的操作系统和数据库也有差异,需要对每个系统进行单独的服务器架构设计,导致服务器数量非常多。同时,业务部门需要核心系统尽快上线以申请牌照。我们对整体计划进行了拆分,先交付牌照申请所需要的核心系统,这样业务部门的牌照申请可以和后续的增值服务系统的交付同时进行,使整体交付更加敏捷和弹性。

  4. 通过部署流水线和自动化回归测试实现各环境的持续部署。



因此,在这类主要以业务项目为主的交付过程中,敏捷与瀑布并不是一个非黑即白的关系,很多时候需要打组合拳,和平共处,目标都是尽力和尽快地满足业务的目标。



我的其他文章:


两款敏捷工具,治好你碎片化交付硬伤

「用户故事」竟然还可以这样写!?

拆分与解耦是敏捷与精益的核心

把项目拆分成用户故事才是硬本领

通过厨房做菜解释什么是敏捷开发



关于作者


  • 早期敏捷践行者

  • 起步于极限编程

  • 熟悉极限编程、Scrum、看板方法、测试驱动开发、持续集成、行为驱动开发


关注公众号

640?wx_fmt=jpeg


内容概要:本文围绕EKF SLAM(扩展卡尔曼滤波同步定位地图构建)的性能展开多项对比实验研究,重点分析在稀疏稠密landmark环境下、预测更新步骤同时进行非同时进行的情况下的系统性能差异,并进一步探讨EKF SLAM在有色噪声干扰下的鲁棒性表现。实验考虑了不确定性因素的影响,旨在评估不同条件下算法的定位精度地图构建质量,为实际应用中EKF SLAM的优化提供依据。文档还提及多智能体系统在遭受DoS攻击下的弹性控制研究,但核心内容聚焦于SLAM算法的性能测试分析。; 适合人群:具备一定机器人学、状态估计或自动驾驶基础知识的科研人员及工程技术人员,尤其是从事SLAM算法研究或应用开发的硕士、博士研究生和相关领域研发人员。; 使用场景及目标:①用于比较EKF SLAM在不同landmark密度下的性能表现;②分析预测更新机制同步否对滤波器稳定性精度的影响;③评估系统在有色噪声等非理想观测条件下的适应能力,提升实际部署中的可靠性。; 阅读建议:建议结合MATLAB仿真代码进行实验复现,重点关注状态协方差传播、观测更新频率噪声模型设置等关键环节,深入理解EKF SLAM在复杂环境下的行为特性。稀疏 landmark 稠密 landmark 下 EKF SLAM 性能对比实验,预测更新同时进行非同时进行对比 EKF SLAM 性能对比实验,EKF SLAM 在有色噪声下性能实验
内容概要:本文围绕“基于主从博弈的售电商多元零售套餐设计多级市场购电策略”展开,结合Matlab代码实现,提出了一种适用于电力市场化环境下的售电商优化决策模型。该模型采用主从博弈(Stackelberg Game)理论构建售电商用户之间的互动关系,售电商作为领导者制定电价套餐策略,用户作为跟随者响应电价并调整用电行为。同时,模型综合考虑售电商在多级电力市场(如日前市场、实时市场)中的【顶级EI复现】基于主从博弈的售电商多元零售套餐设计多级市场购电策略(Matlab代码实现)购电组合优化,兼顾成本最小化收益最大化,并引入不确定性因素(如负荷波动、可再生能源出力变化)进行鲁棒或随机优化处理。文中提供了完整的Matlab仿真代码,涵盖博弈建模、优化求解(可能结合YALMIP+CPLEX/Gurobi等工具)、结果可视化等环节,具有较强的可复现性和工程应用价值。; 适合人群:具备一定电力系统基础知识、博弈论初步认知和Matlab编程能力的研究生、科研人员及电力市场从业人员,尤其适合从事电力市场运营、需求响应、售电策略研究的相关人员。; 使用场景及目标:① 掌握主从博弈在电力市场中的建模方法;② 学习售电商如何设计差异化零售套餐以引导用户用电行为;③ 实现多级市场购电成本风险的协同优化;④ 借助Matlab代码快速复现顶级EI期刊论文成果,支撑科研项目或实际系统开发。; 阅读建议:建议读者结合提供的网盘资源下载完整代码案例数据,按照文档目录顺序逐步学习,重点关注博弈模型的数学表达Matlab实现逻辑,同时尝试对目标函数或约束条件进行扩展改进,以深化理解并提升科研创新能力。
内容概要:本文介绍了基于粒子群优化算法(PSO)的p-Hub选址优化问基于粒子群优化算法的p-Hub选址优化(Matlab代码实现)题的Matlab代码实现,旨在解决物流交通网络中枢纽节点的最优选址问题。通过构建数学模型,结合粒子群算法的全局寻优能力,优化枢纽位置及分配策略,提升网络传输效率并降低运营成本。文中详细阐述了算法的设计思路、实现步骤以及关键参数设置,并提供了完整的Matlab仿真代码,便于读者复现和进一步改进。该方法适用于复杂的组合优化问题,尤其在大规模网络选址中展现出良好的收敛性和实用性。; 适合人群:具备一定Matlab编程基础,从事物流优化、智能算法研究或交通运输系统设计的研究生、科研人员及工程技术人员;熟悉优化算法基本原理并对实际应用场景感兴趣的从业者。; 使用场景及目标:①应用于物流中心、航空枢纽、快递分拣中心等p-Hub选址问题;②帮助理解粒子群算法在离散优化问题中的编码迭代机制;③为复杂网络优化提供可扩展的算法框架,支持进一步融合约束条件或改进算法性能。; 阅读建议:建议读者结合文中提供的Matlab代码逐段调试运行,理解算法流程模型构建逻辑,重点关注粒子编码方式、适应度函数设计及约束处理策略。可尝试替换数据集或引入其他智能算法进行对比实验,以深化对优化效果和算法差异的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值