I’m at the Future of Web Apps Conference, London this week – there are some really interesting presentation, which I will post about over the next little while but to kick things off I wanted to talk a bit about Amazon’s ‘two pizza team‘ philosophy.
Werner Vogels, Amazon’s CTO presented a paper on “Why and How Its Easier Than Ever Before To Build A Web Business and Compete With Anyone” – in which Werner discussed Amazon’s Web Services S3 (Simple Storage Service) and EC2 (Elastic Compute Cloud) – and how they can be leveraged by third parties (such as Smugmug, Second Life and YouOS.com) to build web apps at significantly reduced costs. The services look fantastic, I’ll write about them in more detail another time, but for now I want to discuss something that Werner mentioned in passing, in response to a question: Do Amazon developers use the Web Services?
It appears that they do. The Amazon development teams use the Web Services (such as S3 and EC2) to provide a framework on which to build products. What is interesting is that these project teams are small: if they can eat more than two pizzas, it’s too large (i.e. no more than 8 or 10 people).
The two pizza rule appears to me (Werner didn’t expand so I’m making the next bit up) to be a great way of making sure that a problem is broken down into small, bite size (sorry), chunks. This is a very good idea because:
- it means each multidisciplinary project team tackles a specific, well defined, business problem – they know what they are aiming for;
- the team is closer to the business owner or user – in big teams it is easy for team members to hide;
- the team can’t get too distracted nor over engineer the problem;
- the team should be more efficient because there should be a lower communication overhead – both within the team and between teams;
- it reduces complexity and therefore risk because the problem is partitioned;
- the team should have greater velocity and be able to iterate more rapidly;
- and finally if a project does go belly up it means the company hasn’t invested too much.
This approach to application development enables Amazon to be both relatively nimble in its application development and deploy an entirely new (i.e. non-core) service to a different market segment – helping it to diversify its offering. And there aren’t too many big enterprises that can say that.
Photo: Pizza Man, by Dickuhne. Used under licence.