研发工程总监应该做什么?What does a director do?

研发工程总监应该做什么?What does a Director of Engineering do?

April 15, 2020, 7 min read**

我很幸运,我的职业生涯是随着组织成长不停的被推动着进步。
I’ve been fortunate in my career to be part of organizations that have always constantly pushed me.

当我开始在现在的公司Roundtrip工作时,我是一名软件工程师。
When I started with the company I’m currently at, Roundtrip, I was a software engineer.

当时,Roundtrip是一家含我在内6名员工的早期的国有初创企业,主攻医疗运输领域。
At the time, Roundtrip, a company in the healthcare transportation space was an early state startup with six employees, including me.

随着团队的发展,我的直接主管也是首席技术官(CTO)每天都要外出应酬,所以我被放到了领导的位置上。
As the team grew the CTO, my direct manager, had to elevate himself to out of the day to day and so I was put into a leadership position out of necessity.

我的职责发生了变化,但当时我在公司的职位Title没变。
My accountabilities and responsibilities changed but at the time my position in the organization chart didn’t.

我不知道老板们对我的期望是什么,但我知道我必须补充工程师来发展团队,处理技术和成员沟通,并创建流程来保持我们的前进。
I had no idea what the expectations were of me, but I knew I had to grow the team by finding engineers, handle technical and personal reviews and create processes to keep us moving forward.

除了这些,我还必须弄清楚我的职责范围。
Aside from all that, I also had to figure out what responsibilities fell under my domain.

三年过去了,我终于能够自信地谈论我的职责以及我认为这个职位能为公司带来的价值了。
Three years on, I’m finally at a place where I feel confident talking about my accountabilities and the worth I feel this position brings to an organization.

最近,我整理了自己的角色的思维导图,并将每个部分分解成粒度期望(可以随意缩放、移动和扩展/折叠下面的地图)。
Recently, I challenged myself to mind map my role and break each part down into granular expectations (feel free to zoom, move and expand/collapse the map below).
研发工程总监应该做什么?What does a director do?

领导力People Leadership

1对1沟通 Conducting 1-1s

我个人的使命是创建一个世界一流的工程团队,创造世界一流的产品。
My personal mission is to create a world class engineering team that create world class products.

这是从个体开始的。理解和管理员工的动机、情绪、技能和期望,帮助他们设定目标,消除个人和职业上的障碍,让他们对自己的薪水和目前的职位感到满意,这些对于保持他们的专注和确保高质量的产出是至关重要的。我每周会与我的团队成员单独会面,了解他们的需求,为他们提供一个表达意见的平台。
This starts from the individuals. Understanding and managing peoples motivations, emotions, skills and expectations, helping them set goals, removing personal and professional blockers and keeping them happy with their salary and their current roles are imperative to maintaining their focus and ensuring high quality output. I meet with my team individually on a weekly basis to keep a pulse on their needs and give them a platform to be heard.

招聘Recruiting

要建立最好的团队,你必须找到最好的人。你新招的每一个人都应该比你现有团队一半以上人水平要好。加入门槛提高的同时也让现有团队每个人都感到挑战。
To build the best team you have to find the best people. Each person you bring in should be better than at least half of of your existing team. This keeps the bar high and makes sure that everyone constantly feels challenged.

招聘不仅仅是职位本身的填充。我还必须找到符合我的团队需要的个性。我是通过识别团队的弱点和需求,并找到与之互补的人来做到这一点。如果团队有很强的执行力,但缺少对应的领导,我就就会引入专注这方面的人。总的来说,我招聘更多看重的是一个人的优点,而不是缺点。这确保了有一个厉害但是又平衡的团队。
Recruiting goes beyond just position. I have to find personalities that match my teams needs. I do this by identifying the teams weaknesses and needs and finding people that complement them. If I have strong executors but am lacking in people leaders, I bring in someone who has that focus. Overall, I hire for an individuals strengths, not their lack of weaknesses. This ensures that I have a great, balanced team.

定义工程师成长路线Defining the Engineering Growth Map

进步是团队动力的关键。人们需要知道,团队对他们的期望是什么来不断挑战自己。常言道,“为你想要的职位而着装”。我也鼓励我的团队这样做,通过为每个职位设定期望和成功的细项,并在1v1期间进行评估他们是否有一个明确的职业发展路径和他们需要完成的工作的透明度。如果一个人表现出能力了,升职就会显而易见。
Progression is key to motivation. People need to know whats expected of them to keep challenging themselves. Theres a cliche, “dress for the position you want”. I encourage this behavior on my team too, in that by setting expectations and success profiles for every position and measuring them to this during 1-1s, theres a clearly defined career progression path and transparency around what they need to accomplish. If someone shows competency, promotion becomes obvious.

我以前以为努力工作就会获得升职。其实我不明白职位之外还存在很多事情。现在我看事情有点不同了。如果我的团队中有人只是努力工作,我不太会变动他的职位,因为他只是在完成工作。相反,我希望升职我的10倍工程师——不是仅仅把工作做好的那个,而是也指导周围的人把工作做好的那个。
I used to think hard work leads to promotion. This is because I didn’t understand why different positions exist outside of a title change. Now I see things a bit differently. If an individual on my team is working hard, I’m going to keep them where they are because they’re getting the job done. Rather, I’m looking to elevate my 10x engineer - not the one that’s the doing their job well but the one thats mentoring those around them to do their job well too.

推进核心价值观Enforcing Core Values

核心价值观是我确保每个人在他们的位置上努力的主要动力。对我来说,是否有统一的价值观,进行组织内协调工作影响非常大。
Core values are the main pulse for me to make sure individuals are the right people in their seats. For me it helps to be at an organization who’s values I believe.

比如说,Roundtrip有5条企业价值观
For example, Roundtrip has 5 values:

主人翁意识Ownership
积极主动Proactivity
适应力Resilience
倾听优先Listening First
保持简单Keeping it Simple

始终对标对这5种价值观,让团队始终处于高的战斗水平。
Holding myself and my peers accountable to these 5 values constantly helps keep the level of the team high.

带领我们完成使命Driving us towards our Mission

让我们所有人朝着同一个方向划船的最好方法是把使命当作真理的源泉和指路明灯。每一个人、每个过程、每次主动性都应该与我们的使命相对照,以确保我们离实现目标更近一步。
The best way to keep us all rowing in the same direction is to use the mission as our source of truth and guiding light. Every person, process and initiative should be measured against the mission to ensure it gets us one steps closer to achieving it.

随着Roundtrip 的增长,我们用使命来提醒自己要有同理心。一般公司很容易成为一个关注客户需求的“增长型组织”,但对于一个以使命为导向的组织来说,通过消除交通运输对医疗保健的障碍来帮助那些得不到周到服务的人,我们需要记住,那些对收入没有显著贡献的组织同样重要。每一位团队负责人都有责任不断地传达这一信息。
As Roundtrip has grown, we use the mission to remind us of empathy. It’s easy to become a “growth organization” focused on clients on their needs, but for a mission driven organization trying to help the underserved by removing transportation as a barrier to healthcare, we need to remember that those that don’t significantly contribute to revenue numbers are just as important. It’s the responsibility of every leader to push this message constantly.

流程管理Process Management

软件开发周期Software Development Lifecycle

一个好的软件开发生命周期(SDLC)帮助我们可预见地、一致地交付高质量的软件。虽然我已经有一段时间没做直接编程了,而且每个工程主管可能也都没有多少时间来编码,但是我仍然要对我们如何完成工作负责。
A great Software Development Lifecycle (SDLC) helps us predictably and consistently deliver high quality software. Although I’ve been out of an execution role for a while, and every Director of Engineering likely has very little time for coding, I’m still accountable for how we get things done.

正确的平衡是让我专注于产出、价值和成本,而让团队专注于结果。我负责报告做一个功能需要多少小时,或者每个sprint我们可以获得多少点,或者保持团队运行需要多少成本。我只能管理我能量化衡量的事情。
The right balance here is for me to focus on outputs, value and costs while letting my team focus on the outcomes. I’m responsible for reporting on how many hours it takes to create a feature, or how many points we can achieve per sprint, or how much it costs to keep my team running. I’m only able to manage what I can measure.

扩张团队Scaling the Team

我在扩张团队时的责任是双向的。向下,我有责任为团队他们找到合适的人,并把他们都安排在合适的位置。向上,是关于人力成本和人员优化的考虑。我必须在预算范围内工作,以便为公司的盈利能力做出贡献。在一个问题上砸钱很容易,但以一种负责任的财务方式来帮助公司瘦身就难多了。
My accountabilities when scaling a team go in both direction. Downwards, theres a responsibility to my team to find them the right people and i’m putting them all in the right seats. Upwards, it’s about costs and optimizations. I have to fall within budget so that I contribute to the companies profitability. It’s easy to throw money at a problem, it’s much harder to solve it in a financially responsible way that helps the company grow leaner.

当一个新的团队成员加入时,我负责创建入职流程,为他们提供必要的环境让他快速融入并取得成绩。我把它分成三个阶段。
When a new team member joins us, I’m responsible for creating onboarding processes that give them the necessary context to set them up for success. I do this by breaking it down into 3 stages.

第一步是确保他们“理解”。这意味着将它们引入组织、问题范围和我们现有的流程。
The first stage is to make sure they “get it”. This means introducing them to the organization, problem scope and our existing processes.
下一步是确保他们“想要”。在入职的这段时间里,我确保每个人都有正确的动机和动力。在公司,我开始用我们的核心价值观来衡量它们,并为它们设定一些目标。
The next step is to make sure they “want it”. During this period of onboarding, I ensure the individual has the right motivations and drive. This is where I start measuring them against our core values and setting some goals for them.
最后,我确保他们“能做到”。他们能挑战团队的其他成员吗?他们是挑刺者吗?对我来说,成功是维护一个不断发展以满足团队需求的过程,而我的衡量标准是拥有一个健康的工程文化。
Finally, I make sure they “can do it”. Are they able to challenge the rest of the team? Are they bar raisers? Success for me is maintaining a process that constantly evolves to meet the needs of the team and my measure is having a healthy engineering culture.

制定技术策略Define Technical Strategy

Roundtrip 技术团队分为两个团队——工程和产品。工程关注的是“如何”,产品关注的是“什么”。虽然我不负责定义产品路线图,但我有责任确保我的团队所面临的挑战也得到解决。我们每周开会,就我们需要把哪些事情,从解决历史技术缺陷到改善基础设施,放到路线图上制定战略。
The Roundtrip Technology team is split into 2 parts - Engineering and Product. Engineering focuses on the “how” and Product on the “what”. Although I’m not responsible for defining the product roadmap, it’s my responsibility to ensure that the challenges my team is facing are also addressed. We meet weekly to strategize on what things we need to be put on the roadmap, from fixing tech debt to infrastructure enhancements.

另一部分是定义产品架构以满足客户不断变化的需求。我过去更多地参与到解决方案的技术方面,但最近我不得不把自己从这方面抽身出来,专注于其他职责,并相信我的团队也能够做的很好。
The other part of this is architecting the product to meet the ever changing needs of our clients. I used to be more heavily involved in the technical side of creating solutions, but recently I’ve had to elevate myself out of this to focus on other accountabilities and trust my team to do this.

EOS

经营一家公司是困难的。Roundtrip 已经尝试了一系列系统来让我们保持在同一个方向上前进,使用下来最适合我们的是EOS。作为一个组织的领导者,我的职责包括管理我的团队L10会议,这给了我一个关于我们做得如何的每周反馈,让我们了解是否踩在正确的业务轨道上,这样我们可以快速识别和解决问题。
Running a company is hard. Roundtrip has tried a few different systems to keep us rowing in the same direction, but the one that’s worked best for us is EOS. As a leader in the organization my responsibilities including running my teams L10 meetings which give me a weekly heart beat of how we’re doing and helps us work on the business not in the business so that we can identify and solve problems quickly.

产品方向Product Direction

路线图的资源Resourcing for the Roadmap

本•霍罗威茨(Ben Horowitz)对公司的两个阶段——和平时期和战时——的定义最为贴切。
Ben Horowitz put it best when he defined the two stages of a company - peacetime and wartime.

在和平时期,我们经历了较长时期的增长,我们专注于打造我们的产品,为客户创造更好的流程。此时,产品团队定义了一个路线图,我必须确保工程团队有足够的资源来确保完成工作。
During peacetime, we experience extended periods of growth where we focus on building our product to create better processes for our customers. At this time, the Product team defines a roadmap and I have to make sure the Engineering team is resourced appropriately to ensure things get done.

在战争期间,例如当我们处于经济衰退时,我们需要优化路线图和流程了。在此期间,资源可能会非常有限,这意味着产品团队必须根据我们现有的资源来定义路线图。在这个时候,更多的是关注推动收入和客户留存和获客的计划,所以我的职责从为工作寻找合适的人转移到尽可能保持合适的预算,为我们现有的人找到合适的任务。
During wartime, for example when we’re in a recession, it’s time to optimize our roadmap and processes. During this time there’s likely restrictions on resourcing which means the Product team has to define a roadmap based on the resources we have available. At this time it’s more about focusing on initiatives that drive revenue and client retention and acquisition so my accountabilities shift from finding the right people for the work to staying as budget neutral as possible by finding the right work for the people we already have.

监督部署Managing Deployments

作为一名工程总监,我必须确保我们的交付与需求是一致的。如果有障碍的话,我必须指导我的团队克服它。部署通常是交付软件的最后、也是最困难的部分,因此我的重点是确保我们有一个可靠的流程。
As a Director of Engineering, I have to make sure we’re delivering consistently. If there’s a barrier to this I have to coach my team through this. Deployments are usually the last, and hardest part to delivering software so a lot of my focus goes in to making sure we have a solid process in place.

我还必须考虑部署对客户和我的团队的影响。确保客户感受到的影响尽可能小,同时由于部署时间不固定而需要保持团队的正常运转,这绝对是一个很难平衡的活。
I also have to take into account the impact a deployment has on both the clients and my team. Ensuring that clients feel as little impact as possible while maintaining my teams health because of odd timed deployments is definitely a tough balance.

负责集成Overseeing Integrations

开放帮助我们成长,但从技术的角度来看,这些举措会引入风险,因为有很多第三方的结果是我们无法控制的。从最初的技术讨论到实现和上线,我一直关注正在运行的流程,以确保事情顺利运行。到最后结束的时候,我们只有一次机会留下第一印象,所以对我来说,确保我们留下一个好的印象是很重要的。
Exposure helps us grow, but from a technology perspective these are the initiatives that introduce the most amount of risk because there’s a lot of third party influences we can’t control. From initial technical discussions through to implementation and onboarding I keep an eye on the processes being run to keep things running smoothly. At the end of the day, we only get one chance at a first impression so it’s important for me to make sure that we give off a good one.

访问控制Access Control

这部分是为了确保我只给人们提供他们需要的东西来限制风险。但这也有另外的含义。我还想要确保我的团队每一位成员感到被授权并拥有他们所创造的产品。我试着雇佣聪明的人去做聪明的事情,把任务委派给他们,让他们有机会去做,让他们有掌控感。
Part of this is making sure I limit risk by only giving people access to the things they need. But there’s a different dimension to this too. I want to ensure my team feels empowered and owns the products they’re creating. I try to hire smart people to do the smart things and delegate tasks out to them to give them access and make them feel in control.

开发vs购买模块Building vs Buying Features

随着当今可用服务的数量越来越多,有时只需将其他产品拼接在一起就可以很容易地生成一个产品。但是这样做你会失去很多功能上的控制和产品特性。作为开发人员,决定自己开发所有东西也很容易。但是这样做会浪费时间,增加项目复杂性。
With the number of services available these days is so easy to create a product by just stitching other products together. But by doing this you lose a lot of control and specificity in functionality. As developers, it’s just as easy to decide to create everything ourselves. But by doing this you lose time and increase complexity.

在我的立场上,它是关于不断地在我的头脑中有“构建vs购买”的争论,如何优化成本,并保持事情简单。总的来说,如何选择这取决于哪个决定能给我带来最好的投资回报。
In my position it’s about constantly having the “build vs buy” argument in my head to optimize on costs and keeping things simple. Overall it comes down to which decision is going to give me the best return on investment.

总结Conclusion

成为一名开发工程负责人是具有挑战性的。你需要对于人与技术都负责任。这就意味着最大的问题会落在你肩上,而且往往是祸不单行。没有时间表或难以预测,这肯定是一个工作,直到阻碍因素被去除,而不是一个标准的9-9-5。
Being an engineering leader is challenging. There’s multiple accountabilities, both towards the people and the technology. This inherently means that the biggest problems fall on your lap, and often when it rains it pours. There’s no schedule or predictability, and it’s definitely more of a work until the blockers are removed rather than a standard 9-5.

但如果你接受了挑战,你会看到你的工作在同事和产品上的直接结果,你将得到难以置信的回报。
But if you embrace the challenge you see the direct result of your work in both the people and the product which makes it incredible rewarding.