And the worst thing I've seen startups do is that they organize teams based on the technology instead of based on the goal or the purpose of what you're building. So if you organize your teams like that, you're going to end up spending a lot of time being blocked. You're mostly going to be waiting. You build the thing, you build your part of the thing, and then it goes to another team and then another team and you end up with a very linear, slow process.
Whereas if you can orient your teams based on their purpose, based on their goal, so like an admin team that owns admin users, a buyer team that owns buyers, a growth team that focuses on growing the product, you're going to spend a lot less time being blocked by other teams and being able to build projects or new features, start to finish as part of a single group. The goal of doing that is that you want to deliver value without being blocked. And there's many different names for this sort of team structure. Some people call them empowered teams, extreme aligned teams, business capability-centric teams. It's all consultant capability book, and it just depends on whose book you read.
The main goal, the main point everyone is trying to convey when they talk about this is you want a team that can ship features from start to finish without getting blocked. And part of that, my favorite part of that is that you get to own your own mess. So I used QA as an example. Um, if you have engineers that get that on their own mess and that they're, that are accountable for the things they ship, you're going to have a lot fewer bugs. It feels slower, but you're actually going to have a lot fewer, a lot fewer issues. So for example, a couple of days ago, I got paged at like 3am, kicked out of bed, went to look at the alerts, and it was something incredibly stupid and dumb. Now guess what I've made really sure was fixed the very next day. Um, you know, I got paged, I fixed the bug in one day and the bug, and that's not going to happen anymore, which is a lot faster than how a lot of, a lot of teams get to do it. Also a bit more stressful. Uh, the other part of having vertical teams that can own their domain is that you can focus on a better product engineering partnership where engineers work on getting us across the water, not just building the bridge.
So you end up with this circular feedback cycle instead of a linear process where you get to work together with product to build the, to build those flowers that, um, that customers want to move faster. It lets you, it lets you build faster, um, uh, using feedback cycles, and you can iterate on solutions. I, I personally find it very rewarding as an engineer where, when I can talk to the customers, understand their needs, design, uh, design my code and my products as a way to solve those user needs and then, um, give it back to them and iterate on those solutions. The idea is that you can build stuff that you can build the appropriate solution for your use case, not just something you heard about in the talk. And that's what engineering is really about. What that means is that yes, sometimes you're going to have to merge really bad code that sucks, uh, because at the end of the day, your code doesn't need to be perfect. It just needs to work. So you're going to have to let go of your ego and let other people experiment with different approaches. It's okay if somebody writes code in a way that, uh, in a different way than you would write it because it's fine, as long as it works. And as long as those engineers own their own mess, uh, if it breaks, they're going to fix it. If it works, it's great.
Comments