Those of you that get involved in the very early stages of a software project might have heard this a few times before.
We just need a quick tactical solution.
In my experience, there is no such thing as a tactical solution and a translation of what is really being said is as follows.
We need something built as quickly as possible and, although we *think* it will have a limited lifespan, it will more than likely remain in use for some time into the future.
In the fast paced world we live in, everybody wants everything as soon as possible. Building something quickly isn't the same as building something tactical though. For me, a tactical solution can be thought of as a stopgap. It's an interim solution. It's something potentially quick and dirty. It satisfies a very immediate need. Importantly, it has a limited lifespan.
Working software is what our industry is all about and when people see it, they often start thinking about new ideas. And it's here that the biggest danger lies. On paper, a tactical solution looks exactly that; tactical. A real-life, working tactical solution can easily be perceived as something much, much different.
Being the software architect of a tactical solution is a potentially tricky situation to be in. On the one hand you have to balance the need for a fast delivery and on the other you have to balance the key non-functional requirements such as performance, scalability and system lifespan.
I want to keep this blog entry short so I'm going to finish by saying that there is no such thing as a tactical solution. As an anecdote, the last tactical solution I built has been running since 2005. I'm sure you have similar stories. Next time I'll share some of my thoughts and experiences about designing a tactical solution.
Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.