查看原文
其他

半路接手项目有多难?教你做个接盘侠高手!

2017-07-18 51CTO开发者社群 51CTO技术栈

被无数烂尾项目折磨的哈韩浪子,一直从事 JavaEE 开发,踩过的坑无数,承接别人的项目也有几个。


新人或者刚入职的程序猿,都会面临一个问题,如何快速接手熟悉项目?本期挨踢故事汇哈韩浪子教你做个快乐的接盘侠高手。

哈韩浪子 JavaEE 开发

半路接手项目被吐槽


作为一个程序员,喜欢浏览知乎这样的知识分享平台来拓宽视野。发现经常有人在提这样类似的问题,例如如何快速接手熟悉一个项目(从代码角度)?新手如何快速上手项目?


透过题目,哈韩浪子能感受到提问者那渴望求知的眼神,他看了问题底下的评论,大家都没有给出方法,而是变成了吐槽。


吐槽选登

A:要么忍要么滚+10086,心理一万个草泥马还得面带微笑。


B:刚毕业就进了这样一个项目,现在盘算着吃饱经验滚球了。


C:太多了。。。专业擦屁股户 ,再熬到年底,准备跑路了。爱谁擦谁擦吧。


D:我以前也可怂,领导给我安排工作,我好多次都默默接受了。昨天真的是爆发了,凭什么我好说话所以次次都是欺负我?


真的是兔子急了还咬人的感觉,冲到领导办公室辩论,平时领导觉得我不怎么争论,昨天真是辩论赛水平,有理有据。


领导:考虑到你的能力,我们特意给你了一个标杆项目让你去做维护,你一点都不知道感恩。


程序猿:项目交接文档缺失,项目业务代码混乱,项目一直没有确定边界,导致现在需求膨胀。这个项目也是标杆?


领导:这些都不是问题,你看你要是把这些问题都处理好,不就正好体现出你的能力了啊,你看这是一个多好的锻炼机会啊。


程序猿:你瞎说,据我所知你在例会上可不是这么说的(一般都是项目组领导参加,程序员没资格参加)。你说的是处理好这个项目是应该的,处理不好就是能力差。


领导正色道:我就是给你一坨屎,你也要开心的吃下去,不然你可以走啊,会写代码的满大街都是


看到大家这样的吐槽,哈韩浪子感到很难过。因为他也曾经经历过这样一段时期,那时候他还是个愣头青,领导说啥就是啥。


但是后来发现柿子还得捏软的,况且就算他退让了领导也不喜欢,一直都是干的多拿的少,就算最后离职还把他的年终奖坑了。


如何接手遗留项目


人生就是在经历中成长,所以哈韩浪子要分享一下接手项目的经验,做一个快乐的接盘侠。那么我们应该如何接手遗留项目呢?


接手前的准备

接手前,先要了解一下这个项目目前的状况,可以咨询主管这个项目的领导,当然如果这个领导忽悠你,跟你说这个项目是标杆,或者说这个项目怎么怎么的好,那么你就要多思考一下是不是一个坑了。


这个时候你就需要领导提供项目的 bug 修改单或者是需求变更单,这样大致能客观的展现出项目存在的问题。


如果 bug 单里修改的东西很多,或者需求变更频繁,那么就不建议再接手这个项目了,不然最后难受的是自己,你把烂尾项目处理好了,是应该的,处理不好就是你能力差,其他同事也是站着说话不腰疼的去挤兑你。


如果项目的 bug 单和需求变更单不是很频繁,这个项目还是可以接手的。


接手后的第一件事情

立即着手使用项目,把项目的流程先跑通,然后了解项目的设计目的,因为这些内容就好比是一个灯塔,能在大方向上给你指明道路,并帮你将代码片段串联起来,把一个功能点的代码从数据层,service 层,到 controller 层理出来。


做到能快速定位相关位置,还有每一层之间与项目相关的配置文件的熟悉,例如有定时任务配置文件,加解密配置文件等,从而形成一个整体。


我们要记住越是复杂的项目,其目的和设计占的比重越是重要。


把项目拆解,编写自己的项目文档

项目难,往往是因为不了解,看着一大堆东西,心理上首先就有压力。一定要顶着压力往前走,把项目分模块的去了解,通过代码去理解业务。


一个系统一定有使用频繁的模块和非使用非频繁模块,这个可以通过给客户的使用手册来了解。


如果项目缺失具体的设计说明书,那么就需要看相关功能代码是怎么写的,通过了解代码和使用项目来了解业务流程。


同时要学会编写文档,主要是让自己好理解这个项目。因为你接手了这个项目,就意味着项目再出什么情况都由你自己承担。


哪怕出现的问题是由于项目设计,或者开发期产生的,也得由你承担。因为编写文字不像说话,耗费的时间会多一些,在打字的过程中,我们会花费心思去组织语言和思考,这会让我们发现更多项目上的问题。


进入维护状态

当我们了解了项目的业务和相关的代码,就算正式接手了项目,可以开始处理项目中的实际问题。


同时我们要养成每天下班把生产日志拿来看一下,看看项目中是否存在潜在的问题,比如内存开销过大,死锁等问题。

  • 看日志主要看 error 日志,确定所呈现的 bug 是紧急还是非紧急的。紧急的,立即就要着手去修复。同时要写邮件抄送给相关领导。(不然你把问题处理好了,领导也认为你没有工作量)

  • 查看服务器的 CPU,内存等开销。这个不必天天进行。

  • 写一些 SQL 脚本,来检测数据库表里是否出现了数据重复,垃圾数据。主要防范出现 SQL 注入等问题。

写在最后


唯有经历过以上所有步骤,我们才能成为一个专业的项目接盘侠,然后开心快乐的成长,对于之前负责项目里给你留的坑也好,bug 也罢,我们当然选择原谅他!

如果你也愿意分享你的故事,请加 51CTO 开发者 QQ 交流群 312724475 联系群主小官,期待你精彩的故事!


作者:51CTO 开发者社群

本文来自 51CTO 开发者社群挨踢部落故事汇原创文章,转载请联系授权

精彩文章推荐:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存