In preparation for doing the Enterprise and Solution Architecture course and exam from the Chartered Institute for IT I have started reading the book ‘Simple Architectures for Complex Enterprises’ by Roger Sessions from Microsoft press.
While this is primarily a book focused on solution and enterprise architecture, the main point it focuses on is the often overlooked one of simplicity. The basic premise is that the most simple solution that meets the requirements is the best solution.
The vast majority of IT projects, even those that appear relatively straight forward run over time or over budget, or both. This is despite rigorous project processes (e.g. SDLC), and well understood architectural frameworks (e.g. Zachman, TOGAF).
The reason for this is that none of the project processes or architectural frameworks directly address complexity. They do provide much needed rigour around how projects are run, and ensure that architects and the business can talk the same language via the use of agreed frameworks, both of which add great value, but neither of which prevents unnecessary complexity from creeping into solutions.
In addition to both increased cost and time to delivery overly complex solutions are much harder to;
Maintain – which component is causing the issue when trouble shooting? Will patching one part impact others?
Secure – Simple solutions are easy to test and make secure from the outset, complex solutions are likely insecure from the outset and near impossible to fully understand and secure further down the line.
A further post will follow covering some of the techniques outlined in the book around understanding complexity and eliminating it from solutions to even complex problems.
In the mean time, keep it simple and remember just because your business or the problem you are trying to solve is complex that does not mean the solution needs to be complicated!