案例讲解一:如何两周重构一个濒死项目

一、当时现状
1、项目情况
项目已经开发了半年,投入了公司大部分的人力,有专门的测试员。项目部负责人本身的管控力度还不够,然后这个项目其实是已经失控了,但是他肯定不会去跟老板说已经失控了,所以那就按计划去投入上线吧。
上线的结果就是整个系统运行都非常的慢,简单说就是你点一个链接要等好几秒钟这个列表才显示出来。然后程序员是那种责任心不够强的,也不愿意真真正正的去解决问题。
这个项目是一个全渠道营销平台的项目,需要跟外部的好几个系统做对接,整个项目有差不多10个子系统吧,算得上还是比较复杂的。

2、具体情况
1)人员配置
1个测试经理(兼项目经理,也就是对客户的第一责任人)
3个经验丰富一些的高级程序员
4个普通程序员,普通程序员里边有一个是不错的小伙子,做事是比较用心的,但是做的很郁闷
微商城是找外包做的

2)所用语言
java、php

二、整改过程
1、详细了解这个项目的本质的东西在哪里
我通过详细的和项目经理沟通完了以后,初步了解到就是功能大致上是有的,只是运行起来很别扭,而且运行起来非常慢。
接着和团队里边的高级程序员做了详细的沟通和了解,同时让他们跟我讲代码。在这个过程中,我基本上就知道这三个人都是那种混的,反正他有水平,你公司也不可能把它开掉,,但是他们都不是那种会真正花心思去解决问题的思路,反正就是你老板让我做什么我就做什么,你不叫我就不做。
和每一个普通程序员也都做了交流,然后我就发现了,这个普通程序员里面有一个非常不错的小伙子。
还有一点要说一下,就是当时我过去的时候我正好找到了一个我以前带过的小弟,小伙子给我的印象非常深,他的整个技术水平还有他做事认真的这个态度都是我非常欣赏的,所以我在上一次和他共事之后就一直关注着他,和他这几年来一直保持着很好的联系。 进这家公司的时候,当时我就决定要挖他过来。有了他,我知道我是可以处理掉任何技术上的难点。 我来负责把控大局,做好项目的管控,技术的东西交给他去负责出方案,最后我来把关,那么我们是能够配合解决掉难题的。

最后分析出来的结果是:
1)这个项目可以救活过来,因为功能其实都已经做得差不多了,只是说由于这些功能之间相对比较孤立,使得整个系统最后跑起来的时候有问题,想要解决这些问题需要整改的代码量其实并不大
2)项目经理也就是测试经理还是比较负责任的,但是那几个主力程序员不行,没有责任心,这个是这个项目能够出现现在这个情况的最大的病根,然后因为我这边带了一个能干的人过来,所以这个问题也能解决。同时在普通程序员里面那个比较不错的小伙子,可以提拔上来。有了这两个人那么整个人力配置这一块基本上就OK了
3)系统架构这一块话呢,需要做一个重构,从原来的那种各个子系统相互孤立方式变成用业务组件的方式去抽象,把核心的业务功能合并到一个个业务组件里
有了以上分析,那么我就知道,依赖当前资源能够救活这个项目,然后我评估出来的话呢,大概是两周就可以重构完成。

2、具体实施过程
首先是和客户解释说再给我们一点点时间,让他们不要把我们给放弃掉了。
接着引入禅道,全面地对整个的项目开发管理过程做精细的管控,把每一个详细的工作任务全部都给细化了,每天我要干的事情就是去监控这些任务是不是按时完成了,同时我来做代码review。 核心的事情交给我说的那两个小伙子去做,原来的主力程序员直接边缘化,其他的普通程序员给他们打气说我们一定能够完成这个事情。 当每个人看到他每天做的事情都能够得到我的肯定以后,整个团队的风气就不一样了,然后就很顺利的按计划两周完成的重构。
重构完成以后上线那么这个时候整个系统的一个响应已经比以前有了很大的不同,基本上来说是属于可以用了。当然不可能说两周就把一个项目完全搞定,接下来的更重要就是后边的一个持续的优化,每周做一次迭代,每周更新一个版本,让客户看到我们在不断的进步,不断增强客户的信心。
然后就没啥了,后面其实就是不断持续改进的一个过程了。

 

下图是这个项目的系统架构:

 

posted on 2019-03-19 11:26 dd_macle 阅读() 评论() 编辑 收藏

版权声明:本文为ddmacle原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ddmacle/p/10557460.html