Engineering Management

How Engineering Management Works at GitLab

At GitLab, we promote two paths for leadership in Engineering. While there is a healthy degree of overlap between these two ideas, it is helpful and efficient for us to specialize training and responsibility for each of:

While technical leadership tends to come naturally to software engineers, professional leadership can be more difficult to master. This page will serve as a training resource and operational guide for current and future managers.

On this page

General leadership principles

All Engineering Managers should follow the general leadership principles set out in the handbook. In particular, it is not uncommon for Engineering Managers to struggle with one or more of the following areas, so we recommend you review them carefully and discuss your confidence with your manager:

Hiring

Technical Credibility

We expect all managers at GitLab to be technically credible with their teams. Fluency in our core technologies and architectures is essential because it enables managers to participate effectively on technical conversations. In order to maintain this fluency, we encourage managers to participate in coding-related work to an extent. However, please keep the following advice in mind:

Career Coaching for Developers

Outside of hiring, the best way to improve the strengths of your team is to practice career development coaching with your developers. While they will not all become Staff Developers or Engineering Managers at GitLab, identifying their career goals and proactively working towards them is the most effective way to help everyone improve. In addition to the company-wide notes on career mapping and development, here are some important considerations for the Engineering team:

Project Management

Product is responsible for guiding the direction of our product, and technical leaders are responsible for guiding the technical architecture to meet those requirements. While Engineering Managers can and should participate in both of those conversations, their primary responsibility lies in project management: making sure their team is best positioned to meet both goals as effectively and efficiently as possible.

Team retrospectives

In addition to the public function-wide retrospective, each Engineering team should be in the practice of holding their own retrospectives. The results of these retrospectives should then inform the function-wide retrospective for any given release. More information on running effective retrospectives is available here.

Measuring Throughput

There are many ways to develop engineering metrics and gather data to help with planning, addressing technical debt, capacity to work on bugs, identifying bottlenecks and improving engineering efficiency. The goal of establishing these metrics should never be punitive. Engineering metrics are gathered to support a healthy dialog amongst the engineering team and with stakeholders. It is important to note that engineering metrics are project or team based and are not intended to track an individual's capacity or performance.

We are currently implementing throughput to measure and track capacity across all engineering teams. For more information, see the dedicated page on throughput.