Complexity Aware Modelling I

This is why is pays off when modellers in software analysis are aware of complexity. Part I:

8 Queens fail

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 …)

Have fun

* or simply ‘functionality’ or …

In case you prefer a less ironic version of what I’m saying, take Martin Fowler’s article: Customer Affinity

Related texts:

  • “… all of the pure technical features are not the nature of the applications for enterprises”, by TY here
  • “What more do we know when we know the complexity of a certain part of UML?”, self

About modelpractice

Modeling Theory and Abstraction Awareness in strive for scientific rigour and relevance to information systems engineering.
This entry was posted in Model Thinking, Software_Engineering and tagged , , , , , , , , , , , . Bookmark the permalink.

6 Responses to Complexity Aware Modelling I

  1. TY says:

    would you agree, say, the complexities from the business partially determining the complexities of a application, or
    complexities of an app = business’s + technology’s
    (the technology which implemented/supported the app)

    BTW Complexity Aware Modelling seems an absorbing topic, waiting for your more…

  2. vhanniet says:

    Hum, not sure what you try to say.
    Another example. Say the *functional* need is a program that says “Hello World”. The business logic is very simple and may be modeled very simply. The *non functional* needs are that the program must be scalable, reliable, maintenable, with a very good response time and a friendly UI AND is intended to be called from anywhere on earth though any network service.
    The complexity lies here in the non functional needs, and modeling them is not that simple 😉
    So what?

  3. Hi TY, Vincent

    Indeed, really seems to be an absorbing topic. Bertrand Meyer just yesterday (but I was first 😉 wrote this where he describes Design as the reconciliation btw sth like my analytic view above and the non-functional/ technical perspective, you both mentioned.

    That’s actually why I split the post in two, since during writing I struggeled with the interconnection of the two sides and wanted to think about it a day or two more.

    Have fun

  4. just by conincidence: friend of mine called and told me a story where the developers of a data warehouse care a lot about their technology, but not at all about the wrong results they deliver to the business.

    That’s what I mean by “If the above sounds familiar to you …” 😉

  5. TY says:

    This is the phenomenon in the IT field: I called it technology-driven (and also, concept-oriented)

  6. Pingback: Complexity Aware Modelling II | Model Practice

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s