软件项目是这样失败的。

谁也不知道城西银泰豪华的大楼是何时出现的。即便像我这样每天上下班都通过那里。程序员

记忆里彷佛巨大的塔吊和漫天的扬尘在那里飞舞了大半年,也许是一年有余。几个月前忽然某一天通过时,看到了颇具规模的大厦彷佛正在慢慢造成。直到最后几天,当最后一个丑陋的脚手架被拆掉,才发现这里竟凭空出现了如此巨大的庞然大物。安全

不由感慨人类的才华和创造力。服务器

相比之下软件行业彷佛显得很眇小,一般很难向一个行外人介绍一款“伟大的软件”,由于他们很难理解一堆.dll和.exe的伟大之处。在他们眼里,只有一堆看不明白干什么用的奇奇怪怪文件和一个不见得多漂亮的图标,双击进入以后有功能A,B,C,D,E,F,G。数据结构

不幸的是,在多数人坚信“项目经理不须要懂技术”的巨大背景下,连项目经理本人也理解不了程序员们那些自称屌炸天的设计架构。多线程

因而有了各类银弹,各类管理方法。其中之一有一个你们都耳熟能详甚至耳朵磨出茧的名字——敏捷。架构

快速迭代,快速发布可用版本。在看得见的功能一个接一个被“制造”出来,管理者比任什么时候候都心中有谱。因而他们在此之上又发明了以功能点来计算工做量等等诸如此类的时间管理方法。并对全部人说本身的项目用这管理方法进行的十分顺利。测试

某天一个管理者理所固然地据说并坚信了敏捷管理的出类拔萃所向披靡。他的团队正要建造一个像银泰城同样伟大的项目。线程

他理所固然地不想看到一堆开发者貌似很努力的敲打键盘而后产生一个个莫名其妙的带着各自后缀名却无一能够双击点开的文件。这种感受加上一些基因带给他的莫名的不安全感让他以为可怕,这些埋头敲键盘的家伙到底在干些甚么?他们拿走了不菲的薪水却极可能在搞一些跟工做压根不要紧的东西。项目进度怎么样了?是否是该让他们加加班?是否是他们中有人技术不达标致使总体进度有问题却瞒着我好多领几个月薪水而后走人?这种无力感让他坐立不安。看着这群自称程序员的家伙每天上班下班就像看着工地里漫天的扬尘和出入其中的满载的黄沙车,工地上看上去一直是一片混乱,工队负责人告诉他在打地桩,但是,天知道发生着什么?设计

此次他决定采用更先进的管理方法,而这一方法已经被无数人证实科学且百分之百成功。敏捷,或是叫别的什么名字,管它呢。快速发布可用版本,快速迭代,基于功能点的计划,棒极了。教程

因而他把大楼图纸大体看了一遍,决定在第一个月完成第一层的最北边商铺,接下来两个月继续完成剩下的三个方向的。一开始老是会比较慢,由于那群程序员告诉他有许多设计什么的额外工做。计划是再接下来每两个月完成一层楼,这样完成整栋6层大楼须要13个月。加上测试和发布,15个月足矣。况且,第五层和第六层面积要小不少,应该会快很多。

他把全部人召集到一块儿开了一次长达一天的会,解释敏捷开发的成功案例和他的计划。全部开发人员都赞成敏捷是时下最早进的管理模式,其中有两个彷佛还看了很多相关的书籍教程以为计划很是科学,在会议上盛赞了半天经理的英明神武,经理决定下次有机会提拔他们。项目红红火火的开始了。

 

 ----------------->>> 分割线  <<<----------------------

 

在经理强大的我的魅力感召下,敏捷进行的比想象得还要顺利。一开始几个员工自愿加班加点,后来更多的人加入了他们。几乎天天都能看到他们在会议上为新完成的功能欢呼雀跃。不出所料,一开始的工程在20天内就完成了。经理给了项目中每个人一笔不菲的奖金并在部门会议上表扬了每个人。开发人员充满干劲,可以拥有如此优秀的团队,简直是上天的恩赐,经理睡得比任什么时候候都踏实。白天有人向他提到项目架构的风险,也许该给他加点薪水了,明天也有必要向全员强调下保证质量。

项目进度一路高歌猛进,团队里的每个人都坚信本身所在的团队是数一数二的,没有别的团队能在如此短的时间里发布如此多的功能。在前6个月他们已经完成了至关于3层大楼的全部商铺,惟一的问题是有比较多的零散BUG,大概是士气高昂之下你们都没有把项目质量的要求太放在眼里,以往的经验来看这些不会成为风险,经理本身也以为这没什么可担忧的。

第一次问题出如今第7个月中旬,有两个开发在例会上告诉你们ORM模块线程不安全。经理对此一头雾水,但彷佛全部的开发人员都认为形势很严峻。有人提出在保证进度不拖慢太多的状况下进行必定程度的返工。有时候这在所不免,技术负责人说这就像是给大楼的第一层较小的柱子加一个支撑结构,应该很快就会完成。很快项目回到了正轨,只是更多的人偶尔提出设计架构的缺陷,但咱们拥有如此优秀的团队,你们总会有办法作好它。项目进行到中旬,这每每是最考验项目经理能力的时候。经理表现出他在软件项目上的强大经验适时的激励组员,强调这个项目完成后公司能得到的巨大收益,全部人倍受鼓舞。

顺境只持续了两周,在第8个月初,计划中要进行的5个功能点开发有2个停摆,问题仍是在ORM上。组里最年轻的程序员提出项目架构有巨大缺陷,须要大规模重构。其余全部人都认为这样作风险巨大,而咱们目前面临的问题并无想象中那么严重。只是须要在更大的层面上返工一下,而后在某些不能工做的地方作点特殊处理。经理这时候隐约感受到彷佛有点不对劲,好在项目进度已经足足提早了两个月,就算有问题也还有的是时间慢慢解决。他在例会上允诺了正在想公司为每个组员争取利益,你们站在同一阵线上努力前进。例会很是成功,员工们又开始自愿加班。 

此后又有若干次功能开发上的问题,在你们集思广益下都一一获得解决,虽然进度的领先已经几乎不复存在,但大部分功能也已经能够工做了。

真正的问题出如今第11个月中旬,在全部人测试服务器负载时发现并行处理能力不足以支撑整个系统业务需求。开发人员分析后告诉经理这主要仍是由于ORM多线程处理有问题,而目前模块间耦合十分严重又致使不可能单独替换掉ORM模块。这就像是大楼的承重结构有问题,不把整个楼拆除根本不可能换掉哪怕其中的一根柱子。而底层的数据结构设计也有很大的缺陷。产品经理开始妥协砍掉上层一些不过重要的功能以期待系统能知足大多数需求,可技术负责人说仍是不行。时间仅剩4个月,这时候已经没有人说要从头搭建架构了,由于全部人都知道时间不够。经理也清楚,在没有把握的状况下本身跳进这坑里极有可能被坑死在里面,将来也没可能再在这个公司混下去了。你们开始质疑需求的合理性,推脱责任,和有问题的模块划清界限。愈来愈多的BUG被证实与架构缺陷有关,不大规模重构就没法修复。项目陷入了一片混乱,全部技术人员天天开会思考风险较小的办法处理,但彷佛每一个方案都被推翻。知道12月初,一些人开始提出除了大规模重写别无他法。经理为此天天没法入眠,他天天陪员工加班到深夜,巴不得本身也上去写两行代码,若是能帮上忙的话。他开始询问每个技术细节,但愿本身能为你们或多或少提供点意见。但这除了增长了更多的会议以外彷佛没有什么效果,甚至有人抱怨他占用太多时间。

噩梦通常的日子又持续了两周,眼看离交付只剩3个月,经理感到史无前例的无力和沮丧。自家小区边又开始建造房子,灰蒙蒙看上去一片混乱,看不出来工地里在干什么。这种工程竟然可以成功,果真造房子比造软件容易多了。

 

 ----------------->>> 分割线  <<<----------------------

 

部门领导每周都会询问这一重要项目的状况,以往经理老是会给出超出预期的答案。可最近连续几周项目没有任何进展,经理在周会上根本不敢面对你们。领导还在安慰他说努力努力,你们都在同一战线上。激励下属,做为这个民族管理学的最核心精髓,经理对此再熟悉不过。只是,假如一开始你们没有被热情冲昏头脑,是否是就会发现问题?会不会有人其实一开始就已经发现问题而没有说出来,只由于说出来会你们耻笑太悲观?

看着窗外远处建筑工地一片混乱的情景。也许房子只有这一种造法,前八个月注定尘土漫天,不会有一家商铺靓丽地出如今世界上,只有打桩机的轰鸣和巨大的钢筋混凝土柱子,商铺只在最后6个月以惊人的速度完成。

次日,经理找来了全部的开发,询问了每个人的意见后宣布,全部底层设计架构重作。

咱们一块儿回到那一片漫天的尘土中去。

相关文章
相关标签/搜索