The Blog
The architecture that could not work
published November 29, 2009
I had an interesting conversation with our architect about dysfunctional software architectures and their impacts on projects developed on those architectures. I have seen some overly complex software/enterprise architectures that just make simple things too difficult. When project is started to build solution on dysfunctional architecture, it is very hard for it to fill customer expectations and to be productive enough. Sure, every architecture will have its weak points but I am talking seriously flawed ones here. Simplest reason for a dysfunctional architecture can be lack of a architect role for a platform or maybe he just is not competent enough. However, you might have company’s “best architect” on team and still have rough time.
Where did these non-functional requirements came from?
Some harder cases we have encountered are the ones where customer wants to make architectural decisions that will affect whole platform. If these decisions are not sound, we are headed for trouble. Software experts might get instantaneous architecture smell, but it might be hard to pinpoint exactly what problems proposed solution will cause in the future or why it will not work. You get gut feeling that everything is not right here. In these cases it is very important to find out why customer will want to affect architectural decision and to steer discussion towards business requirements behind these ideas. You should never build solutions technology ahead, always discover business needs beneath and design best technical solution for it. It is very important not to commit yourself once you get the smell.
Validating archtecture beforehand
In smelly cases, try to build a proof of concept and experience exactly how it will not work. As stated above, this can be hard without POC. Of course it also could work. To fully explore all possibilities, set-based design (read more here) can be used.
What if customer is so in hurry that there is absolutely no time for a POC? Then I would try to prepare for problems and design system so that flawed parts of architecture are isolated with anti corruption layer, which is easier to refactor later.
Once work has started
It is hard to change foundations of software/enterprise architectures even if everyone sees that selected architecture does not work as planned. We as humans have a tendency to decide a way to solve a problem and keep investing into it, even if correct action would be to discard it and start over. Too often we will not want to admit a mistake. In addition, there can be lot’s of organizational politics behind this. Usually, in these sad cases, money keeps pouring in…
No Comments to The architecture that could not work


Subscribe to RSS feed
The Tag Cloud
Agile Business Coaching Coding horror Conference Customer Design of Experiments Future Group dynamics ITIL It should not be that hard Java EE Kanban Leadership Lean Liferay Methodologies Natural UI Performance tuning Process Productivity Quality Retrospective RIA Scrum Six Sigma Social psychology Software Software architecture Testing This is great TOGAF
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.
Samuli's Links
The Blog Archive
February 2012 (1)
January 2012 (1)
November 2011 (1)
June 2011 (2)
May 2011 (1)
April 2011 (2)
March 2011 (2)
February 2011 (1)
January 2011 (1)
December 2010 (1)
November 2010 (1)
October 2010 (3)
September 2010 (3)
August 2010 (5)
July 2010 (2)
June 2010 (3)
May 2010 (4)
April 2010 (2)
March 2010 (6)
February 2010 (7)
January 2010 (3)
December 2009 (7)
November 2009 (6)
