我是如何带崩一个项目的

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxh19800626/article/details/84672300


我是一名SM,在过去的一个月里,我把一个项目带崩了。在最近的几天,我每天都在反思自己,我都在问自己以下几个问题:

  1. 我做错了什么?
  2. 我在其中占有多重的因素?
  3. 为什么团队每个组员都累趴下了?

以下内容,我将回答以上问题,并在最后说一下我的补救措施。

一、项目和团队背景

首先给大家说明一下项目背景,以便各位对此项目有更清晰的了解:
1.该项目是政府项目,由我带领开发。
2.需求频繁变化,需求方对需求也不甚了解。曾在一个月内需求变更超过3次,都是主流程变更。
3.项目大小按照最初需求估算,约300人天左右,由于需求的增加,工作量增加到1000人天。
4.项目采用前后端分离、微服务架构,而我们团队没有足够的前端开发人员,并且没有测试人员。
5.我前期进入开发,后期仅负责需求对接和管控进度。
6.团队成员共10名,团队临时组件,组员之间缺乏默契。

二、我做错了什么

1. 除了监控进度,还要管理质量

在项目的开发初期,我制定了一份详细的开发计划,用于指导整个开发过程。开发计划交付与了客户,而答应了的事情就要做到,所以在整个项目过程中,我对进度管控很严。我定期检查功能是否完成,定期和PO汇报情况,保证了开发进度顺利推进。但也由此埋下了祸根,仅仅看需求是否完成,而未关注完成的质量如何。

2. 项目质量出现了许多细节性问题

比如:
1.部署后,测试发现两条主流程都走不下去,就是登陆都有问题;
2.有些功能,系统提示成功,但实际上并没有真的成功,排查问题花费了太多时间;
3.代码提交流程混乱,代码覆盖的问题较多;
4.有些流程状态是错误的;
5.业务边界混乱,缺乏统一的流程标准,导致开发人员随意跨越边界;
等等问题,就不一一列举

反思:
1.进度和开发速度固然重要,但以质量换速度不可取
2.如果开发时间和质量冲突,优先保质量,毕竟你埋下的坑,总是要坑你自己的
3.再困难的情况下,也要保证基本测试
4.时间极其不允许的情况下,也要保证主线功能顺利执行

3. 既要给予信任,也要保持警惕

项目中的几名成员,都是合格的开发,对使用的框架非常熟悉。其中两名还是基础版本开发成员,对需求也很熟悉。所以项目中,我放心的把整个项目交给了他们。基于对他们的放心,加上其他项目事情繁杂,对此项目关注度,对他们的关注度就不够了。

我在项目中给予了他们非常充分的信任,信任他们可以把一切事情都做好。但我没有在正确的时候给予他们正确的指引,项目中出现的困难点,我也没有帮助他们解决,甚至于没有给出思路。所有的一切,都靠他们自己完成。我在这个项目里做的,就是对接PO,催进度。再无第三件事。

反思:
1.不论什么原因,都要关注到项目成员的状态
2.给予信任没错,但也要适当保持警惕,他们多少会因为经验问题疏忽遗漏一些问题
3.给予信任,也要给予帮助,不以时间为理由推脱你应该对他们进行的指点和帮助。毕竟现在剩下来一分钟,以后要花一个小时去弥补。

4. 缺乏全局掌控,指派专人负责

这是我在项目中做的最错误的地方。

由于种种原因,我无法掌握到项目的每个要点和细节。而项目中有三个开发。我并没指明其中某一个来负责整个项目,所有事情都让他们自己商量。从客户对接来的问题,我也是仅告知对应的开发。整个项目中,没有一个人对项目中的每个要点了如指掌。

反思:
1.手里捏着管理的权利,却没有做到管理的事情。是我在这个项目里最大的问题
2.授权!授权!授权!如果自己无法亲力亲为投入项目管理工作,就授权给团队某个成员管理权限,让他代替你去做管理工作
3.管理一人,总比管理多个人轻松,也更有效

5. 要控制需求,更要控制流程

初开始针对项目的需求,感觉项目工作量不大、时间够。基于以上原因,我掉以轻心,没有在项目初期进行项目的设计和规划,未指定任何开发规范。仅仅告诉开发的同事要多复用,也未检查他们是否真的复用了。

项目开发中的需求变更,客户反馈意见,我我都仅仅是告知他们一声,未做详细的修改规划,所有事情都靠嘴说,所有变动都放在了我和他们的脑子里。未对客户的需求变更做控制和管理。所有变更都压给了开发的同事。

整个项目以及其不规范的方式在运行,我也未在其中起到控制作用,项目开发一团乱麻。

反思:
1.不做设计,不进开发
2.以管理工具指导开发进行,开发过程中所有变更、反馈做记录
3.控制需求变更,拒绝不合理的需求
4.需求变更规范化操作,统一变更,而不是直接压给开发

6. 无论什么情况下,都要进行code review

整个项目过程中,我主抓需求,忽略了查看代码,未指出代码的任何问题。这也导致出问题后来我花了成倍的时间来处理code review的工作,并且项目成型后的代码修改困难。项目开发过程中,也未让开发间互相进行代码review,也没有进行代码评审会。
其实代码中出现了很多问题,最后检查代码的时候,发现各种命名不规范、代码复用不到位、简单逻辑复杂写等等。而这些问题,很大一部分都是早期未做规定,未指定人负责项目、未进行早期code review造成的。开发各自为战,难免造成代码问题。

代码质量的问题,淋漓尽致的体现的在项目中,项目中的诸多bug,都是因为代码不规范引起的。甚至于开发人员自己对自己写过的东西,都有些拎不清了。

反思:
1.代码质量非常重要,代码越规范bug越少
2.代码互评能让开发更注重自己代码的质量
3.code review非常有必要,越早期的code review越能有效的节省后期的时间

三、 柳暗花明

1. 我怎么填坑的

项目部署后问题频出。花了8天时间来处理这个问题。幸亏有其它项目组的人员抽调出来救火,问题得到了解决。
目前暂时解决完毕,我简单说一下我是怎么填坑的:

  1. 和开发主流 程的同事详细熟悉了所有需求要点
  2. 基于我对项目需求的熟悉,我花了三天把所有主流程的所有代码分析完毕,做出了我认为应该的修改,并实施部署到生产环境测试(这是在给开着的飞机换引擎)
  3. 每天花超过12个小时来进行code review 和修改,几乎每天code review + 修改到凌晨2点多(仅修改了问题较大且影响较小的地方。小问题未修改、牵涉面较广的地方未修改)
  4. 每次上班时间的修改让开发同事坐在旁边和我一起进行,我进行修改,开发同事在一旁监督。
  5. 优化功能点,把我发现的提示问题,和优化点都同步修改进代码中,确保用户体验不要太糟,以期能挽回一些用户心态
2. 我所吸取的教训总结
  1. 先设计,后开发
  2. 管理权下放,项目中必须有人全身心负责
  3. 无论什么情况都要进行code review
  4. 压缩质量得到的进度保证不可取
  5. 开发周期不合理决不答应客户。否则坑了自己坑了同事,更坑了客户。

猜你喜欢

转载自blog.csdn.net/zxh19800626/article/details/84672300