小型工程团队的魔力
The magic of small engineering teams

原始链接: https://newsletter.posthog.com/p/the-magic-of-small-engineering-teams

《工程师产品》是 PostHog 为旨在打造成功初创企业的工程师和创始人提供的时事通讯。 PostHog 建议不要失去小公司在成长过程中所拥有的敏捷性和创新优势,而是将团队组织成小型的、自治的单位,称为“小团队”。 这些团队由 2-6 人组成,专注于产品或公司的特定领域,就像大型组织中的独立初创公司一样。 目前,PostHoc 拥有 47 名员工,分布在全球各地,分为 15 个这样的团队。 团队范围涵盖从产品开发到支持、营销和运营。 根据需要组建新的团队,允许不断进步和新想法。 例如,作为 CDP 项目发展的一部分,新团队专注于增强客户数据平台。 针对小型团队的规则包括保持最佳团队规模以实现决策和协调效率——大约四到六人。 小团队管理每周的冲刺、设定目标、确定路线图的优先级、与他人协作并通过 GitHub 等渠道进行公开沟通。 他们决定哪些功能可以投入生产并保持完全自主。 每个团队每季度都会概述目标和举措,以促进组织内部的透明度和一致性。 所有权仍然至关重要,这意味着团队成员负责推动结果、解决错误并根据需要与客户或同事互动。 总之,PostHog 的小团队战略旨在在增长的同时保留精益、敏捷的初创公司的精髓。 通过权力下放和培养强烈的责任感和责任感,组织可以取得令人印象深刻的成果。

在保持敏捷性的同时扩大初创公司的规模是一项复杂的挑战。 与大型组织相比,公司通过每名员工的运输量更高来获得竞争优势。 然而,随着增长的发生,保持这种优势变得越来越困难。 每个软件或功能都会产生相关成本,特别是长期维护成本。 随着时间的推移,维护责任不断扩大,导致每位工程师的产出下降。 当我们将维护任务(例如转移支持角色)标记为“产品”时,就会出现一个常见的误解。 事实上,这些行为会导致创建新产品的进度变慢。 例如,作者详细介绍了他们将支持人员转变为通信团队的经验,这是维护工作的一种形式。 过去,团队可能会使用具有严格许可要求的特定硬件编译器。 这些系统效率低下通常会导致严重的延迟,促使许多团队转向更灵活的替代方案,例如 GCC。 许可挑战包括运行并行进程时冗长的编译时间和不一致的结果。 通过倡导改进并确保高管的支持,可以实施有效的变革。 随着公司的发展,重点从解决个人问题转向管理整体反馈循环。 领导者需要仔细的规划和协调,为自我管理的团队设定明确的方向,有效地指导他们,而不是对每个细节进行微观管理。 确定需要关注的领域并进行相应调整,促进持续创新和进步至关重要。
相关文章

原文

Welcome to Product for Engineers, a newsletter created by PostHog for engineers and founders who want to build successful startups.

Startups ship more per person than big companies – everyone knows this. But how do you retain that advantage as you scale?

Our answer is small teams – speedy, innovative, and autonomous one-pizza teams where individuals can still have an outsized impact. They enable us to scale, while retaining the culture and speed of an early-stage startup.

This week we're sharing how they work, why we chose this structure, and the tradeoffs we accept to enjoy the benefits of small teams.

Right now we're 47 people spread across ten countries working asynchronously and shipping fast. And we’re organized into 15 small teams.

Most teams cover individual products, such as data warehouse, replay, pipeline, or product analytics, but we also have small teams covering people and operations, marketing, and growth.

When we launch a new product, or a project on an existing team becomes too large for the current team, we often spin out a new small team. This allows us to push forward with new ideas and keep shipping without sacrificing quality.

Right now, for example, we're in the process of scaling support by moving our support engineers out of the customer success team and into a new customer comms team. We're recruiting support engineers for that team, by the way.

We've also created a new team with the mission of making our customer data platform (CDP) a first-class product – a project spun out from a hackathon project at our recent all-company offsite in Mykonos.

The small teams structure is core to how we've designed our company for speed, but it only works if you follow these rules.

Two to six people is ideal. More than this and you have a department, which is what we're trying to avoid. Less than two people and, well, you don’t have a team.

Small teams are effectively one-pizza teams, as opposed to the two-pizza teams idea popularized by Amazon. They’re mostly comprised of product engineers – i.e. engineers who also talk to users, and own product decisions.

The overall goal of small teams is to own an area of the product or company, and behave like an early-stage startup. They don't have all the functions of a startup, but their spirit and approach to work should be exactly the same.

This startup-made-of-startups structure minimizes the number of centralized processes and the need for lots of layers of management. It biases to the maker’s schedule – and makers get shit done.

Each small team runs its own retrospective and sprint each week, with notes taken and shared in GitHub for the entire company to see.

Small teams also make the final call on which features get into production, with no need for external quality assurance or control. And they can merge whenever.

Each quarter, every small team at PostHog outlines their goals and projects for that period. We prefer goals orientated around what teams will ship, rather than more abstract goals like "increase conversions by 10%". Our executive team will give feedback on this to keep everyone on track.

And, as each one is like a startup in its own right, they’ve got to cover everything. That means:

  • Prioritizing their roadmap and talking to customers

  • Monitoring relevant metrics, including those covering usage, quality, and revenue

  • Triage and fix bugs related to the products or areas they’re responsible for

  • Assist the support hero in answering related questions

  • Collaborate with other small teams such as marketing

One of the purposes of the small team structure is to keep a startup’s structure flat even as it scales. That means minimal layers of management and lots of autonomy.

Each small team has a team lead who is responsible for its performance. They’re not always the most experienced person on the team – we prefer to choose the person best-suited to leading the product the team is working on. Because we’re engineering-led, product teams are always led by an engineer.

Team leaders do not automatically equal managers. Team leads are responsible for making sure that teams perform well and for giving direct feedback. Managers have a different remit. They’re more focused on the happiness of direct reports and setting the right context for people to do their jobs, onboarding new hires, and discussing performance issues with the executive team.

A team lead’s remit is deliberately more product-focused.

Regardless of size or scope, each team has its own mission that feeds into our overall company mission of equipping every developer to build successful products.

The growth team’s mission is to maximize the number of people who get value out of PostHog, and help them realize and leverage all the value we offer. The infrastructure team’s mission is to make deploying, scaling, and managing PostHog easy, fast, and reliable.

As well as a main mission, each small team also sets:

  • Long-term goals and key metrics

  • What features or processes they own

  • A target customer (they can be external or internal)

All of this information is in our handbook and updated when changes are made and confirmed each quarter.

This keeps everyone on the same page and makes it easy for anyone in the company to quickly find out what other teams are working on, and why.

We’d rather hire new people than keep moving people around to fill gaps.

That said, we’re happy for people to move between teams when needed, ideally no more often than every three to nine months.

There are two scenarios that could trigger a move:

  1. A small team may realize they no longer need someone, or that they could use the help of someone internally on another small team.

  2. Someone might want to move to another small team to develop their skills or experience.

Rather than the team lead making the call, it’s always the manager who decides if one of their direct reports should move between teams. But, once in a small team, you’re only in one team. Someone being in multiple small teams at once defeats the purpose of ownership.

If someone feels the need to be in more than one small team, that likely means we need to hire. That can mean we’re overstaffed at times, but ultimately good people will do good work to push our product forward. And it’s better to have slightly overstaffed small teams than to be perpetually understaffed, and for your product to suffer as a result.

Small teams are also able to work with other small teams on multidisciplinary projects, and members of one small team can and should attend meetings on other small teams to help with collaboration if needed.

Small teams aren’t perfect. And sometimes, to make them work, we’ve had to create workarounds and accept some tradeoffs. Here are some examples:

Some overlap is inevitable, especially when teams work on features that are used across multiple products. We mitigate this by being aggressively transparent. We also have a list of everything we do and who owns it, so it's easy to see who someone should talk to about a shared problem.

This isn’t unique to small teams, but we still mitigate against it. If a product or project doesn't have a clear owner, our fuzzy ownership process encourages people to create a PR and find a solution. If a problem is big enough and it doesn't have an owner, we sometimes form a temporary team just to solve that problem. We also actively encourage people to step on toes in a low-ego way.

Small teams allow us to ship fast. But the tradeoff here is that we tolerate some level of not-so-great integration in exchange for speed. This isn't a problem unique to PostHog. AWS is a great example of a very, very big company that favors speed over integration.

Not everyone will embrace this way of working. It requires people who take extreme ownership of ideas, are self-starting, authentic, and low-ego. We've developed some strong opinions about the kind of people who work in this culture, and those that don't.

Words by James Temperton, who is one-fifth of a small team.

联系我们 contact @ memedata.com