2016项目反思

毕业至今,大大小小的项目经历了十几个,有不少成功的喜悦,也有不少失败的教训。近来暇时,细细回味,时值2016年年末,略有感想。

算来,7年的项目经历,从最开始的用C语言写编译器,到最近的.NET的机构版。其中最成功的最喜悦应该属health care的UDN和实训平台的TTS,最失败教训最足当属机构版。health care项目组是我跟随zhong li老大做的第一个正式大型项目,第一次完整的接触正式的软件过程管理。全球数千人同时为一个项目服务,其中过程管控是我至今影响我最深。跨地域,跨平台,跨语言文化,跨技术种类,跨工种合作,协同开发。最终完成了微软打入中国市场的第一款医疗产品,其中所长,至今收益匪浅。可惜由于微软的战略调整,在全球裁撤了health care。这个项目也算不得善终。

TTS是我独立主持一个组成块的第一个项目,往后所有主持项目的经验大多来源与此。虽然只是一个不到二十人开发小团队,但是也涉及软件开发各个方面,幸好有严头,孟哥扶持,首次项目,磕磕碰碰也获得了成功,我们项目组研发了中国首款医用实训平台,至今,全国几十家医科院校和大型医院的实训系统全年运作,每年成千上万学员使用,长沙的湘雅在我离开天堰的时候正在洽谈商务,不知最终结果如何,如果用上,也算我为家乡做了点贡献。这应该是我目前最自豪,同时也是最累的一个软件过程,通宵达旦,全国各地四处“出游”,被指着鼻子骂这都成了一个常态,同时也是这个过程,让我真正了解了如何在全局掌控项目,将数年所学进行验证和修正,可以说,在完成这个项目后,我真正具备了一个软件管理者的能力。之后的智能城市监控系统,sbs,中医症候人等等项目都顺理成章,只不过是在增加经验而已。当然,这中间也有流产项目,不过管理问题导致的项目失败不多。

然而,今年,2016年,我遇到了软件生涯最大的失败--机构版项目。对于这个项目,给我的只剩下了教训,滴血的教训!延期,质量不达标,软件成员心散,管理缺失,最终完全失去控制,险些项目流产。这个项目的教训,我需谨记,以备他日只需。

一,简单粗糙的项目启动

至今,我都回忆不起这个项目的启动了,没有需求验证,没有分析,我现在都找不出一张我启动这个项目依据的图纸,就是做了初步的功能了解,然后就,说的好听点是义无反顾,说的不好听点就是“没头没脑”的开着小破船驶向风雨未知的大海。我影响最深的就是4.30,一切为了这个日期服务。然后产生了高风险的计划,如走钢丝一般的过程。承蒙公司仁慈,未追究责任人的具体责任,但是我应当负有不可推卸的的“历史”责任,作为项目主持方,未能及时根据专业知识组织决策层的错误决策,而是盲目开启项目,这是作为一个项目主持方最大的失败。

基于此,有以下几点反思

1,公司的最高管理者或者管理层,应该制定一个正确的可实行的阶段目标,而不是指定一个时间。具体的日期,具体计划应该由手下的专业团队进行科学的判定,最高管理者或者管理层根据这个判定决定是否执行这个计划。这不应该是一句废话,应该是开始一个软件过程的第一层约束,通过这一层约束,将公司所有相关团队的思想进行统一,目标进行统一。如果一开始各个相关团队都不能清晰的陈述出进行某个项目的统一目标是什么,那么预计这个项目已经有5成概率是失败的。

2,具体预估团队(这里指参与这个项目个所有相关团队),应该预估包括成本,开发周期,可投入资源,可承受调整范围,核心价值,核心用户,推广程度等等细节,已提供给最高管理者或者管理团队有效的信息进行决策。同时,预估团队应该要保证预估的科学性和合理性,这就要求上层给予具体团队足够的分析时间和正确的信息,不应该说这样的话:这是过渡版本,给我初略时间,我要这个产品XX上线。这些都会给具体团队评估造成实质的影响,同时要求具体评估部门具备评估的实力和正确的态度。

3,不要急着动手,哪怕拿几天出来,捋清楚脉络,统一思想。每个项目执行过程中的具体负责人每天都应该有时间在思考目前过程中离目标有多远,有什么偏差,有什么风险。

二,过弱的项目管理和过强的行政干预

对于一个项目团队来说,管控者是核心,产品团队是至高无上的神。但是在机构版过程中,这个规则完全被打破,作为项目负责人,疏于管控,时间基本用于老产品的维护,代码开发和行政管理,真正投身到这个项目的项目管理精力少之又少。甚至有时间段处于无人管控状态。过多的人员对产品有权决策。对于一个项目过程,产品人员应该具备绝对的对产品的决策权。如果一个项目最高管理者或管理层通过,那么,产品人员对该项目由绝对的权利,对产品的决策权最优状态是只有产品人员在决策。当然,这只是一个理想过程,我也仅有在health care经历过。说句违心之话,在业界认为:最应该不说话的是对产品最具备发言权的老板。老板一般都在扣细节和比较竞品,然而,如果这都考虑不到的话,那还做什么产品经理,回家种红薯去呀!当然,绝对的权利,就必须有绝对的对项目负责的义务,就是说,产品经理应该对项目的全过程负责,包括盈亏。

三,项目成员的活路

毫无疑问,项目过程中,项目成员是主体,项目成员的工作热情,工作态度会直接的影响项目的质量和过程。那么就引申出了项目成员日常管理。我承认我深受欧美企业和成熟团队工作方式影响,对于项目成员的管理我只关注按期保质完成工作任务,至于其他方面,哪怕你是个杀人犯我都不管。但是我忽略了欧美文化和我国文化,成熟团队和不成熟小团队的差别,这也导致了成员管理的彻底失败。今年下半年我在一直都在考虑我并不适合做中国式企业的项目管理,理念的格格不入只会使项目遭受损失。我期望这家公司可以大跃进式的完成软件过程管理蜕变,但是我又忽略的这家公司成员所具备的基础素质,我看到了这家公司“资本主义”的萌芽,但是很快的又回到了作坊式中国式企业管理方式。这个过程我很茫然,不知道该如何选择今后的项目管理道路。公司或许也看到了这个情况,对我进行了调整,新加入技术经理进行全体管控,收回我的管理职务,目前我作为一个普通的开发人员,接受行政管理方式管理项目成员,就是给项目成员设定框框,加入限制,确实取得了一些成效,但同时,以这几月观察,也造成了责任心下降,相互甩锅,不愿承担责任的巨大问题。这我目前确实没有好的方案~~

四,缺失的质量把控和缺陷控制

举个例子,机构版有个主流程的bug,在上线后,客户进行反馈,说无法使用。这应该算是一个严重的质量事故。为什么会有这样的问题出现,当天我找了测试人员,测试人员告诉我,说这个bug早就测出来过,开发也提交了修复版本,并且还通过了验收,但是不知道为什么上线后就是出现了。然后我问了这个bug具体的开发人员,他给我看了这个bug在禅道上的具体描述和解决过程。显然,这个bug确实已经修复并且测试人员已经关闭。那么,问题在哪?根源在哪?后来,跟测试负责人聊天,他向我抱怨,他们测试人员总是在各个项目中调来调去,往往一个项目中某个提交版本来了,却突然抽调到了另外一个项目,原来那个问题就先放下,过了几天或者一两个星期,就忘了。然后我问了他关于那个bug是不是也是这种情况,他告诉我,执行这个版本测试的成员就是突然被抽调走了,这个问题又是常例的放下了。然后~~~~~ 出了这样的问题,第一想法就是测试人员不负责,开发人员质量低下,确实,具体执行成员负有不可推卸的责任,但是这家公司又什么时候挖掘过它深层次的原因:阶段性目标缺失,项目穿插混乱。

五,“会议”文化

这家公司是我见过的最能开会的公司了,往往一个会议就是几个小时,最终基本没有定论,一个简单的技术应用问题,不知道会扯到哪个天边去,同时,这家公司还流行“小会”,就是负责人碰头开会,这本身是科学的,负责人应该经常性碰头商议。然后,它的问题是“小会”上定论的一些结论不向下传达,甚至有时项目经理还不清楚“小会”上改变了什么。然后在完成的时候,“小会”成员会说:这个我之前不是跟谁谁谁修改了一块吗?怎么现在还是这样?然后大家一脸懵逼!当然,我目前无法对此文化做出什么评断,但是我认为,会议,适当就好,说有意义的话,其余的,下班说去。

六,不能有效管理用户需求

很简单的例子,教研对于题库的需求,我们在项目开始是有很多乐观的估计,貌似达成了一致的需求。然后在这个乐观的基础上,用户需求膨胀了,脱离了产品边界的期望出现了,用户不知道应该期待什么或者他们不能看到项目的实际进展情况,然后他们对项目失望了,我们的关系彻底的破裂了。

解决方法:

将期望值管理到一个合理的水平是项目经理的职责。

其中一个方法是将项目分解为有频繁里程碑的各个任务块或者项目阶段。你可以通过发布周期性的交付物给客户,让他们看得到他们将要得到什么。通过这种方式让客户在早期就能看到你们在做什么,从而客户保证项目交付物能符合客户的期望

七,不强调风险控制

在项目的生命周期中,有很多场合风险和异常会导致问题,甚至失败。感觉在这个项目中,我们至少犯了以下几点:

1 没有清晰的定义需求,结果是不能满足客户的期望;

2 过于简单的技术设计使得未来的方法没有变更与伸缩的可能;

3 无效的变更控制使的变更要求导致项目偏移原来的目标;

4 测试不充分导致错误和缺陷遗留到产品上;

5 在关键时刻缺乏关键人物的支持。

解决方法:

在项目开始的时候对风险和问题列表进行评审。其中一个好办法是使用头脑风暴列出可能的风险和问题,参与人员包括项目成员、其它参与过类似项目的项目经理等。在整个项目过程中不断对风险和问题进行评审。对上面例子中的解决方法包括:

1 对雇佣人士勾画出客户的需求,并使用清晰、明确的文档进行记录;

2 提问是否必须使用前沿的新技术,后者是否有能提供相同功能的更多方法;

3 由你的团队进行技术设计。这样有很大的机会获得一个可靠和灵活的设计,而且你的团队也有了可以继承使用的基础设计;

4 在项目启动之前与客户达成一个变更控制的流程,并且严格根据流程执行;

5将测试计划与根据客户要求制定的测试场景放在一起。保证你有足够的资源以及保证客户承诺进行测试;

6制定一个针对失去关键人物的风险的应急计划。

时间: 2024-11-07 21:57:38

2016项目反思的相关文章

高级四则运算器—结对项目反思(193 & 105)

高级四则运算器—结对项目反思(193 & 105) 本周我和一位韩国同学(71061105)一起结对编程完成了我们的结对项目——高级的小学四则运算题目生成器. PSP表格   PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 1.5h Development 开发 · Analysis · 需求分析 (包括学习新技术) 3h · Design Spec · 生成设计文档 5h ·

2016项目小总结

2016学习了python自动化测试 2016学习了http post flood 1.自动化测试,还有很多知识需要学习, 2.http post flood 我以后论文的写作方向,年前功能已经实现了,依然还有很大的优化空间,对这块业务理解的还不彻底 编写完v6代码的时候,已经渐渐的对这块有一定的掌握,由于只写了内核态的代码,所有对Flood框架还是有点模糊 项目小结: 这个项目是基于GET的代码来添加对POST Flood的支持 由于大量代码复用的缘由,实际我只写了差不多500行代码,对整个流

项目反思 - 项目管理需要一个平台,而不能仅仅靠“人治”

最近手上的一个项目正在逐步切换上线,看似简单的切换,但实际过程却是非常的累心.数据的梳理.运维的支持.后台的切换无一不是走一步一个坑,非常多的项目风险都被脑残的乙方项目经理一个个掩盖了,项目上线前夕才发现是"坑连坑",扑救的过程非常辛苦(非常庆幸我们还有补救的机会),作为甲方的项目经理,我也是责无旁贷,选人不当,项目过程看的不够细致,对项目风险预估的不够充分.我也在反思我犯的错误: 1.选人是大事:项目之初,我就已经注意到乙方项目经理这一关键岗位人选可能不太合适,当初提出了质疑,但很可

近期的一个项目反思与总结

近期手头接了一个智能硬件相关的项目,本来是想等自己更新完设计模式系列,然后好好总结一番的.但是正好碰到今天下大雨,正好碰到今天这个时候没有什么事情,然后正好碰到自己这个时候对于这个项目有一些吐槽的地方. 这个项目的背景是这样的:因为之前已经有成型的android版本,并且已经迭代N多次.可是基于android目前没有找到比较合理的体感设备,于是公司就决定采用微软的kinect来实现人脸.动作.骨骼等相关很酷的功能.那么问题就来了,要使用微软的kinect就意味着必须将现有的android版本重新

2016项目经验总结

经验总结 一年多也做了不少项目,遇到不少坑,也遇到很多的麻烦,有苦恼也有喜悦.这里就记载一些较为实用的项目经验 文件上传进度条 上传大文件时,客户端到服务器也是需要时间的,所以也要有一个这样的进度条.使用jquery的ajax,可以利用 xhr方法,创建一个新的xhr对象,然后使用xhr.upload.addEventListener绑定progress事件, e.loaded/e.total*100 得到的值就是我们想要的进度 关于EF EF用的差,会感觉满是坑.用的好会感觉轻松愉快.EF可以

2016项目总结0729-0805

以下是在最近做项目时遇到的一些疑惑,于是搜集资料总结如下 题外话:js中的数据类型有undefined.boolean.number.string.object等5种,前4种为原始类型,第5种为引用类型.         (排序从简单到复杂) 1.undefined.NaN.null的联系与区别 <1>类型分析:     (1)定义的值和定义未赋值的为undefined,     (2)NaN是一种特殊的number,     (3)null是一种特殊的object. <2>比较运

四则运算个人项目反思总结

项目规划与实际 本题的分析与解答基于以下个人项目需求: 个人项目链接 我的PSP2.1的表格如下,其中计算工作量这一步我不是很懂.我觉得是属于团队合作里的一项步骤,所以没有填写. PSP2.1 Personal Software Process Stages Time Planning 计划   Estimate 估计这个任务需要多少时间 30 Development 开发   Analysis 需求分析(包括学习新技术) 10 Design Spec 生成设计文档 10 Design Revi

新项目反思

ctpp这个产品的核心价值观. ctpp这个产品的数据来源. ctpp这个产品如何才能搞成呢. 定位  可视化分析. ######  什么是可视化. ######  可视化与可视化分析的区别和联系. ###### 如果让我们的前端在可视化这个技术的小领域里快速成长,并且展露头角呢. (1) 信息来源.必须跟随国际上最领先的机构后者大牛的步伐, 知道别人可视化领域里开发出了什么新的库.提出了什么新的概念.研发了什么新的图表.用了怎么样的技术去展示图表. (2)   看到我们公司内容提供给我们的帮助

架构反思案例之“分布式”的架构案例

不知道这个算不算一个分布式系统,我个人觉得是比较不错的一个设计,思路非常的好. 项目背景 需要设计一套解决方案,解决目标企业的数据管理,数据不同客户端同步,建设网站的需求. 项目设计 1. 网站的设计 传统的BS架构,用户可以直接登录网站管理数据资源,可以发布资源到线上.此外,用户可以直接登录客户端,完成同样的功能.客户端的计算能力闲置的时候,在征得用户同意的情况下,可以使用客户端完成一些并发的任务,比如数据整理,采集等等.同时提供线上与客户端同时并存的方式对于用户来说还是非常方便的,特别是对于