首先,对敏捷开发下个定义,借用百度百科的定义。简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
这次我负责的智能金库管理系统开发项目,就是一个时间紧,任务重,突发事件多,需求变更更多的一个典型项目。除了敏捷开发,我想不到有什么更好的方法进行项目推进。其中几个较大的事件我可以拿出来跟大家分享一下:
(事件一):数据库切换
事件背景:今年起银行业要求去IOE,而投标公司拿来的Mysql系统版本功能太简单,不满足业务需求,只能从功能较完善的Oracle版本修改数据库至Mysql
时间限制:项目开标选定公司就已经到了2019-11-25,而业务要求2019-12-18就进行系统试运行上线。
难点:不到三周的时间一个全新的系统上线,而且还要替换数据库
解决方案:
1. 每日站立会跟进项目进度,把工作按照重要性和紧急性进行分类,分为四类:a重要紧急,b重要不紧急,c不重要紧急d,不重要不紧急。根据四类情况对自己的近期工作进行权衡,把握工作重点,紧扣要事,使近期工作得以顺利开展,使远期工作也得以顺利进行。
2.使用工具批量转换Oracle存储过程至Mysql,再通过回归测试优化调整。
3.拉上业务人员参与回归测试,提高项目开发速度。
4.根据时间倒推,推算出试运行上线前能测试验证的数据库存储过程数量,挑选重要功能优先修改。
5. 征得业务同意在试运行上线阶段只上线修改号的重点功能部分。
6. 形成快速迭代的开发方式,每次修改完数据库对应的功能模块将会逐步投入上线。
结果:
项目在2019-12-18完成生产试运行上线。满足了业务当年的重点项目上线需求。
(事件二):蓝牙传输方案更换为4G
事件背景:我行的箱包交接区域不同于外行,位于二道门(2道金属隔离空间)之内,屏蔽性较强,故在他行使用无碍的PDA(手持机扫描器)蓝牙传输方案,在我行通过二道门之后信号很弱,经与公司商讨后,更换为PDA的4G传输方案。
时间限制:2019-12-20至2020-1-20 的一个月之内
难点:时间紧,且开发公司之前并没有4G传输方案的实施经验。
解决方案:
1. 在问题出现之初,项目组和业务充分交流,用尽量少的时间决定了更换为4G的通讯模式。
2. 快速决定由厂商加大人员投入,以加快开发进度。
3. 制定了厂家后台远程开发PDA的4G功能模块,本地开发控制台4G功能模块的分工。
4. 每日视频日例会全项目组(后台,现场,业务)实时沟通项目进度。
结果:
蓝牙传输方案更换为4G在2020-1-09日完成开发测试,并于2020-1-12线上验证通过。
(事件三):指纹验证方式升级为人脸识别
事件背景:因为厂商提出合同里的PDA配备的指纹模块硬件采购需要时间较长,不能再规定时间内提供,且业务也想再将来升级成人脸识别模式,故临时更改需求为人脸识别模式。
时间限制:2020-2-14提出,要求2020-3-20之前完成。
难点:时间紧,且正好遇上新冠肺炎期间。
解决方案:
1. 跟业务充分沟通,确认以前确实存在押运员经常指纹脱皮不能验证的情形发生,升级为人脸识别确实是更好更优的替代方案。
2. 新冠肺炎期间,每日站例会依旧进行,不过改为线上视频例会。
3. 每周进行一次回顾会议,及时沟通项目进展情况。
4. 因PDA自带摄像头,不采购指纹仪模块后,还省下大笔硬件费用,这部分让业务跟厂商协商退还相应工程款。
结果:
指纹验证方式升级为人脸识别于2020-3-15完成开发测试,不但功能进行了让业务更满意的升级,还节省了20万的项目费用。
-----------------------------分隔线分隔线分隔线分隔线分隔线分隔线 :)-------------------------------
(总结):
对比瀑布开发,敏捷可以更快的适应需求变化,更好的进行系统升级,甚至节省项目费用(参见事件三)。敏捷开发并不是一门具体的技术,而是一种理念或者说是一种思想,注重市场快速反应能力,也即具体应对能力,客户满意度也比较高。
(反思与不足):
本次的敏捷开发,虽然核心思想和效果都不错,但使用的敏捷管理工具主要只有站例会,回顾例会和快速迭代。如果未来还有机会,希望可以使用更多更好的敏捷管理工具。