This is why is pays off when modellers in software analysis are aware of complexity. Part I:
Recently was asked to write a little program for the 8-Queens problem. So I wrote a highly scalable, reliable and maintainable app server with a super easy and sexy user interface, all written in an ultra-portable and adaptable language and style, and the solution looked like this:
8-Queens problem ‘technology driven’ solution.
For some reason my client wasn’t satisfied with this solution. Then I discovered that beyond the actual technology there is something called business logic*, and – most surprising – it was not trivial!
If the above sounds familiar to you, you might agree that business logic is what software development is mainly about in the end, and – yes – it has complexity! Now you can implement the business logic and finally wonder how slow your software runs, or how long it took to implement, or how expensive it became, or alternatively you can try to deal with complexity before you have to bother with its consequences.
Adressing complexity issues in business logic early, that is what ‘Complexity Aware Modelling’ is all about. (more to come …)
* or simply ‘functionality’ or …
In case you prefer a less ironic version of what I’m saying, take Martin Fowler’s article: Customer Affinity