The Eight Basic Principles for Effective Product Organisations
Software engineering is a scientific approach to discovering and implementing software within economic constraints. It’s damn hard, specifically the last part (without constraints, it would be easier). This publication describes how we work as efficiently as we can.

Here are eight basic principles that make product organisations effective.
The principles are grouped into three critical capabilities: Delivery predictability (what gets done of that that was committed), Team engagement (how many would recommend the company), and Value realisation (how much makes a real difference to the customer). These capabilities are measurable and indicate how effective the organisation is.
Delivery predictability
1. Estimate complexity, calculate plans
Effective teams deal with the immense uncertainty inherent in every complex software endeavour. Teams that ignore uncertainty will suffer more stress and burnout than those that effectively manage it. The best way to deal with uncertainty is to quantify it. It is more valuable if the team collectively says that the uncertainty is 4 out of 5 than if Bob has one view and Alice another.
The key insight is the distinction between complexity (simple vs. complex) and effort (easy vs. hard). Complexity can be estimated objectively, as long as the team agrees on a solution (which it must, anyway). Effort, on the other hand, is subjective. It’s easier to estimate complexity: if you only count the number of things you have to do, you already have a reasonable estimate. By working in fixed time slots (sprints), you can estimate the probability of some amount of complexity getting done in a slot. With that, you can calculate a plan with delivery dates.
2. Make every delivery a working system
Teams that focus immediately on tangible results — rather than process, preparation, and planning — will receive better customer feedback and are more likely to deliver on customer expectations in the long run. Teams that, at the beginning of a project, get stuck on “setting things up” or “building the platform” usually never catch up later. It is always possible to identify a few short-term customer values for which the ingredients are in place.
By consistently delivering a working system, you keep the customer closely involved in the project, learn about their trait, and are more likely to meet their expectations.
The key insight is to understand the distinction between vertical and horizontal development. Technical systems have vertical layers, such as the data layer, business logic layer, and user interface layer. Developers tend to build a technical stack either top-down or bottom-up.Customers, however, don’t see the vertical layers. Customers are expecting a steady flow of small features, each with a part from each layer.
Team engagement
3. Aligned Autonomy
Teams create their purpose within the directives set by the overall organisation and processes. A team leader ensures the team is aligned with the rest of the organisation. Autonomous teams that are misaligned with their environment don’t deliver the expected value and can fail to deliver are dangerous.
4. Takes Ownership
Highly effective product teams don’t depend on fixing it later or wait for customers to ask them to improve system quality. The effective teams take the responsibility for their own system. Once the team takes ownership of polishing and tidying their own code, as an integral part of the process, the cost gets built into the estimates, as it should. Customers expects a high quality system.They will not request platform quality as a feature. It’s expected to be built into.
5. Collective Output
Highly effective product teams collaborate to deliver tasks as a collective outcome. No member delivers anything on their own. This makes the team different from a coordinated group. The collective output
Value Realisation
6. Bugs are fixed immediately
The software from highly effective product teams is always working and free from known bugs. The cost of a Zero Bug Policy
- The definition of done is a checklist. Effective teams don’t wait for the obvious. Testing, monitoring, analytics, and logging are not the subject of endless discussions. They are always there, making every delivery ready for launch when it’s said done.
- The backlog is a prioritised list of functionality the customer finds valuable. Effective teams starts