案例背景:
1、A small business called the ABC Company.
a、Three sectors: software sector (SS); commercial sector (CS); finance sector (FS).
2、The SS was a team with less than 15 people.
a、Mission: to develop and supply high quality business software products and services.
3、The SS was chaotic
a、Although significant experience had accumulated over the years, there was no internal or external co-ordination.
b、No managerial or engineering procedures or policies had been reinforced, and no administrative support existed.
c、Quality was low. No one knew exactly what the other people working on
4、The other sectors of the business also had their own problems.
a、Negotiation and sale of software contracts by the CS were based on insufficient knowledge about the
corresponding products. This often led to last minute changes and adaptations that had not been planned nor
managed.
b、The financial situation of the firm was very fragile.
c、All those factors contributed to increase the instability and confusion within the SS.
5、The ABC Company has made a strategic decision that it wants to improve its competency in software development to meet its vision.
案例情况:
1、SS提出了一个称为销售奖励程序SBP(用来管理支付地区代理佣金的软件)的单机版软件产品建议书,预计开发周期为1年。
2、公司决策层审批通过,但要求实现网络通讯功能,将工期缩短为6个月,尽管SS认为没有多大可能在6个月内完成,但公司决策层主意已定,认为只要技术人员加倍努力应没问题,允许扩大项目组规模。
3、SS试图:
(1)采用C++和面向对象的设计方法;
(2)采用一种报表自动生成工具;
(3)拥有更新、更快的硬件设备;
(4)雇佣到顶尖的开发人员。
公司进一步要求加班加点拼命工作,将项目计划压缩到6个月内。
4、SS组建了项目组,由于公司内部固定的开发成员无法完成一些特定任务,招聘了1个合同制开发成员,该合同开发者被面试人员建议不宜雇佣,但项目经理急于用人,而且觉得他具备了相应开发技能,还是雇佣了他。
5、在项目组的第一次会议上,公司高管向项目组阐明了ABC公司对于SBP项目的关注,如果项目取得成功,会获得丰厚的奖赏。接着,项目经理与成员粗略讨论了项目计划,并与测试经理约定5个月后交付功能完备并通过测试的版本。
6、项目组用不到1个月时间完成了需求分析报告和设计工作,似乎很好地发挥了C++的功能优势。然后开始了疯狂的编码,以满足在第4个月时发布第一个测试版本的要求。
7、项目进展并非一帆风顺,大家都不喜欢那个合同工,抱怨他不让任何人靠近他的代码,项目经理将这些归结于由于人们长时间工作所导致的个性冲突。
8、然而到了第4个月中旬,CS通知新的销售奖励制度已经发布,项目组发现他们必须改变输入对话框、数据库设计以及数据存取对象和通信对象,以适应新的结构。
※陷入修改的混乱当中
9、转眼间数周过去了,预计第5个月初交付测试通过的完全版的日期到来并过去了,项目组还是没能提交第1个测试版,存在许多遗留问题
※报表生成程序不如预想那样工作;人员互相埋怨和不协作;…
10、公司高管又召开了项目组会议,要求项目组努力工作以按时交付产品,每天工作10小时。每个人为了按期交付而加班加点,终于在在第7个月初提交第一个完整版本供测试。一个半月每周60小时的工作几乎压垮了他们,这期间个别开发人员被他以前的项目组经常叫去做一些技术支持工作(大约每天得为他们工作2小时)。
※2天后,测试经理发布了第1个问题报告,在程序中发现了200多个问题,包括必须处理的一类严重错误数十个。
※测试组每小时还在发现新的错误。
11、经过1天的讨论并估算修正每个错误所需要的时间,公司高管被迫同意项目计划延期4周,要求每个人被要求每天工作12小时,每周工作6天,高管则开始了自己为期1个月的年假去度假了。
12、接下的1个月时间里,项目组每天都要在办公室呆上12小时,但他们会花许多时间看杂志、电话聊天,他们每处理一个错误,测试人员就会发现2个新的错误,一些本来估计花几分钟就可以解决的问题由于牵扯到项目各方,变成需花数天时间才能解决。
13、这期间,那名合同工接受了另外一家公司的合约而离职,项目经理只好又紧急雇佣了一个程序员来帮助处理其所编代码,但经过1周的“鏖战”,发现程序中存在一些深层缺陷,被迫重新设计和编写程序。由于新人不了解团队的工作规则,经常覆盖其他成员的工作文件,导致工作的重复与时间的浪费。
14、半年后,项目终于正式发布,得到了市场及用户的认可。
※ABC公司向项目组每位成员颁发了250元的奖金,以感谢他们辛勤的工作。
※几周以后,部分人员跳槽到另外一家公司去了。