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
Product engineers solve user problems, but there why are there so few of them?