找一位设计师和一位全栈工程师,而另外两个联

作者:美狮美高梅官方网站

之前,我和两位联合创始人一起创立了 Gusto 公司,旨在为小型企业提供工资和福利结算,以及人力资源。 Tomer、Josh 和我在 Palo Alto 的一座房子的主卧室里成立了这家公司,当时我们什么都没有,只有对未来的憧憬和尽一切努力将其变为现实的决心。

(一)最开始阶段

这里所说的技术团队,指的是大技术团队,包括产品、设计、开发、测试等。互联网的产品通常会包括安卓App,iOS App,PC网站,手机H5。
最不可或缺的人,是开发和设计。假如有一位全栈工程师同时也会设计,那么整个技术团队只需一个人即可。但是这只是理论情况,因为全栈工程师已然很难得,会设计的全栈工程师更是不好找。另一种情况是,一个人做的话,进度必然很慢。
这时,可将设计和全栈工程师拆开。找一位设计师和一位全栈工程师。这样的话,两个人就可以做出产品。但是进度慢的情况仍然存在,全栈工程师进度必然远远落后于设计师。

除非项目是做着玩的,没有进度的概念。否则首先是要找一位技术合伙人,或者招一名CTO。找一名合格的CTO,对于产品的研发非常重要。我亲眼目睹过一些公司,因为没有招到合适的CTO,在很长一段时间内,产品研发得很不顺利。
其次需要将职位细分为:ios开发1人,Android开发1人,后台开发1人,PC +手机H5前端开发1人,设计师1人。加上CTO,研发团队共是6人。
你可能已经注意到,这个研发团队里没有产品经理。是的,刚开始时不需要产品经理。因为刚开始老板肯定是有产品思路的,具体的流程让CTO梳理,界面则让设计师设计,产品原型就不需要了。

近来,我注意到在业内对很多与“软件”相关的职位存在很多角色和头衔方面的混淆,即使是公司创始人、招聘经理或者团队建设者都很容易分辨不清。今天我们就来谈一下,软件团队中各种职位的角色和职责分别是什么,以及哪些职位更倾向于涵盖哪些角色。

六年后,我们服务的客户达到了 6 万多家小型企业(超过了美国所有雇主的1%),员工超过了 600 名(包括约 100 名工程师),我们齐心协力达成了超过十亿美元的估值。

(二)第二阶段

假如做了一小段的时间后(比如两个月),老板忙着去跑市场,没有太多的精力放在产品上面了。CTO可能需要花比较多的时间梳理产品、管项目、写代码(小团队的CTO要写后台代码)。
这时需要招一名产品经理,负责业务逻辑梳理、绘制原型和流程图、撰写需求文档等。此时研发团队达到7人。

在深入研究这个问题之前,我想强调的是,每个团队都是独一无二的,某种责任往往会在不同时间段在各个成员间浮动,或由团队的不同成员共同承担。任何人都可以出于各种原因将责任委托给其他人,毕竟每个团队都有自己的运作方式。

办公时间我一般都会在 Gusto,工程师可以随时过来问我问题。有时他们会问我:作为这个公司的 CTO 和联合创始人,你的职责都有哪些变化?

(三)第三阶段

7人的团队也有一些问题,首先是要求每个人都能在自己的领域独挡一面(很考验招聘啊);其次每个领域只有一人,进度也不会太快;再次是假如有人要请假,那么他的这一块进度立马会停滞下来。
假如项目推广有起色的话,比如用户数超过10万人,这时可再扩大一下团队规模。
通常后台的开发工作量比较大,所以首先需要再招1名后台人员。然后iOS、android 、前端各再招1人,这时技术团队规模达到11人。
用不了多长时间,大家就会发现,bug层出不穷,并且经常反复出现。该测试人员出场了。这样,再增加一名测试工程师,整个团队达到了12人。

运维工程师是不需要的,因为初创型公司项目规模小,运维工作不多,完全可以让技术总监或后台开发人员来兼任。只有等公司壮大起来后,才需要专职的运维工程师。
考虑到后台的开发工作量比app和前端要大,可以根据实际情况,看看是否需要再招一名后台开发人员。

这样,比较合理的技术团队人数为12或13人:Android开发2人,iOS开发2人,前端工程师2人,后台开发2~3人,设计1人,产品1人,测试1人,CTO 1人。
这也是很多初创型公司总人数为十几二十人的原因:技术团队12~13人左右+市场运营人员5名左右+老板。

更多内容请关注微信公众号

wechat.jpg

如果你的团队不完全符合我接下来的描述,也欢迎交流指正。事实上,我认为确实只有很少一部分团队和特定软件工作者的角色能够与我们即将要探讨的内容完美匹配——相比于特性,这只是一个更倾向于平均化的通用框架。

1名工程师:待在车库或壁橱里的书呆子

我将从管理职称开始,按资历由深至浅地分析各种角色。不过开始之前强调一点,永远不要被你的职称所束缚。在我看来,

公司刚刚成立的时候,我住在旧金山,而另外两个联合创始人住在 Palo Alto 的一所房子里。我觉得在建立第一个原型期间我们住在一起很重要。不幸的是,没有多余的卧室供我居住,但是主卧里有一个非常大的步入式衣柜。我说服了房子里所有的租户,他们答应我每个月支付 300 美元租用那个衣柜,我跟一个朋友借了充气床垫,收拾好行李,搬进了衣柜。

技能比职称重要;

美狮美高梅官方网站 1

持续不断有成果输出比死盯截止日期重要;

我是公司的 CTO,但是对于一个刚起步的公司来说,这么说很傻,因为公司里压根没人可以“领导”。软件工程师更适合当时我的职责。我尽可能地学习复杂的工资管理系统和自动清算中心系统,同时每天戴着耳机写 12-14 个小时的代码——那种感觉非常好。我日历上唯一的会议是午餐和晚餐休息,以及去健身房锻炼。这个期间我们的目标是:建立工资管理后台系统,以供我们做自己的工资结算。

支持比责备重要;

2-10 名工程师:一个团队,一个梦想

协作比竞争重要;

美狮美高梅官方网站 2

总之,我喜欢以更高的责任来作为主动性的奖励。如果某位员工有主动的意愿和相应的技能去承担超过他们头衔的责任,我会更愿意去提拔他,这是一个很不错地培养潜力员工的机会。

在基本的工资管理可以运行,并拿到种子资金后,我们搬到了旧金山的阁楼公寓,我 90% 的编程时间缩减到了 60%。其余时间我需要寻找、面试并聘用工程师。作为一个 CTO,我的很多职责后来都发生了变化,但是只有招聘花费的时间却始终如一。从那以后,我总是需要 30-40% 的时间来做招聘工作。

下面进入正题。软件开发角色包括:

兼职编程和教练

工程院士

在我们聘用了一些工程师后,我从全职开发人员变成了负责一个小型开发团队。我仍然会花大量的时间编程、审核代码和改 bug,但偶尔我会摘下耳机向团队解释自动清算中心的工作原理,或者决定我们是否应该开始审核代码。如果有我力所能及且可以节约其他工程师时间的活儿(例如购买和配置计算机来运行我们的 CI 管线),我就会包揽下来。我的日历上开始出现:一对一、 Sprint 计划和每日例会。有些工程师需要向我汇报,但大多数情况下,由于公司没有等级制度,所以感觉像一群同伴在一个房间里一起编程。

CEO

在此期间,我们解除了媒体发布有关 Gusto(之后的 ZenPayroll)消息的禁令。在经历了一个通宵之后,工程团队紧张地监视着服务器日志,以确保我们的 Linode 服务器能够在“Techcrunch”的评论中活下来。

CTO

11-50 名工程师:紧紧围绕编程

首席信息官/首席数字官/首席创新官

美狮美高梅官方网站 3

工程副总裁/工程总监

在公司快速获得客户并通过了 A 轮融资之后,我的工程师团队已经壮大到 10 多人。协调所有这些工程师的工作变得更加困难。除了规模,一些早期的工程师的任期迫使我不得不将工程团队组织得更有条理。例如,一些在 Gusto 工作了近两年的工程师开始询问福利制度,以及 Gusto 内部的职业发展情况。坦白来说,我还没有认真考虑过这些问题。

首席架构师

与此同时,尽管团队更大了,但是我们仍然有无休无止的功能列表需要实现,以及 bug 需要修改。我可能是对我们的代码库了解最深的人,所以当出现问题或需要发布一个功能时,我按耐不住想介入编程或改 bug。而且通常,我确实这么干了。

软件架构师

纽约之旅

工程项目经理/项目经理

2015 年,我知道自己需要远离编程,并花更多时间成为一名优秀的人事经理。为了做到这一点,我决定飞往纽约,在酒店里住三天,阅读一些大家极力推荐的管理书籍。在飞机上,我觉得写一段代码实现一个新的工资管理功能应该没啥问题,毕竟飞机着陆后我有足足三天的时间可以专心读书。天啊,我大错特错了。飞机降落以后,我无法抑制内心对做完整个功能的渴望。结果,三天结束以后,我只读了一点点书,花时间学习人员管理的目标彻底失败了。

技术主管/工程主管/团队负责人

每天只有那么几个小时,兼顾人事管理(在 Gusto,我们称之为“人事助理”)和贡献代码非常困难。作为一个编程爱好者,我自然倾向于先完成功能,晚一点再做人事管理的工作。对我而言,代码问题总是让人感觉更加紧迫。最重要的是,我因为没有尽到自己的责任而深感内疚。

首席软件工程师

当我做人事管理的时候,我并没有花太多时间来完成与我的代码同等质量的工作。我的团队因此而人心浮动,不放弃编程似乎对团队的影响弊可能大于利。

高级软件工程师/高级软件开发人员

你必须二选一

软件工程师

在这一点上,我认为技术联合创始人必须二选一:继续做技术并聘请一个专业的经理(通常以工程副总裁的头衔继续做技术),或者放弃编程,专心做管理。兼顾两者基本不可能。

软件开发师

我决定专心抓好 Gusto 工程团队,而不是代码。我桌子上的技术书籍换成了《思维模式》、《格鲁夫给经理人的第一课》(High Output Management)和《The Score Takes Care of Itself 》,这三本书至今是我的最爱。《思维模式》对于帮助我为自己的发展做好心理准备至关重要。《格鲁夫给经理人的第一课》帮助我学习了管理团队的许多过程。《The Score Takes Care of Itself 》教会我如何超越管理,成为一个鼓舞人心的领导。

初级软件开发人员

学习和应用这些知识,同时抵制代码的诱惑,对我来说是一个非常艰难的过渡,但这对于以健康的方式发展工程团队是必要的。

实习软件开发人员

51-100 名工程师:拥抱新的职责

我们还将讨论这些角色与其他角色的关系,包括:

美狮美高梅官方网站 4

产品管理副总裁/产品负责人

当工程团队发展至 50 人时,我花了 60% 的时间努力成为最好的经理(那些向我直接汇报的人的经理),还负责培训团队中的其他工程经理。剩下 40% 的时间我负责招聘。

产品经理

随着对人员管理职责的了解越来越多,我也越来越喜欢这个工作。我会把时间花在注入改善工程师入职、管理绩效、多元化和包容性、文化、变革管理以及为大项目指定流程等。只有半年一次的编程马拉松期间我才会写代码。

营销副总裁

爱我的新职责

注意:有时也会有“主管”或“总监”等头衔用来表示介于技术管理人员和“首席”之间的中层管理人员。 通常,“首席”头衔表示一套比较高级的职称,高级管理人员通常会直接向首席执行官报告。 在非常大的公司中,“主管”或“总监”通常扮演着与高层管理人员类似的角色,区别在于他们是向相当于大公司中一个较小的业务单元的负责人(类似于这个单元内的CEO)进行汇报。不同的业务部门有时像独立的公司一样运营,完成自己部分的独立会计工作,拥有自己部门专门的财务人员等。不同的业务部门也可以有副总裁,商务运营部的工程副总裁”。

本文由美狮美高梅官方网站发布,转载请注明来源

关键词: