• CSPO+A-CSPO直通车
  • 敏捷领导力(CAL E+O / ALJ)认证培训
  • Five_reasons_three
  • Hardware-agile-practice-20231012
  • Clp_20220108
  • A-CSM 国际Scrum联盟认证 ScrumMaster
  • CSM A-CSM一站式培训
  • CSM CSP CAL CSPO CSD CST CEC CTC
  • ShineScrum捷行出版书籍
鬼节真故事——欠债总是要还的(技术债务上篇)

万圣节,我们不讲鬼故事,只讲敏捷。技术债务共有上下两篇,本文是上篇,下篇小主正在努力更新中,大家敬请期待。

技术债务 上篇(鬼节版)——故事篇


如期完工


几年前,S公司总有一些项目不能如期完工,David的项目也是其一。那年,新总经理上任,在公司级别的项目管理会议上,David向总经理解释了不能如期完工的原因。当着项目经理的面,总经理明确提出:“项目不能如期完工,任何解释都不接受。”散会了,David翻了个白眼,边走边嘟囔:“连解释都不让解释了,UX不断变更的问题,依赖的组件不稳定的问题,这些又不是我能控制的……”

几天后的一个早上,David的部门经理笑呵呵地走到David身旁,指着David电脑屏幕上刚打开的电子邮件箱说:“公司颁布了项目奖金评比制度,规定不能如期完工,奖金全部扣光。怎么样?加油啊!”David吃了一惊,仔细看看奖金数额,想起了新婚的妻子,要还的房贷……


固定的时间和范围、对不齐进度的组件团队、没有自动化的测试


S公司是典型的由组件团队组成的组织,UX团队、负责不同组件的若干开发团队、测试团队,在产品经理的协调下协作完成项目。David与产品经理保持着密切的联系,月月有计划,周周有报告。眼看进入量产季,David月初就给项目经理发邮件询问若干事项。产品经理很快回信了。


David,你好!

来信问到的问题答复如下:

1.软件版本发布截止日期:2016-10-30。请严格遵守,不能延迟

2.本次版本需要的8个UX文档,UX团队说月初提供其中的6个,其余2个月中才有。

3.你项目应用程序所依赖的中间件,其负责团队月中能够提供更新好的版本。

4.我们要在2016-10-30前完成代码集成,准时启动系统测试。

                                                                                                                                                                 2016-10-02


David看后,找来各个模块的开发者进行商讨,然后给产品经理又写一封邮件:


Allen,你好!

感想分享信息,我们会尽力如期发布。但对在月中才发布的UX文档,我们担心时间太紧,来不及用代码实现。这两个应用都需要2周才能写好代码,还需要1周开发者自己测试以确保发布质量。能否请您帮助说明,请UX部门早一点提供UX文档呢?

                                                                                                                                                                   2016-10-02


第二天,产品经理回信:


David,你好!

发布范围不可缩小。

UX团队我已经催过,但他们说他们正忙于一个优先级更高的项目。

中间件团队查看了你提出的变更邀请,他们说这样变更会导致大量代码修改,影响平台稳定,建议你们在应用层克服困难,实现这个特性。

                                                        

                                                                                                                                                                   2016-10-16


2016-10-23日,David收到了第7个模块的UX文档,

2016-10-29日,David终于收到了第8个模块的UX文档。

David和第8个模块的开发者奋战了一个通宵,终于在2016-10-30早上提交了代码。

David轻声问开发者小M:“自己测了吗?感觉质量怎么样?”

小M揉着布满血丝的眼睛,哑着嗓子说:“测试?我从昨天下午忙到现在,连口水都没喝。”


还债的日子


每个版本测试团队都测出大量bug。David的团队除了要按期完成新特性的开发,还要修改上次发布中存在的bug。除了加班,David实在没有其他的法子。于是他们晚上加班,周末加班,每月团队人均加班100小时。十一月、十二月很快过去,到元旦放假,David想:“不管怎样,先喘一口气儿吧。”2017年的第一天,David早上睡了个懒觉,正准备吃中饭,突然手机响了起来。

David,测试团队报了400个bug,要求今天解完。”电话那头是部门经理的声音,“CH总也在,对这个项目非常关注。”

David心里一抖:“好,我马上来。”

部门经理说:“量产很关键,大家辛苦,但工作要做完,不要急着回家。”于是David大年三十晚上加班,干到9点,春节从初一到初七天天加班。春节期间没有外卖,David就在自己的座位后面堆满饼干和泡面充饥。

一边开发新特性,一边修bug,夜以继日,加班加点的日子一旦开始就好像掉进一个坑,越挣扎陷得越深,怎么也看不到希望。


客户投诉


该来的躲也躲不开,客户投诉了,说David团队负责的产品响应客户变更需求的速度慢,质量问题多,表示很失望,不再愿意继续业务合作关系。


领导批评


David满腹委屈,写了项目的回顾报告,分析bug产生的原因,加班的工作量,列举大量的数据,如实反映困难所在,却不敢有一句抱怨。部门经理、产品经理应邀参加项目回顾会议。

产品经理听完David的报告,严肃地说:“你这个报告是什么态度?!你的意思是说,从头到尾,你只是个受害者,对不对?UX文档的问题,依赖组件的问题,都是别人的问题,对不对?你没有问题吗?你应该深刻反省你自己的问题!”

David惊讶到目瞪口呆,而后低头不语。

部门经理接着说:“每个部门都要讲业绩,每个团队都要为提升业绩做出自己的贡献。你说说,你们团队这一年来有什么贡献?”

“我们能活到现在就是贡献!”David怒吼出来,脸色发白,嘴唇颤抖。


员工辞职


David团队成员陆续辞职了,在项目管理系统中,这个项目的成员名单80%被标记为红色(已离职)。David的妻子两次流产,人们说,说因为David太辛苦了。David请了6个月病假,在家休养,期间妻子第三次怀孕。后来,David也辞职了,同事们看到他晒在朋友圈里的幸福照片:抱着新生儿和妻子在一起。

 


{原创敏捷故事;  如有巧合;  谨勿对号}


下期预告:技术债务下篇(光棍版)——感悟篇