There is a software domain where Agile may not necessarily be the ideal framework for delivering software. David Jeske, a former director at Google offers his insights why at Google – the Agile framework isn’t the ideal solution. Business-led engineering is great for projects which require short-term planning, direct customer contact and continuous iteration which usually has a simple core and lots of customer visible features that are incrementally useful. However, more technically challenging software could have a simple user interface but tonnes of hidden technical complexity, which isn’t useful until it is more or less complete.
Google is known for building world-changing products which haven’t been made previously. These products won’t work until their complex subcomponents are written. Jeske, draws upon two examples which are of distributed databases: Borg and Bigtable. Bigtable is a widely copied design for a distributed database, and Borg was one of the first extremely large scale cluster/cloud managers. Projects like these take significant up-front design time (anyone remember Waterfall), where one working on 2-week sprints just doesn’t work. Most of the complexities would never be visible to the end user – so the idea of Agile user stories and customer journeys just doesn’t work. These projects can be thought of as anti-scrum, they require extremely long term thinking from their respective technical leaders. Essentially they were laying the foundation of how cluster based software was developed. This architecture has changed how the entire industry works. There are also a number of other industries where shipping products fast just doesn’t work; such as tax-accounting software. If any of you are aware of the complexities surrounding the UK tax code, shipping a product fast may not only be problematic but may also find you on the wrong side of the law.