这个系列内容全部来自于Edmond Lau 所著《The Effective Engineer》一书,截止本文写稿时间(17年末)还未在中国出版,因为我没有足够的时间精力翻译全书,所以就挑选几部分做成高效工程师 系列文章,希望对大家在职业生涯中有帮助。
先介绍下原书作者Edmond Lau(以下简称艾德蒙),艾德蒙从斯坦福计算机科学专业毕业后进入了Google成为一名产品经理,离开Google后成为了Ooyala分析团队的技术leader,也是Quora早期工程师之一,是Friendfeed的联合创始人,目前在Quip工作,致力于打造一个高效的工程师团队。 《The Effective Engineer》是艾德蒙多年职业生涯中经历和见闻,还有他和其他工程师交流的结晶。
我们把大量的时间花在工作上,如果我们换个新工作,我们要重新学习新的编程语言、新的工具、新的框架、新产品范例,需要了解整个组织是构造和运作的,但怎么样的团队能让你快速了解这些东西、快速上手?什么样的团队能让你每天都学到新东西每天都有成长。有利于人成长的团队是有一些明显的特质的,艾德蒙认为应该优秀且富有活力的团队应该有以下6个特点。
快速增长
当Sheryl Sandberg考虑是否加入google的时,CEO Eric Schmidt给了她一个很有价值的建议『当别人在火箭上给你安排了一个座位时,你不需要问是什么样的座位,赶紧上吧!』,这句话给了她巨大的启发,后来她成为了google的VP,这也为她以后成为facebook的COO奠定了基础。在一个快速增长的团队和公司,大量的问题也是不可多得的资源,你能够创造出巨大的影响力和增加你的责任感。增长也更容易吸引到更多才华横溢的人加入构成一个更强大的团队,然后创造出更大的增长,形成一个良性循环。反之,缺乏增长会导致团队发展停滞和政治化,员工会在争抢这有限的机会,也会越来越难以吸引人才。
思考题
- 核心业务的周或月度增长指标是什么?(例如:活跃用户,年收益,产品销售额……)
- 你们手头上高优先级的工作是否能得到公司足够的支持和资源?
- 过去一年里公司或者管队的照片状况如何?
- 最优秀的团队成员多快才能成为领导层?
培训
完善的入职培训流程能证明该组织会优先培训新人, 例如,Google在其engEDU计划中投入了大量资源,创建了一系列课程、专业研讨会、设计文档和编程指南,旨在帮助新员工成长为一名合格的工程师和leader。 Facebook有一个名为Bootcamp为期六周的入职培训计划,新工程师可以在那里了解到公司的工具和关注领域,并能上手开发。小公司没办法投入这样的资源,但任何知道让新人快速成长起来能带来的价值的团队都会创建类似的流程,艾德蒙也在quora创建了新人培训体系。 同样,一个强健的培训体系也能表明团队重视个人成长。
思考题
- 新人希望直接上岗还是先通过一个正式的入职培训流程?
- 有没有正式或者非正式的师徒制度?
- 公司为确保员工能持续学习和成长采取了什么样的措施?
- 团队最近有没有学一些新的东西?
开放性
快速增长的组织不是说它能在第一次就能产出高效的产品想法、工程设计或是组织过程,而是它能持续从过去的错误中学习,其实这样成功的机会更大。如果员工能互相挑战彼此的决策并把反馈融入未来的迭代中,则更可能成功。寻求好奇的文化,鼓励每个人提问,再加上开放的文化,反馈和信息能被主动的分享。 对失败的项目进行反思,找出到底是什么导致了产品失败,审视不同产品投资所带来的回报,都有助于将正确的经验内化。
思考题
- 员工了解不同团队工作方向的优先级吗?
- 团队会为产品变更和功能发布是否值得而召开会议吗? 有没有失败的回顾?
- 知识文档在公司内部是如何流传的?
- 团队学到过什么样的教训?
小步快跑
快速迭代的工作环境能给你提供更快的反馈循环让你学的更快。长发布周期、形式化的审批、优柔寡断的领导都会拖慢迭代速度。相反自动化工具、轻量审批流程、自发性会加速整个过程。小团队和公司相比于大公司大团队,在完成一件事上没有太多官僚主义的障碍。例如我在Google的时候,Google任何明显的变化(甚至是实现性的)都需要从管理层一层层审批上去,直到搜索和用户体验的vp Marissa Mayer,这无疑会放慢整个实验的步伐。 在创业公司, 只要你不崩溃,承担更多风险和花费更多时间你就能得到更多的成长。督促自己,当同时找个一个长远可持续发展的空间。
思考题
- 快速前进是否会反映在公司或者工程师的价值上?
- 团队用什么工具来加快迭代速度?
- 从想法到产品被批准上线需要多长时间?
- 维护旧产品和开发新产品和功能的时间占比是怎么样的?
优秀的同事
如果你周围的人都是比你聪明比你更赋创造力的人,那你周围都是你潜在的老师。就你的职业成长和工作幸福度而言,与你合作的人可能比你实际做的更重要。 在小公司里,如果你和同事相处不好你也很容易换个团队,但大公司通常建议你在团队中至少六个月到一年,以降低转换成本和开销。所以去一个新岗位之前,与潜在的团队成员见个面,否则有可能被分配到一个好团队,也有可能是差团队。
思考题
- 面试你的人看起来比你更聪明吗?
- 他们有什么可以教你的吗?
- 面试足够严谨和全面吗? 你愿意和这种面试做的好的人工作吗?
- 通常人们愿意一个人工作还是团队合作?
自治
只要我们能得到自由选择的权利,选择做什么和怎么做的自由能驱动我们学习能力的增长。在大公司里,员工趋向于工作特定的工作,但也能获得更多指导和支持。在小公司,你会在整个产品功能和责任上拥有更多的自主权,但是你也需要自己对自己的学习和成长多操点心。例如,在Quora的三年,我有机会面对广泛的技术挑战(包括实验工具,实时分析框架,网站速度,基础架构,推荐,垃圾邮件检测和移动开发)以及组织方面的挑战(包括培训面试官,创建新人培训资源,建立辅导方案,协调实习计划)。要在一个大公司做这样多样化的工作是非常困难的,但大公司有专业的团队,而且这些流程可能已经很完善了。
思考题
- 员工有没有选择做什么和怎么做的自治权?
- 个人转岗需要长时间?
- 在一年的时间里,一个人的代码库能达到什么程度呢?
- 工程师是否参与到产品设计和影响产品的决策讨论中?
这六个因素因团队公司而异,每个因素的重要性也会随着你的职业生涯而改变。 入职培训和指导在你职业生涯的早期会比较重要,自治性会在晚期比较重要。 换了团队或者工作后,确保你问了正确的问题,确认他们是否合适,并为你提供充足的学习机会。
This is comment test
网页和字段??