管理|从0开始组建一支研发团队(一)

今年5月底,我加入一家创业型公司,在我加入之前公司只有3位同事:企业负责人,HR和一位产品经理。那个时候产品的原型还没最终确定。

我加入之后的首要工作就是组建一支App的研发团队,因为我们要做的产品就是一款App的社交平台。本文我将从总结的角度去回顾我们是如何组建团队并顺利进入产品攻坚战,重点阐述我在这个过程中的所做所思所想。

一、需求原型确定

企业负责人、产品经理和我经过长时间的产品评审,终于确定了V1.0.0版本的产品原型,原型一旦确定也就是需求确定,那么接下来的工作就是进入UI设计和产品研发。

而对于一家创业型公司,在研发人员还未到岗之前必须要做的事就是研发成本评估,我们当时的成本评估是以年为维度去做的,每个季度可以允许调整一次。

二、V1.0.0版研发成本评估

成本总体图

我们的成本主要分为系统成本(各种云服务器)、人力成本(研发测试人员)、开发配置成本(开发电脑和测试手机)以及数据采集成本(我们采用的是Python开发和神箭手配合的方式)。

系统成本主要有应用服务器、RDS数据库、对象存储OSS、阿里大于、https证书、云数据库redis以及其他需要做消息推送图片鉴黄负载的各种服务器;人力成本主要有Java工程师、IOS工程师、Android工程师、前端工程师以及爬虫工程师;开发配置主要包括各种Win开发电脑、IOS开发电脑、IOS开发者账号、各种测试手机等。

成本评估之后就是确定产品研发推进计划。

三、提前确定开发规约,常规约定以及性能检测方式

JAVA方面的规约我是基于《阿里巴巴 JAVA 开发手册》编写了一份适合我们自己的规约,性能方案我是直接用Coding.net去做代码分析的,重点在检测代码的圈复杂度。

移动开发方面主要参考网易的代码规范,同时开发阶段就接入了腾讯bugly,目的倒逼app相关开发人员去减少app的崩溃次数。

服务端api这块也很早做了一些约定:返回的数据中正确值和空值的类型必须一样。举例来说,用户名的字段是{“name”:“xxx”},如果名称为空时,则应该返回{“name”:“xxx”}。如果返回值是一个数组类型,空数据则返回一个空数组,绝对禁止返回null值(app 70%的崩溃都源于服务端接口返回null)。API版本升级时,需要注意两点:V2版本的API的Controller必须要继承V1版的Controller,这样V2版本的API只重写需要改动的API;在线API测试文档中详细标明返回内容,方便App客户端人员的调试。

四、列出所有的技术难点,并一个个去攻克

我们列出了20多个技术难点,按照紧急度&重要度做了梳理,并加上处理时间的截点。

五、产品研发推进计划

所谓的产品研发推进计划就是把产品的需求打散,按照每一个模块每个功能点去拆分评估时间,得出一个最快可以上线的时间。再然后根据产品设计的优先级去确定月计划和周计划。我在定产品研发推进计划时研发部一位同事都没有,这是一个坑,我在几位在移动研发领域摸爬滚打多年的朋友帮助下保证了坑不是太深。

在人员来齐之后,我们的产品研发推进计划在形式上依赖于禅道,我在禅道上创建team每个开发者的任务:在禅道“项目”创建产品的模块(一般是按照网站或App的tab模块去拆分创建),在对应的产品模块中创建对应的任务,每个任务对应产品经理制作的《产品版本功能管理表》中的每个功能点,并设置好截止日期、任务执行人、任务完成的预计完成时长(默认每个任务1小时,便于做项目的进度把控)。

这里需要注意的两个点,我再重复下:

1、一定要把每个功能点都记录到禅道,记住是每个功能点,特别是在时间很紧迫的时候,你无法保证你的小伙伴会认真仔细地看原型,并且还可以通过原型提取那么多功能点。

2、每个任务都需要有截止时间,没有截点的任务就不是任务。

这么做的原因主要是为了达到两个目的:保证产品研发的每个参与者明确自己的所有任务,明确每个任务的时间截点;方便产品研发负责人对产品做过程验收。

六、研发负责人的过程验收(一般为1周一次)

对于产品研发的负责人,至少每周要进行一次过程验收,特殊情况需要一天一次。

我在每周六(我们当时是9 10 6)下班前要对本周每个人的任务完成情况进行一个验收,验收的过程主要是对照禅道上的任务表进行查看。

验收参考项:每个单个功能点一定要调通[必须],保证每个功能点中的页面不会出现空数据(不利于验收)[必须],根据具体情况对用户体验提些要求(比如App中在验收时发现很多按钮的点击范围太小,很难点中)[非必须],保证整个操作的连贯性,如果有相关的功能点时逻辑要走通[非必须]。

我会对验收结果进行判断是否需要再加班赶进度。

同时我对每个组员的代码质量进行review,这块可以利用Coding.net自带的代码分析功能,有问题需要在周会上及时提出来进行讨论。

七、产品负责人的阶段性验收(一般为1个月一次)

我们每个月进行一次阶段性验收,验收的过程主要是对照禅道上的任务表、产品原型、产品效果图进行查看,这块前期需要在研发部由产品研发负责人进行内部验收,再提交到产品部和产品经理一起验收。

验收参考项:每个单个功能点一定要调通[必须],保证每个功能点中的页面不会出现空数据(不利于验收)[必须],根据情况对用户体验提些要求(比如App中在验收时发现很多按钮的点击范围太小,很难点中)[必须],保证整个操作的连贯性,如果有相关的功能点时逻辑要走通[必须](确定1-3条检测标准,即是否可以走通本月计划中的主要流程,在这过程中一般会包括“管理后台+前台网站”或“管理后台+App客户端”)。

我和产品经理在验收之后需要出一份验收报告,同时在验收过程中发现的bug需要及时记录到禅道上,便于研发人员及时修复。

我和产品经理对验收结果进行判断是否需要加班赶进度或紧急调整项目计划,并告知其他相关部门人员。

八、验收时的问题

1. 我们在做周验收和月度验收时经常会遇到有些小伙伴没有按时完成任务,但是也没有特别的严重,那么怎么办呢?

我定的方案是我和产品经理每天晚上对之前的任务和正在进行的任务进行每天测试,测试出来的问题相关的开发人员在第二天上午进行修复这些bug,下午和晚上该做什么就做什么,按照既定计划往前推进。他们每天把修复bug的项目打包上传,我当时用的是fir.im。

2. 因为我们在赶项目,很多时候无法避免会选择比较次的方案去实现某个功能点,当然我们在做的时候是知道有更优的方案,但基于时间的考虑,我们会选择次的那个方案。那么这种情况怎么办呢?

我的方案是我在禅道上新建了一个“研发部问题看版”项目,每个组员需要那种情况就把问题记录到这个项目下,我们在后面时间宽裕的时候再一个个去解决,不过这里需要说明的是,如果可以有更优的方案尽量就用更优的方案一次性解决,而不是每次都用次的方案。

九、如何输出相应的文档

我们都知道,在我们从0开发一个项目时,总有一些不紧急但很重要的事,其中最典型的就是各种文档的编写,比如设计文档。特别是当我们忙的不可开交时,不可能强制要求开发人员去写这些对我来说很重要对他们来说有点浪费时间的事。那么怎么办呢?

我的做法是为他们弄了一个文档范例,让他们分阶段去增加内容,比如在做A模块时,让他们增加A模块的内容,增加什么开始不限制,可以是一些思路,可以是问题点。等后面有空的时候再整理。

十、重视交互评审


页面交互例子

除了研发部本身的一些评审之外,与协作部门——产品部需要的评审主要有3个:原型评审、交互评审和UI评审。

原型评审和UI评审这个每个公司基本上都是有的,但是交互评审就不一定有啦。我之前没有经验,一开始我没要求产品部去做交互稿这块,导致我们研发人员在做功能交互的时候各种猜测,最后做出来的交互不满足要求,同时IOS和Android两位客户端的交互差别太大,不得不返工。

交互主要分为页面交互(也就是页面操作流程)和功能交互。

页面交互代表主体流程,主体流程决定代码结构,客户端一些交互流程的细微变化,对代码结构、可维护性、后面是否因流程有坑而需要重构,影响都比较大。交互阶段,比如会考虑到一些loading和过渡状态,比如开发会知道哪些是耗时的操作,从而影响到流程的可行性。从另一个角度讲也能防止开发阶段发现流程有坑从而让UI返工。

功能交互主要是指对于一些复杂的操作动效需要有一个可以参考的标准,而不是靠客户端开发人员自己猜。

总体来说,交互的意义是让研发人员对整体工作量有个大概的预估,不遗漏页面流程,对功能交互没有歧义。


我们的产品研发还在进行中,在这过程中有太多经验和教训,之后的一些感悟我还会不定期更新到这篇文章中。

欢迎一起交流学习。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,290评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,107评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,872评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,415评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,453评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,784评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,927评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,691评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,137评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,472评论 2 326
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,622评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,289评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,887评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,316评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,490评论 2 348

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,756评论 25 707
  • 三、流程 1.评估产品机会 a.确定待解决的问题 评估产品机会的目的:淘汰馊主意,避免浪费时间和金钱;挑选合适的产...
    IvanHung阅读 3,054评论 0 35
  • 一、前言 记得之前读过彼得蒂尔的《从零到一》,讲的是创业公司的从零到一。我的这篇文章主要来跟大家分享一个项目的从零...
    秦时明月V阅读 6,693评论 0 59
  • 今天画了送给泽宇弟弟的霸王龙 Gn
    Hanabule阅读 190评论 0 0
  • 起锚 沉钩钓起渣滓 胡绳泼湿晴空 地平线,一定 是炽烈,是火红 是沉郁,是葱茏 水手在瞭望 谁知海是否尽头 脉搏翻...
    楠竹文渊阅读 216评论 0 3