接手烂摊子该如何做。

何为烂摊子?

在我们做软件项目的时候,有时会有这样的一件事,尤其是刚跳槽的时候:

我们需要接手一个已经完成7788的项目,这个项目用是可以用,但是问题很多,譬如说,时不时系统崩溃,业务逻辑有各种各样的小问题,甚至是用户体验非常差,代码完全无法直视,想问业务逻辑,却无人能讲的详细,尤其是跟数据结构有关的知识点(原来的程序猿都回大森林了)。好吧,有幸我也接到了如此一个项目,再经过1-2个月的艰辛,总算对这种事情的处理有点眉目了,先讲讲我的经历吧:

一开始,这个WEB项目客户已经在用了,但是还没有验收。客户老抱怨,我打开一个操作频繁的页面,老是需要等上10来秒中,
然后录数据的时候,页面有时候还会假死,有时候又会刷新,完全不能键盘操作,要用鼠标一个一个点。 -------------------用户体验差。

然后,经过公司内部审核,决定将这些页面性能优化,当然也考察了下响应速度慢的原因,于是,需要将这些页面优化。可是问题来了。要优化总要知道原先的业务逻辑吧,望着上千行的方法,望着一堆状态控制,望着密密麻麻的代码,业务逻辑完全和自己想象的不一样。这可如何优化呢。经历了一周的优化,结果效果却很差。为什么呢。自己也仔细想过,主要原因是不太敢动原先的业务逻辑。

再然后,上面也发现了这样也不是办法。决定快刀斩乱麻,索性重写,但要求业务逻辑不变。
这可难倒程序猿了。本来就是业务的详细业务不了解,重写好多也是照搬以前的逻辑。至少交代上去可以说是‘和原来一样!!!’, 但这样又有一个大问题,
重写了还是没理清楚业务。要修改的时候又会出现越改越复杂,可维护性越来越差。

看到这里,可能很多读者都已经发现了烂摊子的根本原因了:1.代码的可维护性极低,而原开发员早已离职(一般这种都是廉价开发员,工作经验很少),

2。 业务逻辑是口传, 设计是根本没有,开发人员想到哪,写到哪。

那我们要如何接手这种项目呢, 经过这么长的时间纠结,也听过类似的经验,
好多都是完全推翻原来,完全重来。正所谓一朝天子一朝臣。原先我还不以为然,现在很真的挺欣赏的。有魄力,能够决定重来并得到允许(当然好多都是从局部开始的),
重做的过程也是理清业务的一个过程。不要在纠结与原来的逻辑。 发现与原来的不一致,不正是完善业务逻辑的一个过程么。

有朋友如果有更好的想法,可以来说说。

接手烂摊子该如何做。,布布扣,bubuko.com

时间: 2024-10-24 12:50:45

接手烂摊子该如何做。的相关文章

如何愉快地接手一个项目

都说程序员最讨厌看别人的代码了,总是觉得对方的代码写的凌乱不堪,怎么看都看不懂,还不如自己重新写一份. 最近刚刚接手一个项目,做二期开发,刚拿到项目,首先就碰到这个项目使用Maven做的,之前有没学过,一下子就有点烦了.再加上使用Maven导入后启动项目还报错,就更加怒不可遏,妈的你给我一个项目居然还跑不起来!好不容易利用周末了解了maven的一些基础,把pom.xml文件改动了一下,虽然启动时还是报错,不过是报另一个错误,试了一下localhost:8080/xxx,项目可以跑起来了!有页面显

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

跳槽穷半年,转行穷三年,死守会穷一辈子

好久没更新博客了,终于生活有回归正轨了.enjoying... 金三银四,赶在2015年的银四的末尾跳槽了.换了个新公司,在新环境已经呆了一周. 2012届毕业生,从毕业就一直在一家创业公司干了近3年,公司一直都是3个人code,全公司人员加起来不超过10人,从事.net开发,旧东家是接项目做,所以3年接手的项目少说也有7,8个了,都是中小型项目.想跳槽其实去年9,10月份就有想法了,感觉做了三年,一直都是在做重复的code,做的也没劲了,在加上公司氛围变了,去年8月份离职两个,个人因素还有一个

oninput onpropertychange 比较和坑

前几天接手一个项目  需要做这样一个界面一开始想用placeholder.结果如你所愿 placeholder在ie下有兼容性问题,就放弃了 (有人说网上不是有placeholder兼容的方法嘛  但是那样写过以后 我后面的需要获取值 就比较麻烦很多  ) 目前自己就想到两种方法一是做成这种使用label,,但是由于是公司内网  简单快捷  就使用了这一种: 但是作为一个前端怎么能忍受这种偷巧的方法呢 于是想到,在input框下面添加一个div内容为请输入部门,然后通过定位到input框内来解决

从程序员到项目经理(16):你不是一个人在战斗--思维一换天地宽

程 序员和项目经理是两种完全不同的岗位,工作方式也大不一样.以前是一个人单干,现在是团队一起干,以前是自己亲自干,现在是指挥别人干,这是一种巨大的变 化.要适应这种变化,首先必须要转换思维模式.思想决定行为,思维模式就好比在陌生城市找路用的地图,拿着过时的地图,自然无法到达想去的目标.思维不换 走老路,思维一换天地宽. 1.从单干到群干 从程序员到项目经理,不只是职位的变化,其工作性质也发生了根本性改变,简单的说,是一个从单干到群干的过程. 严 格来说,程序员并不是单干,他们也是在团队中,需要具

静态变量和Session的使用

最近做一个项目,一个表格的数据需要在会话过程中一直存在.因为接手的是别人做过的东西,按照原来的风格沿用了上面的静态变量来存储数据的方法: public static List<Word> Words=wordrList; 后来测试时发现用Chrome和IE同时打开这个项目,数据会被覆盖掉,比方说Chrome传进来了数据A,然后IE传进来数据B. 此时Chrome什么都不做,只刷新一下,会发现原来的数据A变成了数据B,也就是说静态变量被新传来的数据给覆盖了.要是用静态变量来用户变量岂不是乱套了?

曾经2014,现在2015

在过去的一年中其实自己真正做开发也就是在6.7月份开始的,置于2014的上半年,几乎是没工作(无业游民).因为一些原因我在6月份找了一份工作,当时的就像这先干着,有好的工作再跳槽.经过一月的工作之后,公司并不像我想象的那样,我毅然决然的辞职了.来到一家做外包的公司,到公司第2天,领导就叫我去青岛出差,这下倒好我在青岛整整待了4个月,当然中间陆陆续续回家几次因为牵扯中秋和十一. 在青岛是做现场开发的,其实压力蛮大的.一是经理老是催促,这个在做完了吗?那个什么时间我能看到效果:二是客户也经常”挥之即

iOS程序main函数之前发生了什么

我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口.但对objc了解更多之后发现,程序在进入我们的main函数前已经执行了很多代码,比如熟知的+ load方法等.本文将跟随程序执行顺序,刨根问底,从dyld到runtime,看看main函数之前都发生了什么. 从dyld开始 动态链接库 iOS中用到的所有系统framework都是动态链接的,类比成插头和插排,静态链接的代码在编译后的静态链接过程就将插头和插排一个个插好,运行时直接执行二进制文件:而动态链接需

2017年结

一:流水 1. 从1月份到5月份,继续点胶软件未开发完成的任务:如轨迹超视野的问题.喷射阀的支持问题.用basler+halcon替换Omron智能相机等.同时从3月中旬开始带新人熟悉点胶软件,以便把点胶机交出去,为后续接手"非标"设备开发做准备. 2. 6月初开始接手"LOGO二代贴装"设备,6月底随设备出差到OPPO,直到11月初回到公司. 3. 11月初至年末,主要工作是指导.配合量产LOGO设备和胶路检测设备的调试.穿插着神机的调试.芬能点胶软件功能添加.新