Organizations tend to set up their engineering organization in one of two ways. Either engineering is considered the delivery mechanism for the company’s plans or engineering is considered to be leading the product. Many organizational problems arise from mismatches of expectations between these two camps.
Engineering as delivery is first and foremost optimizing for predictable schedules. Work needs to be broken down into specified chunks and distributed to engineers. Teams are coordinated via a project management function. Promotions happen because of a track record of delivering on time.
Engineering as product is first and foremost concerned with solving user problems. Work needs to be shaped and discovered by having a deep understanding of their users—teams often talk to users directly. Roadmaps evolve as understanding of the user, the problem, and the solution evolves. Promotions happen because of consistent ability to make good product decisions and ship features that users love.
Issues arise when expectations are not clear. For example, a team at an engineering as delivery company that comes up with a product idea will likely get dismissed because it won’t fit into the schedule.
Links to this note
-
How to Be a Good Product Engineer
Companies don’t really want frontend engineers or backend engineers or infrastructure engineers. If you work at an engineering as product organization, they want good product engineers solving user problems. As an industry, this is poorly understood and little is written to help people understand the principles of good product engineering.
-
There Are Surprisingly Few Product Engineers
Product engineers solve user problems, but why are there so few of them?
-
Don’t Ask What the Problem Is, Ask What the Situation Is
It’s common in product and engineering circles to constantly ask people “what problem are you solving?” While this can be useful for focusing work on the right things, it also leads to solutions disguised as problem statements and self-referential arguments. Instead, ask “what’s the situation?”. This gives space between facts and the interpretation of those facts which makes it easier to understand and spot errors.