尝试create tech team
自从上一家公司之后,我很少有机会去带一些新人(公司一般都招一些技术独立性的工程师),特别是经验不是特别多的新小伙伴。在如今管理扁平化的公司,我正逐渐搭建自己的小team,并试图让团队成员快速融入并成长。整理了一下最近实践的经验,我采用的方式如下:
1.文档化
其实说这个文档化,相当一部分人是反感或者不屑的,每个人对这个项目或者一系列接口都是希望有详尽的文档,而当需要自己去写的时候就显得十分抗拒。但是当项目成员逐渐增加,当项目代码量和业务复杂度规模逐渐壮大,如果还是没有一份靠谱的文档来支撑,我想新来的研发人员应该会看着庞然大物一般的代码而笑容逐渐消失。
文档的好处,不必说能更快让成员有依据的了解代码逻辑,也是对写文档的人一次归纳总结的提升。当然文档也不局限于项目整理或者业务逻辑整理,也可以是一些工作流、代码规范相关的约束性的文档,这对整个项目的规范化和工作协同的一致性有着非常重要的影响。文档的形式也不仅局限于文字,也可以是图表,甚至视频。
我开始的时候还是采用尽可能文档化来让新成员更快了解现有项目,尽量做到可以通过文档独立(脱离人工引导)去熟悉项目的代码结构,敲黑板,划重点,并且留出一些预留的期望任务。对于不同的人可以从同一份文档理解不同层次的要求。对自己无要求或者要求不高的,我只能要求他能顺利fix bug,不会因为改动而影响到相关的功能或者代码块。对于一些有想法和能力的,我会提一些新的要求,比如去提前熟悉一些功能,试着去优化原有逻辑,甚至改造底层框架。
不同的人,不同的性格,应该用不同的方式去沟通,给予的预设期望也是不同的。不以物喜不以己悲,淡然地面对不同的人来人往。
我觉得最好看出一个人是否对代码严谨并有编码能力,就是从现有项目中发现不足且提出自己的想法。例如,我让w同学在熟悉项目后,试着去增加中间件支持到框架流程中(之前老项目缺失对中间件良好导入的支持)。也许有人会说,我平时根本就用不着去关心已经搭建好的框架,我只需要天天curd,天天copy paste之前的业务再改改,天天能跑通就得了。这可能就是有的人工作了三年还是用一年的经验去做事的原因吧。
2.代码规范
其实对于一些非静态类的自由度高的编程语言,比如:javascript、php等,由于语言本身的自由度和开发人员的水平不同,代码量和协同开发人数一增加,代码风格就很难统一,各种各样的写法会逐步蔓延到整个项目代码逻辑中。初期不管,可能只是辣眼睛,后期不管可能拖垮整个相关功能甚至项目。所以在早期的时候就要尽量规范代码,一起协商出一个通用性的代码规范,统一所有人的代码风格。
代码规范大致分成两大部分,第一部分是代码格式,第二部分是编程规范。代码格式php方面有code sniffer,nodejs则可以用eslint去做强制规范。至于编程规范可以根据项目之前的风格和一些通用性的规则来约束,比如变量名,函数名的可读性,通用功能的封装,面向对象的规范等等。
所谓:没有规矩,不成方圆。统一的好处在于工程师们能更好地理解代码,提高工作效率,减少不必要的误解。
3.规范工作习惯
这个内容认真讲起来几乎和“怎么成为一个优秀的工程师”一样宽泛,我这里主要是讲的解决问题和处理问题方式。比如我们往往在开发的过程中会遇到一些让人长时间阻塞的bug或者业务逻辑,我们是否总是选择死磕到底,耗尽deadline也没有找到确切的解决方案?
我个人的建议是给自己解决一个问题设置一个deadline,可以是30分钟,也可以是一个小时,由自己来定。一旦超过了这个期限,那么就必须果断去寻求帮助。有相当一部分工程师会觉得向他人寻求帮助是很羞耻的一件事,然而这通常只是face的问题,寻求外部资源和帮助是一个非常高效的解决途径。
3.属于自己的团队反馈
做产品或者运营的人是最能理解反馈的重要,同样的团队建设里面队员们的反馈也是不断改进的源头。我采用的是不定期地沟通,随时跟进各个小伙伴的进度,遇到怎样的问题,是否需要外部的支持。也会相互做一些头脑风暴,或者结对编程来解决一些单人局限思维的问题。在每周五也会有小组范围的review会,用来对本周或近阶段来总结反思。
人和代码一样,如果不定时地去review,也会在不知不觉地滋生一些bad smell。比如某小伙伴状态不太up,是否是给他/她分配的任务过于繁杂,是否是技术方面有倦怠感。在能力和资源所及的范围内尽可能让每个人找到自己所喜欢的事物,能在繁重的工作之余,也能有一些成长和收获。
目前我还在做更多的尝试,利用敏捷开发的一些原理,慢慢让自己和小组一起成长,变得更优秀。
转载于:https://www.cnblogs.com/freephp/p/9296416.html
尝试create tech team相关推荐
- mysql创建表格显示1064错误_尝试创建表时出现错误1064(Error 1064 when trying to create a table)...
尝试创建表时出现错误1064(Error 1064 when trying to create a table) 这是代码: create table `team`.`User`( `UserID` ...
- Configure a VLAN on top of a team with NetworkManager (nmcli) in RHEL7
2019独角兽企业重金招聘Python工程师标准>>> SOLUTION VERIFIED September 13 2016 KB1248793 Environment Red H ...
- team explorer_我的Team Explorer 2015在哪里?
team explorer 介绍 ( Introduction ) If you have been using Team Foundation Server (TFS) for as long as ...
- 第六章 SQL命令 CREATE INDEX(一)
文章目录 第六章 SQL命令 CREATE INDEX(一) 大纲 参数 描述 权限与锁 仅支持兼容性选项 索引名称 现有索引 表明 字段名称 嵌入对象中的字段(`%SerialObject`) 索引 ...
- Create database/Create table 示例(Sql Server2005语法)
use master goif exists (select * from sysdatabases where name='Study')--判断Study数据库是否存在,是则删除drop data ...
- 在Microsoft Teams中,以一个已经存在的Team作为模板创建Team
在Microsoft Teams中,创建Team的时候,可以通过选择一个已经存在的Team的方式,将这个已存在的Team作为模板来创建新的Team. 选择 Create a team using an ...
- 渗透Hacking Team全过程(详细解说)
1.序言 在这里,可能你会注意到相比于前面的一个版本,这个版本的内容及语言有了一些变化,因为这将是最后一个版本了[1].对于黑客技术,英语世界中已经有了许多书籍,讲座,指南以及关于黑客攻击的知识.在那 ...
- 黑客讲述渗透Hacking Team全过程(详细解说)
1.序言 在这里,可能你会注意到相比于前面的一个版本,这个版本的内容及语言有了一些变化,因为这将是最后一个版本了[1].对于黑客技术,英语世界中已经有了许多书籍,讲座,指南以及关于黑客攻击的知识.在那 ...
- Team Provisioning Profile
这篇文档是苹果官网对证书描述的解释的文章原文地址(https://developer.apple.com/library/content/documentation/IDEs/Conceptual/A ...
最新文章
- 记录一次自己清理数据的过程
- gitlab自带的Nginx与原Nginx冲突的解决方案
- 兆凯综合布线系统简介
- C++虚继承(八) --- 虚继承与继承的差异
- 【洛谷 - P3376 】【模板】网络最大流
- tensorflow2.0及以上版本在使用Session模块时报错:AttributeError: module ‘tensorflow‘ has no attribute ‘Session‘ 已解决
- C++ vector和list的区别
- dataframe指定位置插入行
- linux解决Tomcat内存溢出
- java物流项目功能介绍_JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图...
- python搭建简易HTTPServer服务
- 在网页中打开展示pdf文件
- 实战一:给定一段音频,请提取12维MFCC特征,阅读代码预加重、分帧、加窗部分,完善作业代码中fbank和mfcc部分,并给出最终的Fbank和MFCC特征,用默认的配置参数,无需进行修改
- undi是什么意思_undefined什么意思?
- [ vulhub漏洞复现篇 ] Tiki Wiki CMS Groupware 认证绕过漏洞CVE-2020-15906
- Atmel和SIGFOX在远程物联网连接领域开展合作
- 吃透Redis系列(五):RDB和AOF持久化详细介绍
- HBase 分布式集群搭建手记
- Android之vold进程启动源码分析
- github优秀项目分享 redis客户端