'Simplicity is the ultimate sophistication' - Leonardo da Vinci



Clean Architecture

The Agile Toolkit Podcast had a great episode this last week. The interview was with the author of Clean Code, Bob Martin on the topic of clean architecture, among other things. One statement that was made during the interview, and I am paraphrasing Bob, was that the various technologies that make up a system architecture (i.e., the database server, web server etc.) are just the implementation details, they ARE NOT the architecture. He stated that an architecture consists of the use case scenarios for a system. I tend to agree with that line of thinking. I think there tends to be an inappropriate emphasis put on things like: the dbms (Oracle, MS SQL Server, NoSQL, Hadoop etc.), the programming frameworks/languages (i.e. Java, .Net, Ruby, PHP, JavaScript, JSON, JQuery etc.) and not as much on the features that must be built. There is certainly too much architecture built around database vendor products and services buses.

Technological tools serve at the pleasure of those building the solution. Could you imagine building a house with brad variety nails (i.e. something you'd use to hang a painting) because you only have a 4oz. Ball Pein hammer? The usage scenarios should drive the tools that are selected to build a solution, not the other way around.

steve kurtz