M项目自实施以来已经过去了1个半月,目前该项目还在;试用-修改-再试用-再修改”的泥沼中苦苦挣扎,4名开发人员已经人困马乏,疲于应付,但系统的问题清单仍然越来越长,似乎没有尽头。这个项目是为生产部门开发的生产线的管理系统。去年,由于生产工艺和流程变化,已经使用了几年的管理系统无法继续使用了,因此生产部门购买了一套外国公司的生产管理软件,花费不菲,试运行的时候却发现系统响应速度非常慢,几乎造成5条生产线全部停工,无奈之下只好提前结束合同,当然,首付款也打了水漂。
目前,生产线完全依靠人工管理,生产效率低下,生产部门迫切希望于信息部门能够尽快开发出新系统,以缓解生产制造的混乱局面。系统的上线时间,生产部门的要求近乎苛刻,信息部在接到任务后,只好将项目计划紧缩、再紧缩。开发部的工程师非常努力,只用了3个月就完成了需求调研和代码开发,并于1个半月前开始试运行。但是问题很快出现了,本来预计只要2周的系统实施阶段一拖再拖,问题不断,眼看三个2周都过去了,距正式上线仍遥遥无期,对此各方面都非常着急,却搞不清楚为何如此。
TOC(Theory Of Constraints)是高德拉特(Eliyahu M.Tolerate)创立的“制约法”,是一套独特的管理方法论,将之应用到软件项目管理中也一样适用。TOC致力于找出管理链条中的薄弱环节,然后通过各种手段加强它,当它不再是最弱的一环时,再去寻找新的薄弱环节,如此往复,整个管理链条都得以加强了。
一、原因何在?
实施受阻,原因何在?信息部为了按时交付系统,不得不一再的压缩开发和测试的时间,软件质量因此大打折扣。在开发过程中,系统集成测试基本属于奢望,开发人员甚至没有时间对自己的代码做充分的单元测试,就匆忙发布了,这种做法大大降低了软件的质量,也正是不断降低的质量标准导致了试运行时铺天盖地的错误和缺陷。更麻烦的是,由于不断的对软件功能进行修改,只好不断的对修改的代码进行测试,不断的对修改过的功能进行用户培训,造成实施时间一延再延。
“实施阶段”指的是指软件拿到用户的实际工作场所进行部属和使用的阶段。一般来说,系统实施要经过“软件交付——〉发布——〉用户培训——〉用户试用——〉发现问题——〉软件修改——〉软件测试——〉重新发布”这样一个螺旋式前进的过程,这个过程将不断的重复,直到系统没有问题或者存在的问题用户可以接受为止。不要怀疑这个过程的复杂和繁琐,因为这才是事实,像那种理想化的、一帆风顺的实施过程通常只会在教科书上出现,我们必须充分认识到系统实施阶段存在的风险。
在这样一个循序渐进的过程中,每个环节都可能引发混乱,造成延误,并在各步骤间传递和放大这些延误,导致实施阶段的延期。比如:开发过程的延误,造成交付的推迟;用户培训的拖后,造成试用的推迟;问题发现的缓慢,造成软件修改的推迟;软件修改的频繁,造成测试的推迟;软件测试的延误,造成再次发布的推迟。
二、冲出泥沼
让我们用TOC的观点和方法来分析这混乱的状况,并找出解决方法。
1、冲突
[TOC观点]:发现冲突是解决问题的第一步。TOC认为,如果一个问题未能以两个必备条件之间的冲突来表达,那么这个问题就没有清晰的定义。
从成本世界出发,各步骤所用的时间越短越好,所进行的循环次数越少越好;
从有效产出世界出发,各步骤所做的准备工作越充分越好,所进行的循环次数越多,则有效产出的质量和效果越好。
2、制约因素