Press "Enter" to skip to content

创业公司CTO手册(一) —— 高绩效工程团队的必备技能和最佳实践

介绍

《创业公司CTO手册》是一本涵盖软件工程团队领导力、管理和技术领域的图书,作者 Zach Goldberg,毕业于宾夕法尼亚大学,主修计算机科学与工程,以优等生的成绩获得学位。他曾担任六家创业公司的CTO,包括 WiFast、Sticks and Brains、AutoLotto、Trellis Technologies、GrowFlow(2022年被Dama Financial收购)和Towards Equilibrium Inc,还曾担任腾讯的企业家入驻人员和谷歌的产品经理助理。在Dama于2022年收购了GrowFlow之后,Zach坐下来将自己的经验倾注到了这本书中。了解更多关于Zach的工作,请访问zachgoldberg.com。

这是原书中译版,全书约12万字,由极客智坊翻译服务自动翻译完成(基于GPT-3.5),英文原版在这里:THE STARTUP CTO’S HANDBOOK。另有中文PDF版本提供下载:创业公司CTO手册

致谢

献给Max Mintz,他教会我学习并珍惜生活中重要的事情。

献给我曾经上司的每一个直接下属,感谢你们的耐心和对我无数次错误的包容。

献给我的妻子,感谢她忍受和支持我数不清的追求,包括写这本书。

奖誉

Zach Goldberg的CTO手册为所有工程领导者提供了一个引人入胜的日常资源。无论是实用的日常框架还是富有洞察力的观点,Goldberg的书将立即帮助您解决开发高绩效工程团队中的最复杂问题。

Michael Lopp, randsinrepose.com

为今天的初入职业领导者提供了很好的建议!

Matt Mochary, 高管教练,著作《伟大的CEO内心世界》, mocharymethod.com

Zach一直以来在创建初创组织(以及其他领域)的CTO方面做得非常出色。他为早期技术领导者面临的实际人员、流程、技术问题提供了可操作的建议。

Tony Karrer, 博士,LA CTO论坛的联合创始人,TechEmpower的创始人兼首席执行官,Aggregage的创始人兼首席技术官

对于任何工程领导者来说,这是一本基础指南!

Gordon Pretorius, Typeform的CTO

Zach简洁的智慧章节巧妙地提炼了领导早期技术团队多年的实际经验。值得一看!

Daniel Demetri,首席执行官和三次创业公司高管员

CTO手册是一本鼓舞人心的实用建议集,适用于初入职业和经验丰富的技术领导者。无论您是从头开始建立一支世界级工程团队,还是渴望成为CTO,或者已经在这个职位上工作多年,本手册都是您不可或缺的指南。

Eric Johannsen,Dama Financial的CTO,C# 8.0 in a Nutshell的作者

当我在黑暗中摸索着试图自己弄明白这一切并对几本技术管理书籍感到不知所措时,这本书提供了我所需的所有要点的简洁总结。

Charlie von Metzradt,MetricFire/Hosted Graphite的共同创始人

目录

引言

始终保持学习状态

十四岁那年,我的父母把我送到了为期数周的计算机夏令营。正如你脑海中所想象的那样,那里非常极客:几十个(大部分是)年轻男孩坐在折叠桌旁,盯着他们灰色的CRT显示器,更关注《虚幻竞技场》这个游戏,而不是他们的编程课程。两年后,十六岁时,我作为一个顾问/编程老师回到计算机夏令营,我爱上了那里的每一分钟。我非常幸运,年纪很轻的时候,我就意识到并且我的父母支持我对计算机和软件编程的热爱。

再过几年,在我上大学宾夕法尼亚大学(University of Pennsylvania)前的那个夏天,我确定我想作为本科生学习计算机科学,但我也有一个想法,即我喜欢商业。我的父亲开过自己的公司,我哥哥刚刚从商学院毕业,所以商业看起来是个很好的选择。宾夕法尼亚大学以其允许学生获得多个领域学位(如工程和商业)的双学位计划而闻名。

对于十八岁的我来说,这个计划对我来说是完美的,所以我给我的导师Max Mintz博士写了一封邮件,并安排了一个会议,讨论我申请参加双学位计划的事宜。身为极其慷慨和以学生为中心的教授,Mintz博士允许了我的请求,并邀请我到费城的Tuscany Cafe喝杯咖啡一起谈谈。

选定的那天,我从纽约驱车三个小时来到费城,坐在Mintz博士对面,渴望听到如何操纵计划的指示。我觉得只要选择合适的课程并取得足够好的成绩就能进入双学位计划。然而,Mintz博士却有其他想法。

充满期待的我一边喝着咖啡,一边问他:我如何进入双学位计划?我很遗憾当时没能录下那一刻的视频,因为我想象中自己的脸可能扭曲成一个相当有趣的形状。在我回答完之前,Max就开始谈话了。在接下来的两个小时里,他给我介绍了爱因斯坦的理论。我们结束时,我的大脑几乎瘫痪了,我们一次都没有讨论宾夕法尼亚大学的双学位计划。

在接下来的几个月里,我们再喝了几次咖啡,每当我询问Max有关申请或简历的问题时,他总是会将我引导回真正的科学中来。Max希望我不仅仅是吸收他当时讲授的任何主题的知识,而是要真正擅长学习,而且要学习那些困难的东西。对于他学生在四年结束时所获得的纸片一点也不在乎,只要他们每个人都准备好在其余的人生中继续学习。

大学毕业时,Max已成为我亲密的朋友和知己,他在我的教育道路上起着根本性的决定性作用。Max没有给我鱼,而是递给我一根钓鱼竿,并教我如何装上鱼饵和抛出鱼线。

没有一本书能给你像大学期间Max给我的经验。对于你正在阅读的这本书,我对它不能做出同样的承诺。相反,我讲这个故事是为了强调学习本身的基本价值和影响。

作为技术领导者,愿望、愿意和适应继续学习对你的成功至关重要。对于每个人来说,技术知识太多了,没有人能够成为在现代技术工作所需的所有领域真正的专家。我喜欢把在科技职业中追求职业的人想象成一个角色扮演游戏中的角色,他们不是通过杀敌来提升等级,而是每周花费四十个小时在工作中收集技能点。你可以选择哪些技能树来花费这些积累的点数,但你需要明智地选择。技能树的种类非常多,不可能解锁它们所有,所以你必须专注。

科技最美妙的地方在于我们的领域不断发展。你所工作的人会改变。你所使用的工具会更新或过时,你的工作方法也会有新的技术来替代。当你踏上技术领导之路时,唯一应对这种变化的方式就是期望它,接受它,并乐于借此机会与团队和领域本身一起学习和成长。

我希望人们对学习是认真的。我希望他们深入研究。我希望他们能够获得收获,这是最重要的。这不是RSA算法,也不是复杂的算法,这些不重要。重要的是他们对自己的自信,他们能够在学术界之外成长和学习:这意味着他们不需要我。他们所需要的是能够坐下来阅读书籍,或者也许如今是上网,自己去学东西。

Max Mintz博士,1942-2022

初创技术领导者的困境

大多数初创公司都有一个技术创始人。这个人编写了最初的代码库,招聘了最早的几名工程师,并至少在公司的前一个或两个融资轮次中负责技术工作。

在招聘第三到第十个工程师之间的某个时候,这个人将不再动手写代码,而会把全部时间都花在管理团队上。这时候,通常会出现问题:团队开始缓慢推出新功能,缺陷率开始上升,系统稳定性可能受到影响,总体成本增加,其他创始人开始担心。

很有可能,技术创始人或任何技术领导者,在此之前的整个职业生涯都投入了时间和精力成为一名优秀的程序员,而没有投入时间发展领导能力。因此,他们的领导能力只有1级,不难想象他们会犯错,因此浪费公司的时间和金钱。

无论你的职务和加入公司的时间是什么,如果你大部分的职业生涯和经验都投入在技术方面,现在你负责人员或部门,就必须意识到你现在是在一个领导角色中;你的技术背景和才华本身不足以成功。虽然对于管理软件工程团队来说,一些技术技能是基本要求,但事实是,要想做好领导的工作,你需要专注于人员领导、管理、架构和一般决策能力。

人员领导并不适合每个人。你可能听说过一些技术创始人在公司发展壮大时离开的故事。苹果的联合创始人Steve Wozniak就是最著名的例子。放下是没有什么羞耻的;沃兹尼亚克意识到他热爱技术工作,那是他想花时间的地方。你最好也可以考虑一下自己的情况:确定编程是否是你的天赋所在和给你最多乐趣的工作。如果是,你在爬升至最高级技术人员的职位上将会有一个美好的职业前景。

然而,如果你或你的环境使你得出结论,管理或领导团队是你渴望的角色,那么本手册将为你成为成功的技术领导者的旅程上扩展你的技能提供一个良好的起点。

作者简介

在大一暑假期间,我第一次有了创业体验。我不记得当时为什么会去申请Eduware的实习,或者为什么他们接受了我的申请。我记得的是每天早上上班去一个办公楼一楼后面的一个小房间里与其他四个年轻的软件工程师背靠背地工作。我们当中最年长的大概也就是二十五岁,而我当时十九岁。就只有我们五个人围坐在一个马蹄型的桌子旁边,肩并肩地在一个.NET教育应用上工作。我可能在工程师方面没有太大的用处,但我很幸运,团队中年龄最大、最资深的工程师花时间教我,帮助我理解工具,并逐渐变得更有生产力。

在办公室后排的那个闷热房间的经历中,某种程度上给我留下了深刻的印象,因为从那时起,我选择在七个创业公司工作:Invite Media、WiFast(现为Adentro)、SoChat、AutoLotto、Trellis Technologies、GrowFlow和Equi。在Invite Media这个广告展示和交易竞价公司,我与CTO合作,领导了一个快速增长阶段,最终以8,100万美元被谷歌收购。在谷歌,我接手了Invite离职的CTO的站点可靠性职责,并监督了公司并入谷歌架构的过程。

在那之后,我创建了WiFast,这是一家专注于民主化和变现Wi-Fi使用的技术公司,并通过我们的前两轮重大融资同时担任CEO和CTO。我还曾在中国广州的腾讯担任企业家驻场,以及创立SoChat,一个跨平台的消息应用。此后,我担任了Lottery.com、Trellis Technologies、GrowFlow(被Dama Financial收购)和Equi的CTO。

在这段旅程中,我以创始人的视角对待每一个角色,努力营造创作的环境,并推动软件工程应该更多地遵循科学而不是艺术思维的理念。

在这个过程中,我很幸运地从他人那里学到了很多东西,包括七个优秀工程师团队、无数咨询和辅导客户以及许多优秀的联合创始人。我还通过多年的管理辅导,从硅谷顶尖教练那里学到了自己领导力的高级技能,并充分利用了无数的导师和阅读了数百本相关书籍来提升自己的领导能力。

通过阅读,我清楚地意识到,尽管有成百上千的编程人员和使用特定技术或工具的人的自助书籍,以及有关创业金融的CEO和CFO的几十本有用的书籍,但我们行业缺少的是一个全面的、实用的初创科技领导者资源。我们需要一份涵盖核心技能之间所有主题,并解决我们角色中至关重要的领导挑战和技能范围的资源。

在如何编写良好代码、进行用户调查或寻找产品市场适应性的博客上也有很多。这是一本关于技术团队建设的书籍;它涉及了一个领导者在传统的技术教育或经验中没有学到的建立公司所需的所有技能。

使用本书

作为一名软件工程团队的领导者,很有可能你在工作中遇到了一些这样的问题:

  • 跟踪、管理或偿还技术债务。
  • 招聘、吸引、培养和留住顶级人才。
  • 创建一个客观、公正和透明的绩效评估体系。
  • 构建、管理和保持一个健康和有创造力的企业文化。
  • 处理你与公司其他领导者的关系。
  • 忍受技术人员之间关于架构和构建系统的缓慢决策或无休止的循环性争论。

每个技术领导者似乎都会在某个时候面临这些问题,然而关于如何处理这些问题的建议却几乎没有出现在任何商业或技术课程中。

我的目标是为这些问题及其他问题提供一些观点,同时提供在现实世界中各种技术如何应用的背景。目标是让读者了解权衡的方法,有一些能够看清前方的视野,并为他们做出自己明智的决策做好准备的框架。

这本书主要是为那些现在或将来可能会承担软件工程团队管理工作的人而写的,特别是作为创业风险投资支持的初创公司的推动力。对于个人贡献者,即非管理软件工程师来说,这本书也可能是有用的,可以让他们了解管理者面临的任务和需求,这些可能一开始并不明显。

我将这本书格式化为独立章节的集合,涵盖了广泛的主题。它旨在作为一个参考指南使用,读者可以在需要时阅读一章,而不一定顺序从头到尾阅读。因此,某些材料在不同章节中重复出现,以确保每一章都可以独立地站在其自身的基础上,无需前面的部分作为上下文。

我在每一章中的目标不是提供关于该主题的详尽讨论或评论。相反,目标是介绍该主题,提供一个概述或关于如何思考该主题的结构,提供一些最佳实践,并建议进一步探索该主题的参考资料。把这本书看作与技术领导相关的广度优先的主题集合。读者可以决定哪些主题对他们来说最有趣,并凭借一些上下文和视角,深入研究最相关的内容,并将知识付诸实践。

最重要的是,这本书是我个人经验和我找到有帮助的资源的综合,其中还包括同行、导师和顾问的建议和意见。如果这本书中有你不同意或认为是错误的内容,并且想要让我知道,或者如果你觉得这本书有帮助并且想要直接与我交流,随时通过zach@ctohb.com联系我。我也很乐意就咨询、教练和导师机会进行讨论。

业务流程

在本书中,你将会找到很多关于业务流程的描述。我在概述这些流程时的目标是为你提供解决问题的方案的起点。

根据你的团队和公司的规模,这里描述的可能会看起来过于繁琐和复杂,或者可能过于简单和粗糙以满足你的需求。现实情况是,随着你的公司和团队的发展,你将需要重新创造业务流程的方式。当你的公司从五个人发展到二十个、五十个或者一百个、一千个人时,你需要重新梳理你的业务流程。我强调了重要的核心原则,并让你根据现在的团队情况来调整它们,并在未来根据业务的需要和约束来扩展你的方法。

发表回复