互联网公司如何管理研发团队
写在前面
之前在小公司当个小小的前端技术主管,就算带个2、3人的团队也觉得有很多问题需要沟通和调停,尤其是对下属的代码质量和开发进度把控上很是头疼。所以我更无法想象,像阿里、网易那样的大公司,尽千人甚至上万人的研发团队应该如何管理呢?带着学习和自我提高的心态,我放弃毕业前高薪的工资来到一家正处于上升热头的互联网公司,从一个实习生做起。放下所有架子,摈弃所谓的傲气,从零开始体验互联网公司的运转模式。下面分享一下我尽3个月来的感悟。
需求管理平台 Req
在互联网公司,每天都会有不同的需求被反馈,可能是线上bug、可能是用户体验优化、也可能是新的项目需求等等。这些需求按类别可以分为三类:日常需求、缺陷需求、项目需求。与之对应的有3个管理池:需求池、缺陷池和项目池。
需求池
需求池里可以建立简单的日常需求,这些需求一般是一对一可以指派的问题。比如运营提出的可以提高用户体验的一些优化建议、UI提出的视觉方面的修改和调整。这些问题一般不属于线上BUG,可以短期(1到2天)内修复上线的。日常需求的生命周期如下:
建需求 -> 拉分支 -> 本地开发测试 -> 代码评审 - > 预发布验证 -> 正式发布验证
缺陷池
缺陷池是给测试部门使用的。无论是日常需求还是项目发布都会有测试工程师介入测试,测试过了才能发上线。测试过程中发现的一切问题都要如是记录在缺陷池里,指明对应的责任人和处理人,并跟踪此缺陷的生命周期。缺陷按照严重性可以分为P0~P5,P0最为严重,一般发生P0缺陷,整个网站或者系统将无法正常运行,责任人和处理人需要在1个小时之内解决,如果解决不了需要立即回滚代码。如果你造成P0缺陷,那么对不起,轻则季度考核不合格,重则直接劝退。
而P级数字越大,缺陷严重程度越低。不过如果无法在规定时间内解决该缺陷,会自动上升一级。所以一旦出现缺陷,压力还是很大的,开发工程师应该在自测完全没问题之后才能申请测试工程师进行专业型测试。
项目池
一般一个需求的生命周期超过8天的必须申请立项——即成为一个单一项目进行管理。一个项目完整的生命周期如下:
需求评审 -> 产品出文档和交互 -> UI 制作视觉稿、标注稿 -> 后端给出Mock数据接口 --> 前端编写页面,绑定数据 -->视觉UI走查 --> 前后端线下连调 --> 后端接口上线 --> 用例测试 ---> 前端页面上线 --> 用户反馈和优化
每个项目会有一个产品经理、项目经理整体跟进,如果项目成员多的会设立专门的项目室(所谓的“小黑屋“)进行开发和沟通,以提高沟通效率。
wiki文档管理平台 Doc
每个研发团队都需要有一个统一的平台来管理一些文档,包括接口的API文档、代码规范、最佳实践和技术分享等东西。在互联网公司我们不会写一大堆的word文档或者整一些PPT,所有的文档都采用markdown语法编写,简约又易于分享。
接口API文档
接口文档的作用是为了前后端解耦。现在前后端分离的开发模式已经深入人心的,如果你还发现你的公司仍然搞一大堆什么JSP、Smarty、Velocity、FreeMarker等所谓的后端模板引擎的,赶紧告诉他们已经Ou t了!前端模板引擎的性能和用户体验都远远高于后端。呵呵,可能这时远方飘飘然会传来一声不屑——胡扯,后端模板引擎的性能怎么会输给前端呢?会这么想你肯定不知道前端模板引擎强大的预编译功能——模板引擎再厉害还是会有编译过程,预编译则把编译事先做了。
好了回归主题,规范的接口API文档应该包含以下几个内容:
第一:接口的用途
第二:接口的类型、是否需要登录
第三:接口的参数列表和字段说明
第四:接口成功返回的数据字段说明
第五:接口失败返回的数据字段说明
第六:接口对应的mock数据入口
代码规范
说到代码规范,各个团队有所不同。前端、后端、客户端、测试、大数据等各有各的代码规范。代码规范的作用是统一编码风格,提高代码复用能力。这个规范可以是长期开发经验积累整理的一套编码风格。前端的话应该包括:文件命名规范、HTML文档规范、less或Sass编写规范、JavaScript编码规范等。代码规范应该随着变成语言的升级而不断更新,并且每次更新后应该对每位开发人员进行代码规范 考试。
最佳实践
最佳实践是指针对某个问题总结出的最佳的处理方式,可以是代码片段、设计模式或框架设计等。每次项目完成之后应该做这样的总结工作,梳理一下项目的脉络和技术实现,思考性能优化和用户体验细节提升的技巧,然后积土成山,并长期维护和更新,构建团队自己的技术栈。
技术分享
技术分享应该以专题的方式进行,理论上团队每个成员定期都应该做特定专题的技术分享,并和各自的绩效挂钩。分享方式很简单,演示文稿和markdown文档,如果是技术实践应该还有配套的demo代码,最好在小组的周会上进行,鼓励讨论和反驳,一起进步。最后这些分享资料以期刊形式进行整理和出版,构建团队的技术栈。
开发管理平台
开发管理平台主要用于开发过程中的所有流程的把控和个人质量统计。这个平台应该和需求管理平台以及代码管理平台联通,协同使用。
个人缺陷管理
该模块可以反应开发者目前的代码质量水平,统计扣分情况。上面说了代码缺陷等级分为P0~P5,开发者一旦出现缺陷会被统计在缺陷池里,并以扣分的形式呈现在这里。并且扣分排名前30名会上榜,全公司的开发人员都可以看到,互相督促。
开发任务跟踪
该模块里会呈现开发人员当前的任务队列,每个开发任务的生命周期只要没有走完,都可以申请发布计划或取消发布,任务一旦发布成功该任务就会从列表里隐藏。
发布计划
开发任务一旦成功生成发布计划,会自动从trunk里产生新的分支,并给出新生成的分支号,然后开发者把代码切到该分支,在此分支上进行新的开发。
代码评审 codeReview
开发者一旦完成本地开发并自测没有问题,申请发布前必须先经过上一级的代码评审。代码评审包括编码风格审查,代码执行效率、业务逻辑实现的性能等多方面的排查。评审通过了才允许继续发布。否则打回上一步,问题修改完成后继续提交评审。
代码发布
代码评审通过后,会进入当天的发布队列。
发布队列
平台管理员每天在规定时间把发布队列里的发布计划进行预发布操作,即把分支合并到trunk。
预发布
代码正式发布前先进入预发布环境。预发布环境和正式环境一模一样,测试人员需要把本地的hosts配置成预发布的IP地址。然后进行预发布验证。验证如果不通过会被打回,开发人员需要在30分钟内进行修改,问题解决后管理员会重新合并代码,继续预发布验证。超时或无法解决问题,回滚代码。该发布计划失败。
正式发布
预发布验证没问题了,发布队列里的任务会进入正式环境。测试人员需要把本地hosts配置成正式的IP地址。然后进行正式发布验证,一般不会再出现问题。
紧急发布
每天进行发布的时间是规定的。过了规定的发布时间如果还需要发布代码的,需要走紧急发布。紧急发布每个开发人员都有次数限制,一般如果存在未知风险或涉及核心代码的,不允许紧急发布。
代码回滚
如果正式环境出现问题,在规定时间内开发人员无法解决的,必须回滚到上一个版本。
代码管理平台 gitLab、SVN
每个开发团队都需要一个代码管理工具,svn或者git 是目前常用的工具之一。如果使用svn则只需要提供两台svn服务器(正式和预发)。如果使用git则需要搭建gitLab作为代码的私有仓库。
分支管理
开发统一拉分支进行开发,然后合并到trunk。并且trunk上一般开发人员没有写的权限,保护trunk的安全。
版本控制
各分支之间允许合并和回滚,由开发人员自己管理。
团队管理平台 team
每个小组应该成立一个team平台进行管理。在这个平台上可以查看队伍各个成员之间的工作情况(日报、周报、项目进度等)
日报
每日一报,写一下今天做的日常需求,如果是项目,就写一下项目的进度。
周报
每周一报。本周工作总结和下周工作计划。
项目进度
开发管理平台各自的任务的生命周期应该同步到这里。方便你的leader进行查看和工作汇报。
员工管理平台 oa
这个几乎每个公司都有,就不介绍了。
规章制度
保密。
人事流程
请假、考勤、打卡、离职、入职等。
场地申请
会议场地、项目室申请。
会议通知
会议开始前会定时通知与会人员。
组织架构
研发团队是互联网公司强大的后盾,“养“着一群技术人员。这些人员不仅更具岗位职能进行划分。还有一个更重要的分法是根据工作性质进行分配。
业务部
负责新业务开发和旧业务的维护。
基础部
负责开发服务化工具和大数据分析。
系统部
负责系统架构设计和新技术研究。
运维部
负责服务器管理和维护。
质量保证部
我们的测试工程师同胞们。
注意:本文不要随意转发哦 ^_^
互联网公司如何管理研发团队相关推荐
- 资深技术专家崮德在阿里管理研发团队的实践和思考
来阿里两年多了,从 1 个人,到现在带领 50 多人的团队,走过了一段艰辛的充满变化的带团队历程,在这里总结下自己过去两年带 15 个人,带 50 个人的不同管理方法.1个人的时候,啥也别说,什么都是 ...
- 华为研发团队是如何管理的?
如何有效管理研发团队,让人才与组织的目标保持一致? 在产品还未上市时,如何正确评价研发人员的工作? 如何促进团队的经验积累与知识共享,从而走出小作坊式的研发阶段? 就像"党"管理& ...
- Worktile CTO 管理经验分享:如何在研发团队落地OKR?研发团队目标如何管理?
OKR作为一套明确和跟踪目标及其完成情况的管理工具和方法,受到越来越多的企业关注,最近就有一条关于90后小伙使用OKR工作法进行养猪的视频火遍全网,可以看到使用OKR工作法进行目标管理不仅仅只是适用于 ...
- 对话张建锋:阿里如何管理超大规模研发团队?| 钛媒体独家
关注ITValue,看企业级最新鲜.最价值报道! 张建锋(花名行癫) ▎揭秘阿里巴巴的研发团队,看阿里云智能总裁.达摩院院长张建锋(花名行癫)如何管理超大规模开发团队? 钛媒体注:本文刊发于阿里云及 ...
- 一百人研发团队的难题:研发管理、绩效考核、组织文化和OKR
什么是研发团队?简单的说,你熟悉的那帮穿格子衬衫,以程序员为核心组成的团队,就是研发团队. 本来,你以为格子男们是很乖很闷骚的那种,管理和协作起来比销售和业务简单很多,而实际情况是.......格子男 ...
- 继续- 管理百人研发团队的烦恼(下)
上次在我的博客上发布这片文章,浏览率还是很高,所以这次5月份的程序员杂志正好有出来,今天抽时间把下发布出来:感觉看了还是有点用的: 管理百人研发团队的烦恼(下) 搞好高效率的"大锅饭&quo ...
- 研发管理:产品研发团队的早会
百度百科定义:研发管理就是在研发体系结构设计和各种管理理论基础之上,借助信息平台对研发过程中进行的团队建设.流程设计.绩效管理.风险管理.成本管理.项目管理和知识管理等的一系列协调活动.[详细] 产品 ...
- 潘正磊谈微软研发团队管理之道
先给我们介绍一下你自己和你自己现在所做的事情吧? 我是在1992年大学一毕业就参加了微软,一开始是做开发程序员,就是Developer,最开始开发的项目是Microsoft Access,现在也是微软 ...
- 【CTO论道】京东商城李大学:京东研发团队管理经验谈
摘要:在今年SDCC的CTO论道特色论坛上,京东商城高级副总裁李大学与二十多位受邀参会的国内一线技术管理者一起做了交流,并发表主题演讲.演讲中,李大学分享了京东研发团队的组织架构以及自己的研发团队管理 ...
最新文章
- Golang学习-基础命令
- 手摸手,带你用 vue 动画实现原生 app 切换效果,丝滑般的体验
- 以色列研发出0经验AI,无需训练就能学会抠图
- 2018年JavaWeb和移动程序员学习的12个框架
- ef mysql 数据模型,EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
- 将类似html数据打印机,机器人和3D打印机的架构有哪些相似之处
- 如何在工作中学习,让自己成为领域专家?
- Anaconda prompt下常用命令
- 永久修改MySQL字符集(适用Mysql5.5、Mysql5.6、Mysql5.7以上)
- 南阳oj 814 又见拦截导弹
- Android利用手机拍照和从相册读取照片的方法
- Sql注入截取字符串常用函数
- 学生用计算机怎么玩俄罗斯方块,回忆小霸王童年 如何在电脑上玩俄罗斯方块环游记...
- python counter转换为列表_Python标准库---collections.counter
- 强烈推荐-这个方法让chrome浏览器拓展程序打包成.crx文件最快?
- mysql ping命令_Ping命令详解
- 2021-08-09[RoarCTF2019]黄金6年、从娃娃抓起
- chromium保存网页功能
- Elasticearch Filter Query 过滤查询--(五)
- 有哪些大数据书籍推荐 如何系统掌握大数据
热门文章
- 颜色恒常性评价指标——角度误差【弧度角度】避坑
- 最新版谷歌浏览器每次都要允许flash解决方法
- 英语基础知识:非谓语使用规则上篇
- 利用百度ocr识别验证码
- 开发人员的windows工具箱
- VS2005中使用Qt4.8.5遇到的问题
- 海贝音频384khz_海贝音乐app下载-海贝音乐最新版下载v4.0.1-IT168下载站
- iOS MultipeerConnectivity
- 攻防世界 logmein wp
- 计算机直接切换到桌面,电脑怎样快速切换桌面_一键快速回到桌面的多种方法...