At regular intervals, we architects need to clean up a messy situation. Systems proliferate like weeds. Integrations become a tangle of underground and aerial roots. Databases and file systems bloat up like fat potatoes.
To clean up the garden and get a nice little patch of neat, well-tended and healthy plants I have refined a technique over the years. It works in most cases to get from information via analysis to optimisation. There are 4 stages to it.
First, I need to have or create a good taxonomy. This is vital. The ability to classify things is one of the highest capabilities we have evolved. When put to good use, it is a powerful tool to create and maintain order out of chaos. The better the taxonomy, the faster complexity resolves. For example, I use types for business functions, systems, integrations and repositories. It is especially nice when I have to create a new taxonomy or extend an existing one. I enjoy this phase the most and savour it while it lasts.
Second, I identify or discover all the objects in the field and classify them into their types. The discovering of hidden or obscured objects can take a while. I do it as far as possible, taking all the necessary help. For example, it may take a while to find all file transfers that are happening or all archives. I am not always sure I have found every item but have learnt when to stop digging and move on.
In the third step, I put a unit of size for the items of a type to be able to compare them. For example, it can be functional importance on a scale of 1 to 10, load, infrastructure cost or software cost. All types do not need to have the same scale or measure. Next, I sort each typed list in descending order of size. This is a great moment of anticipation. It reveals if what I had known and felt before I started was right or uncovers something new. Either is satisfying in its own way. The sizing and sorting allow the most rapid application of the benefits in the fourth step below. It also allows me to decide where to stop the process. It is surprising how often the top quarter to half is the source of most of the chaos.
The fourth and last step is where I rationalise within each type. I apply the principles, standards and guidelines of our practice. And common sense. I remove redundancy and reposition functionality. I refactor bad integrations, apply standards, reuse data and so on. Does it sound tedious? It is not as hard as it sounds as the classification and sorting I did earlier guides me. The picture simplifies in front of my eyes, cleanliness spreads and savings appear. It is not as pleasing to my heart as taxonomy. But it sure is gratifying for my mind, being the raison d’etre of the programme.
So there you have it, my recipe for cleaning up the field — Classify, Size, Sort and Rationalise.
Footnote: Can we apply this outside IT architecture? Non-architect readers can consider this.
Shashi on LinkedIn