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
|
Web App开发 XML JavaScript
⭐️入职新公司需要准备哪些工作,如何让同事觉得你是大神-3
Firefox: 地址栏输入访问 about:preferences,找到 Network Proxy,选择 手动代理配置(Manual proxy configuration),输入代理服务器地址、端口,保存
97 0
|
前端开发 程序员 测试技术
程序员成长第十二篇:做好项目计划
程序员成长第十二篇:做好项目计划
110 0
|
消息中间件 移动开发 安全
移动开发者升职加薪的8项技能,写给正在求职的安卓开发
移动开发者升职加薪的8项技能,写给正在求职的安卓开发
移动开发者升职加薪的8项技能,写给正在求职的安卓开发
|
程序员 项目管理
艾伟也谈项目管理,项目经理成长日记(4)——态度决定一切
超仔刚刚推门进来,屁股还没有碰到他的椅子上已经让人感觉到他欢喜轻飘的神色,我抬头望着他眼睛,神色中洋溢的满是欢快。我看着他那兴奋的样子,微微笑着问道:“签完了?结果还可以吗?” “还不错!” “能满意就可以,继续努力。
1162 0
|
程序员
阿里员工揭秘:很多程序员离职,在小公司当领导,只动嘴不动手!
阿里巴巴是中国知名的互联网公司,每个人或多或少的都从淘宝上购买的物品,自从1998年成立到现在,里面人才济济,里面的程序员不仅工资非常的高,不少程序员年收入竟然过百万。
1212 0
|
前端开发
想换工作?阿里技术战略部招人啦!
在技术战场上狂奔的你,是否也在期待加入这样一个团队:和一群有情有义的人,用有价值的数据和内容做一些有意义的事。比如阿里巴巴技术战略部(嘿嘿,你猜得没错,就是阿里妹所在的团队)。
2990 0
|
测试技术 C# 图形学
项目交接杂谈
今天笔者和大家聊一聊在项目交接中遇到的问题 项目交接这种事是不可避免的,一个完整、完善的项目在交接的时候会省不少心,反之就让人抓狂了,尤其是代码交接部分,先不说代码是否写的巧妙,只要命名符合规范,思路清晰,有完善的文档,后续的维护是很轻松的,但是那种想起哪里写哪里,毫无逻辑可言的工程就像一坨屎(虽然笔者写的也自认为是屎),所以接手这种工程,再继续维护就好像:在一坨奇臭无比的一坨屎里面分析、分类、挑选这个人昨天都吃了什么,所以为了尽可能的避免这种狗屎工程,笔者谈一谈在交接的时候交接人需要准备的东西。
1733 0
|
Web App开发 编解码 大数据
姜健:为开源工作幸福且自豪
作为一名在Google工作的工程师,姜健是幸运且幸福的。
1330 0
|
程序员 持续交付 运维
【聚能聊有奖话题】程序员、测试员、项目经理,你们有freestyle吗?
近日云效公共云版本正式进入商业化服务阶段。 云效是一站式企业协同研发云,支持公共云、专有云和混合云三种模式下的大规模团队的项目管理和协同研发,它为应用项目研发全周期(需求->开发->测试->发布->运维->运营)提供高效的工具化支撑,落地实现敏捷研发、流式实施交付和分层自动化等先进理念,从而助力企业产品快速创新迭代和研发效能升级。
1362 0