There are a few camps in the world of Software Architects. It’s not a question of technology choices, although it may seem that way. The truth is that technology changes so fast it would be foolish to hang one’s beliefs on it. In a career in software you know for certain that today’s great technology is going to be completely obsolete in twenty years time. Being open to new technologies is the only way to be certain you will not become obsolete yourself.
Instead, these camps are really centred around a set of core beliefs about the purpose of architecture, and what the unstated underlying goals are. Architecture is ultimately a set of economic decisions – every decision carries costs and risks, and these must be balanced. How one weighs these factors in the consideration of an architecture is affected by these underlying goals.
Here at Isotoma we’re pretty firmly in the camp of what I guess you could term the “new pragmatists”. This approach is typified by things such as using REST versus SOAP for system communication, for example, although not limited to it.
Briefly, REST is an approach to communication between distributed systems. It tries to leverage the successful patterns inherent in good Internet application design. We use it very successfuly, and it fits well with our technology choices. This is not an accident – the technology is chosen to fit the overall approach.
The “toolset” guys on the other hand are real believers in their tools and IDEs and autogenerated this and graphically powered that. They want to be able to make building applications easy, which is kind of laudable, but misguided. Every added bit of ‘easiness’ for one person adds layers of unnecessary complexity – and unnecessary complexity is our real enemy, as software architects.
Ryan Tomayko puts this really nicely:
A lot of REST adherents, myself included, have come to appreciate REST only after believing and then eventually giving up on the notion that distributed systems design could ever be easy. You eventually find out that easy is not feasible and go for the next best thing: simple; manageable with reasonable effort and care.
REST was basically dreamed up by a bunch of individual geeks, doesn’t have a standards body and has no big software companies behind it. The “toolset” approach has a whole ecosystem of vendors and manufacturers champing at the bit to make it the de facto standard, so then you can buy their shiny development tools. In previous iterations of the software business the victory of the vendors has been a foregone conclusion. They place the adverts in the publications that IT managers read, and they buy what is advertised.
This time around, amazingly, it looks like instead we are winning, or may even have won. The blame for this can probably be placed on the Internet, and the way it has allowed a community of practice to develop outside the grind of the trade shows and vendor sponsored events that previously dominated the computer business.
So, what’s more amazing, the fact there actually is a grassroots movement in something as obscure as Software Architecture, or the fact it seems to be beating huge organisations with large budgets? I don’t know, but I think it bodes very well for the future.