绿色的 “PASS”

这是一个有关软件重构项目的真实故事。为了公司业务保密和方便不熟悉软件项目的读者们阅读,故事内容稍作修改。

BMS系统是一家企业的后台系统集群当中占据着绝对重要位置的子系统,直接影响着客户服务部门对客户的服务效率和水平。因为计算机系统环境的升级,两年后将不再支持BMS系统当前版本的运行,所以需要尽快重构BMS系统。重构项目已经两次交付延期,正准备提出第三次延期交付申请,客户已经非常着急。

公司不得不再次派项目经理C出手援助。C是一位TOC理论爱好者,在项目管理方面有自己独特的见解,对一些形势严峻的项目的援助经常屡见奇效。

BMS系统的现任项目经理M曾经是维护BMS系统的一名高级开发人员,后被提拔任命为BMS系统的项目经理,后考取了PMP认证,负责管理BMS系统和开发团队已经好几个年头。

在开始重构BMS系统前,公司极其重视,特批了的M的多个申请——为了提高团队的开发效率,给一部分人升级了机器配置,如扩充内存、升级SSD硬盘、更换宽屏显示器,有的直接更换成全新的机器,双显示器已是团队工作的标配。同时,部分人的新装备和新机器正在采购流程中,招聘补员也是优先考虑BMS团队的人员需求,前期缺的几名测试人员也已经补齐。但即便如此,半年多时间已经过去了,核心模块还没有完成交付。

公司和C得到M的工作汇报:

“我根据PMP做了很多尝试,项目现在难以把控,团队成员每天都在加班、都非常忙,希望能向客户提出最后一次延期。

“现在项目主要在内部测试,测试人员一旦发现缺陷后,将缺陷记录至缺陷追踪系统,开发人员就会及时获取并开始修复,开发人员同时还继续写着一些小功能。缺陷追踪系统中有几百条已经被开发人员标记为“已修复”的缺陷,等待测试人员进行验证,同时部分新提交的小功能也在等待测试人员开始测试。

“非常明显,测试工作进展缓慢,成了项目的瓶颈。测试人员的加班已成必然,同时已经从其他团队临时调来两名测试人员协助。为了随时能修复测试人员发现的缺陷,开发人员也一同加班,从而不影响整个项目的进度。

“我觉得很难进行进一步的改善,我希望能借调更多的测试人员来协助,而不是项目经理。”(估计M认为项目经理是不干活的人吧。)

C听完M的总结汇报,并没有和M进行过多的讨论。C明白,和管理思维不同的人进行讨论如何管理项目只是在浪费时间,C对此已颇有体会——就在半年多前的一个援助项目中,C就与另一个项目经理进行过一次无果的讨论。C虽然对BMS系统的业务不甚了解,但是凭多年的项目管理经验,C认定项目进度的最佳表现指标应该是标记为绿色的“PASS”的测试用例数量持续地出现。

C正式进入项目。第一天C同团队一起加班时,观察了测试人员E执行一个测试用例的完整流程:

测试人员E在左屏上切换到已经加载好BMS系统核心模块界面,刷新后,随即切换到打开的测试用例文档,将其中一条测试用例从头到尾看了一遍,然后转向右屏。测试人员E在已经打开的数据库查询软件中,在打开的好几个标签页里选中了一个(每个标签页上显示着查询文件的名字),几十行的数据查询语句展示了出来(这些语句都是在测试之前的项目时团队积攒下来的)。测试人员E在几十行语句中找到并执行了其中一条,不到两秒钟多行数据结果集就显示了出来,借助横向滚动后,复制了在结果集右半部的一个数据。测试人员E又选中另一个标签页,在几十行语句中好像没有找到,向上滚轮动屏幕后才找到一段语句。测试人员E将刚复制的数据粘贴到这条语句段末尾后执行,这次多等了几秒钟才出现了结果集,和之前一样,迅速复制了结果集中一个数据。测试人员E迅速转向左屏,熟练地从测试用例文件切换至已经刷新好的BMS系统界面,测试人员E将复制的数据粘贴到界面顶端的一个文本框中,点了一下带有查询图标的按钮,系统弹出正在查询的友好提示大概几秒钟,数据就布满了屏幕。这时测试人员E好像有一点喜悦。她复制了一个数据,再次转向右屏,选中一个标签页后再次找到一条语句段,将复制的数据粘贴到语句段末尾并执行,几秒钟后就显示出了结果。此后,测试人员E开始在左屏和右屏之间来回转头进行数据验证,充分利用了双屏优势,从而减少了在一个屏幕上来回切换界面的时间。最后,测试人员E在左屏上切换到测试用例文档,将那一条测试用例标记为绿色的“PASS”。测试人员E此刻显露出非常高兴的表情——这个测试用例验证的很顺利,没有发现任何缺陷。

C大概计算了一下,从第一步开始准备BMS系统界面开始,到最后绿色的“PASS”大概10分钟左右。C同时猜测,开发人员可能也是用类似的操作流程来进行自我工作检测的。在当晚加班结束前,C得到了几名开发人员的口头证实C的猜测。C这次观察到的正是TOC理论中提及的“活跃的瘫痪”。

第二天一早,C告诉公司领导:通过昨天的观察,C认为存在大幅改善的机会,决定取消第三次延期交付申请,并停止从其他团队借调更多测试人员的行动。(公司领导非常高兴,因为他们正在为怎样从其他项目中调配测试资源而头疼。)

随后,C和团队所有成员开会,会上C提出两个调整,在对调整内容作了解释和原因说明后,团队所有成员一致投票通过。C提出的两个调整如下:
1. 将核心模块以开发主导的“模块”需求方式改成以测试主导的“独立业务线”小需求方式进行拆分,拆分工作由全体成员一起参与进行;对拆分后的小需求进行优先级排序,集中完成优先级最高的小需求进行交付后,再开始实现下一个小需求;
2. 将“独立业务线”小需求拆分成多个小任务,一个小任务对应一个“测试用例”,安排一名熟练的开发人员和一名熟练的测试人员专门提前为每个小任务准备3份测试数据,一份用来开发自测,一份用来测试验证,一份用来发现缺陷后的修复验证。数据没有准备好时,任务不能释放给其他人员,其他人员也不必再重复找测试数据而花费额外的时间。之前发现的缺陷进行分类后放置对应的小需求中一并修复或验证。小需求中所有小任务对应的测试用例被标记为绿色的“PASS”后,小需求被视作完成,进行发布交给验收团队验收。

C随后说服验收团队:验收团队不再等到大量的需求功能集合完成交付才开始验证,而是接受小需求发布方式进行不断验证。

经过以上调整,标记测试用例状态为绿色的“PASS”的速度越来越快,每个小需求的完成时间大幅缩短,团队可以对每个小需求的交付验收时间进行承诺;新的测试缺陷数量有明显下降趋势,即使发现新的缺陷也是非常容易修复的;验收团队发现的缺陷数量也较以往的项目明显下降,即使有新的验收缺陷也会在下一个小需求的发布中迅速修复;团队成员不再充当业务的螺丝钉,每个人都提升了对业务的理解和掌握;大量的加班逐渐消失了,团队开始了有规律的工作节奏。

一个多月后,核心模块全部交付,虽没有赶上最初不延期的项目完成计划,但如C所言,不需要第三次延期交付申请。

在这次项目援助后,C表示,此次实施的调整方案是受TOC业内流传的“蓝光”故事的启发,自己不断追求更多更快的有效产出信号——绿色的“PASS”,来改善系统的整体流动性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,970评论 0 13
  • 1.埋点是做什么的 2.如何进行埋点 3.埋点方案的设计 近期常被问到这个问题,我担心我的答案会将一些天真烂漫的孩...
    lxg阅读 2,011评论 0 1
  • 1、在项目的Sprint回顾会后,团队成员指出那是抱怨会,不是非常有效。Scrum主管应该怎么做?A 建议团队尊重...
    隔壁老李头阅读 12,031评论 1 16
  • 半年:我的日子不可以用半年衡量。 很闷:是愤懑,愤懑的人往往一无所有。 追求:还是有的,却在放浪形骸之外。 麻木:...
    牛粪茶壶阅读 289评论 1 6
  • 历时三个假期,那个小小的驾照本子终于到了我的手里。 我应该欣喜若狂激动到不能自己的,但是经过了太长时间,经历了太多...
    飞鸟与浮云阅读 816评论 5 11