谁也不知道城西银泰豪华的大楼是什么时候出现的。即使像我这样天天上下班都经过那里。
记忆里似乎巨大的塔吊和漫天的扬尘在那里飞舞了大半年,也许是一年有余。几个月前突然某一天经过时,看到了颇具规模的大厦似乎正在慢慢形成。直到最后几天,当最后一个丑陋的脚手架被拆掉,才发现这里竟凭空出现了如此巨大的庞然大物。
不禁感慨人类的才华和创造力。
相比之下软件行业似乎显得很渺小,通常很难向一个行外人介绍一款“伟大的软件”,因为他们很难理解一堆.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个月以惊人的速度完成。
第二天,经理找来了所有的开发,询问了每一个人的意见后宣布,所有底层设计架构重做。
我们一起回到那一片漫天的尘土中去。
相关推荐
只有这样,软件项目才能顺利完成,避免项目失败的悲剧。 在软件项目管理中,估算技术是一个关键的环节。有效的估算技术可以帮助软件经理科学地估算项目的难度和时间,避免项目的延迟和失败。然而,在实际操作中,...
软件 管理 项目 评估 软件项目评估失败的10大原因 项目管理
《软件工程的秘密:软件开发项目为何失败》一书由George Stepanek撰写,深入探讨了软件项目失败的原因,为软件工程师、项目经理以及所有参与软件开发流程的人员提供了宝贵的洞见和经验教训。以下是对该书核心知识点...
然而,许多软件项目最终未能达到预期目标,导致项目失败。其中一个关键因素是错误地依赖于不适用于软件开发的项目管理工具,例如Microsoft Project和Microsoft Word。这两款工具在工程类项目管理中表现出色,但并不...
综上所述,软件项目管理的研究涵盖了质量决定因素、反模式、项目失败分析、用户参与度、项目生命周期、质量驱动、项目组合管理、管理策略、角色定位、开源项目印象管理、产品线变异性管理、代理系统支持、问题管理...
《软件工程的秘密:软件开发项目为何失败》一书由George Stepanek撰写,深入探讨了软件项目失败的原因,为读者提供了宝贵的见解和教训。在软件工程领域,项目的成功与失败往往决定了一家公司的命运,因此理解项目...
在IT项目管理中,尤其是ERP项目实施过程中,项目失败往往是多方面因素造成的。根据美国GartnerGroup公司的调查,项目失败可以归结为四个主要类别: 首先,项目组织原因是导致失败的关键因素之一。这包括项目经理的...
项目管理是组织中至关重要的活动,它涉及到...解决这些问题需要组织采取变革措施,投资于敏捷方法和高效的项目管理软件,以提高沟通效率,确保项目目标与组织战略的一致性,从而降低项目失败的风险,提高资源利用效率。
《软件项目管理教案》是针对“01336软件项目管理”这门课程的第二版教学材料,其中包含了一份详细的PPT教案。这个压缩包旨在为学生和教师提供全面而深入的学习和教学资源,帮助他们更好地理解和实践软件项目的管理...
【软件项目总结报告模板】 软件项目总结报告是项目完成后对整个开发过程的全面回顾和评估,旨在记录项目的关键信息,分析项目的执行情况,以及总结经验教训。以下是对报告各部分的详细说明: 1. **引言** 引言...
在当今的信息时代,软件项目的开发已经成为了推动社会进步和企业发展的重要力量。然而,软件项目的成功不仅仅是依赖于编程语言和开发技术的先进性,更多的是依赖于科学有效的项目管理。项目管理中的关键工具之一,...
同时,项目中还可能涉及风险管理,识别潜在的风险,制定应对策略,以减少项目失败的可能性。 沟通管理也是不容忽视的一环。有效的沟通能确保团队成员理解一致,避免误解和冲突。这可能包括定期的项目会议、进度报告...
9. **风险管理**:识别可能的风险,制定应对策略,通过风险登记册跟踪管理,降低项目失败的可能性。 10. **沟通协调**:项目经理需具备良好的沟通技巧,定期召开项目会议,更新项目状态,解决团队冲突。 11. **...
本项目涉及的主要文档包括“软件项目开发计划”、“开发进度周报”以及“项目开发总结报告”,这三者构成了软件开发管理的核心组成部分。 1. **软件项目开发计划**:此文档详细阐述了项目的整体目标、范围、时间表...
软件项目管理学习心得(精选5篇)参考.doc 软件项目管理学习心得(精选5篇)参考.doc是软件项目管理的学习心得,涵盖了项目管理的基本概念、项目集成管理、项目范围管理、项目进度管理、项目成本管理、项目质量管理...
6. 风险管理文档:识别、评估和规划可能的风险,制定应对策略,降低项目失败的可能性。 7. 人力资源计划:确定项目团队的角色、职责,以及团队成员的技能和经验需求。 8. 沟通计划:定义项目中信息交流的方式、...
在Microsoft Visual Studio 2010中,项目创建失败是非常常见的问题之一。这种问题的出现可能是由于多种原因引起的,但是解决方法却往往简单易行。下面我们将详细地介绍VC2010项目创建失败的解决方案。 问题描述 在...