CTO来教你:技术人员突然离职,如何接手他的项目?

简介: CTO来教你:技术人员突然离职,如何接手他的项目?

如何快速接手别人的项目

技术人员,最讨论和最惧怕的,莫过于接手别人的项目、维护历史的遗留项目。尤其是那种没有任何文档、没有工作交接、没有人员协作的项目。个中痛苦和酸爽,真的是“如人饮水,冷暖自知”。

今天来分享一些技巧和工具,教你在面对技术人员突然离职时,如何快速接手他的项目。减少你接手和维护的痛苦。

拉取代码,本地运行

首先,先开通好git代码仓库的权限,在本地拉取签出对应的代码仓库。通常一个产品/一个项目,代码仓库都不止一个。然后,在本地先跑起来。

如果没有项目的部署文档,估计你要折腾一番。因为一个系统正常启动,需要解决:

1、语言版本和依赖包的安装:例如是PHP 5.6还是PHP7,是Java 7还是Java 18,是js还是nodejs还是ES6还是ts?其次,用composer安装好PHP的vendor目录包,或用npm/cnpm/yarn根据package.json安装好node_modules,或用maven/ant安装好JAVA的SDK包等。然后,这些还是很基础,很平常的。

2、然后在本地安装必要的数据库,例如MySQL、MongoDB、Oracle;启动必要的服务,例如:队列、定时计划任务;以及背后依赖的系统接口和服务。

3、获取之前可用的测试账号,进行登录。

熟悉发布上线的操作和过程

在本地能正常运行项目后,可以尝试一下,修改一些简单的文案,或者不修改,熟悉并操作一下项目上线发布的流程。因为你不知道什么时候,就要马上立即修复一个故障然后发布上线。

提前熟悉发布,演练操作,未雨绸缪是很有必要的。

要提前知道,发布是手工操作,打包压缩然后上传解压;还是通过发布系统进行的界面操作进行发布;抑或是通过Jenkins、Docker、k8s等工具系统进行的集成发布。

还要提前知道,发布会有哪些坑和注意事项,发布一旦失败,线上服务无法正常运行,将会对极大的灾难。

熟悉产品、熟悉业务、熟悉技术

接手一个旧项目,第一要义:尽快熟悉你的产品。这个产品具体主要功能是什么?是给谁使用的?客户群体是谁?目前大概注册和使用的用户有多少?上游供应商是谁?项目组的其他成员还有哪些?等等这些项目和产品背景信息都要搞清楚。

第二要义:尽快熟悉业务。业务很关键,你要对接手的产品所在的行业有一定的理解和学习。也就是我们通常所说的特定领域的业务。这个业务到底是做电商、还是做广告、还是做游戏、还是做ToB的系统集成,不同领域的术语和知识也不同。

第三要义:快速了解当前项目所用到的技术栈、编程语言、开发框架、数据库、环境要求等。技术是基础。

做好文档记录和保存相关链接账号

好记忆不好烂笔头。

在接手项目过程中,会有很多资料、知识和配置信息等,要用合适的工具,做好全程的记录,收集记录关键、有价值的信息。

在YesDev,可以创建一个项目,进行全盘的记录和协作。

例如,在【链接】中可以记录项目的Git代码仓库、之前Tower的交接链接、参考和百度到的CSDN学习资料等。

开始接手修复一些问题和工单

一开始,可以从一些小问题、小Bug和工单入手,通过一些问题,排查某些页面,同时做好常用数据库查询语句SQL、内部脚本工具、觉见问题的记录和熟悉。

记录工单时,要把用户联系方式、页面截图、链接、代码位置、数据库查询等,进行归集。方便以后碰到类似的问题,有资料可查、有知识可学。

开始开发一些小需求和小功能

当你要开始开发新的需求时,先不要着急去改代码。

因为,你会发现,写代码很简单,但要写出100%符合原来业务逻辑和规则的代码就很难。

也就是说,编程语言的代码语法不难,难就难在完整理解和全盘掌握原来代码的业务逻辑。

为此,你可以使用ProcessOn、Xmind、Viso等在线工具或本地软件,先自我梳理一遍目前产品和技术上的思维脑图、核心业务逻辑的时序图、整体业务流程的泳道图、目前系统的架构图。至少可以梳理这四个图。

例如,产品功能的思维脑图梳理,帮助你了解产品的功能和形态。通过点击、浏览、体验和使用产品的每一个页面,你可以边操作边梳理。例如我对接口大师的开放平台的产品梳理。

然后,打开本地IDE代码编辑器,找到对应页面和接口背后的源代码,定位到最底层、最核心、最重要、最复杂的代码模块,边浏览源代码、边整理核心的时序图。这一块工作,可以让你抓住项目的底层本质和核心,熟悉原来的代码风格、编程范式、设计模式、高并发的处理方式、各模块的依赖关系等。例如PhalApi开源接口框架的核心时序图。

第三个图,是整体业务的泳道图。它可以让你知道整体的系统上下游的数据流向、底层的依赖系统和网络链路。当你的系统出现问题了,你知道可以找谁。例如,针对直播拼团商城的流程。

最后一部分是面向技术架构的系统架构图。这部分,你可以通过nginx日记、或者阿里开通的服务、以及内部记录的资料找出你的系统都调用了哪些第三方接口。例如短信接口用的是哪家?有没用到OSS对象存储?CDN用了什么?数据库是用云服务还是自建的?你要清楚地知道目前有多少台服务器,是如何部署和相互调用的,网络链路是怎样的。从用户发起请求打开页面开始,系统在背后都做了哪些事情?

可以说,在接手别人的项目时,你至少应该自己整理并绘画四个图:

1、产品脑图:帮助你理解产品的功能;

2、UML时序图:帮助你源代码的核心技术实现;

3、整体业务泳道图:帮助你从整体上熟悉业务的流程;

4、系统架构图:帮助你掌握目前服务器的部署情况和网络链路。

相关文章
|
JavaScript 前端开发 开发工具
⭐️入职新公司需要准备哪些工作,如何让同事觉得你是大神-4
Document This “Document This”是一个 Visual Studio Code 扩展,可以自动为 TypeScript 和 JavaScript 文件生成详细的 JSDoc 注释。
87 0
|
运维 监控 数据可视化
当开发同事辞职,接手到垃圾代码怎么办?
当开发同事辞职,接手到垃圾代码怎么办?
|
前端开发 程序员 测试技术
程序员成长第十二篇:做好项目计划
程序员成长第十二篇:做好项目计划
110 0
|
程序员 项目管理
程序员成长第十九篇:要不要转管理岗?
程序员成长第十九篇:要不要转管理岗?
256 0
程序员成长第十九篇:要不要转管理岗?
|
程序员 项目管理
艾伟也谈项目管理,项目经理成长日记(4)——态度决定一切
超仔刚刚推门进来,屁股还没有碰到他的椅子上已经让人感觉到他欢喜轻飘的神色,我抬头望着他眼睛,神色中洋溢的满是欢快。我看着他那兴奋的样子,微微笑着问道:“签完了?结果还可以吗?” “还不错!” “能满意就可以,继续努力。
1161 0
|
项目管理
艾伟也谈项目管理,项目经理成长日记(7)——说是细,做的粗
估计绝大部分的公司都在提倡一个口号:“注重细节。”但是往往是口号容易喊,行动却是千辛万苦,何谓细节?也就是自身工作的每一个环节、每一道流程的琐碎小事,而这些小事又常常容易被人忽略。有很多人有雄才大志,内心中充斥着舍我其谁的非凡气魄,但其眼高手低,小事不屑,大事难成,最终只落得一事无成的悲哀。
1092 0
|
项目管理
艾伟也谈项目管理,项目管理杂谈-我所期望的新人
  在项目过程中,会有旧面孔的离开,但也有到很多新面孔的加入,什么样的新人是比较讨喜的呢?作为管理者来说,最希望花最小的代价而获得最大的收益,但事实上这样的新人太少了,下面从几个方面谈谈我在工作中期望的新人。
1087 0
|
项目管理
艾伟也谈项目管理,项目经理成长日记(6)——对不上的帐
中午吃过了午饭,端着杯茶做在休息室里正稍稍休憩。公司内部特别开辟出一个空间,并装修成吧台,高脚转椅,微高的台面和酒吧里面的样子多少有点类似。不少人见过微软、google的office的专修格调,让多少人羡慕而又渴望。
1052 0
|
测试技术 C# 图形学
项目交接杂谈
今天笔者和大家聊一聊在项目交接中遇到的问题 项目交接这种事是不可避免的,一个完整、完善的项目在交接的时候会省不少心,反之就让人抓狂了,尤其是代码交接部分,先不说代码是否写的巧妙,只要命名符合规范,思路清晰,有完善的文档,后续的维护是很轻松的,但是那种想起哪里写哪里,毫无逻辑可言的工程就像一坨屎(虽然笔者写的也自认为是屎),所以接手这种工程,再继续维护就好像:在一坨奇臭无比的一坨屎里面分析、分类、挑选这个人昨天都吃了什么,所以为了尽可能的避免这种狗屎工程,笔者谈一谈在交接的时候交接人需要准备的东西。
1733 0

相关实验场景

更多