In my previous company I worked on a major enhancement to a legacy application where we inherited a smorgasbord of unit tests — approximately 7,000 tests in total. Whilst enhancing the application we spent an inordinate amount of time fixing broken tests. Of course requirements changed and so it was necessary to re-write tests to reflect this. But in this case rather than being facilitators, the tests became an impediment to innovation and change, and hence an impediment to quality. The unit tests were fragile.

So how could this have been avoided? In this article I’m going to be outlining…


I’m going to show my age by admitting that I was a certified Microsoft Solution Developer back in 2001. The core module for this certification was “Analysing Requirements and Defining Solution Architectures”, and one thing from this that has stuck is PASS ME, an acronym for non-functional requirements: Performance, Availability, Security, Scalability, Maintainability, and Extensibility. I’ve used it over the years as a quick ready reckoner. But it’s incomplete. It’s missing a very important S — Simplicity.

KISS (Michael Ochs Archives/Getty Images) — Keep It Simple Stupid

The importance of simplicity was reinforced for me recently as a result of being asked to perform peer reviews of event-driven solution architectures.

Ross Whitehead

Enterprise Architect @ Nationwide

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store