背景
作为程序员,跳槽或者被跳槽都是寻常事,那么当你成功入职一家新公司,你会如何快速适应新工作?
即快速的融入团队,尽快发挥价值。
按照基本的思考框架。先来思考一下。
思考问题 | 回答问题 |
---|---|
where are we?现状 | 刚入职,对业务了解很少 |
where are we going?目的 | 快速上手,至少就解决项目问题,长远可大展身手 |
how can we get there?实现路径 | 先了解业务,再宏观了解技术,最后熟悉团队运作过程 |
下面我发散来分析和解决实现路径的问题。
实现路径
明确了目的,实现路径就是一个任务分解的过程。下面我按照第一人称来阐述分解过程。
快速熟悉业务
业务解决的是做什么?
我会在团队中找到熟悉全局产品设计的产品经理或者架构师花大概30分钟的时间讲解一下业务的大图景,(只讲大图景,不用涉及业务的细节)。
即回答如下三个问题:
- 项目是做什么的?
- 项目解决了什么问题?
- 项目的主业务流程是怎样的?
结合业务讲解,我会初步思考,假如我是架构师或者产品总监,我会怎么去设计和实现这个项目。
然后,到测试环境或者演示,完整体验一遍功能点,从项目的用户的视角体验一下是如何解决用户的需求,实现用户的价值的?
快速熟悉技术
技术回答的是怎么做?
技术是伴随职业生命周期最长久的东西,刚入职,不用太着急下沉到技术细节里去。
可以先从宏观上了解技术。
比如可以先找技术导师介绍当前的技术栈,使用的那种语言,明确使用的工具和框架,做到心中有数。
然后,找到现成的业务架构图,了解当前技术解决的业务模型,如果没有,可以找相关的人一起绘制一幅。
有了这些粗粒度的技术栈和业务架构图之后,可以从项目的外部入手,明确系统对外提供的接口有哪些,依赖的内部或者外部系统的接口有哪些?采用的是那种通信方式(REST,RPC,MQ),以及采用的通信协议(JSON,ProtoBuf,Thrift,3GPP);
其次项目内部,即分哪几个模块,每个模块的职责,分层的职责,构建脚本跑一遍,并熟悉常见的构建命令
最后是到代码级别,熟悉目录结构,配置文件(日志,中间件)的位置,模块在源码的体现;
有了宏观的了解之后,可以针对接口的重要程度,从头到尾绘制一下接口的时序图,顺序图,加深对核心业务的理解。
了解团队运作
熟悉业务和熟悉代码解决的是个人的问题,在新的公司,你不可避免的要跟不同的人协作。如果团队的管理比较规范和专业,一般会有规章制度文档描述清楚,如果没有,可以参考一般的处理方式。
团队运作主要分成两块,即外部接口和内部活动。
外部接口主要包括: 需求从哪里来,最终的产品谁来使用,团队向谁汇报,外部客户的日常沟通如何安排;
内部活动:站会,复盘会,周会,设计和代码评审,内部分享机制
了解清楚团队运作流程之后,可以在你需要的帮助的时候,明确知道找谁。
小结
如果你只能记住一句话:快速适应新工作,从业务大图景入手;
以上分解过程都会涉及到跟不同的人进行交流,请尽量使用行话沟通。
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各种资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!