Thursday, December 14, 2006

System Complexity

A lot has been written about Software Complexity. Usually the author is referring to code complexity, and gives the very sensible guideline of keeping things simple wherever you can.

But more and more projects now involve a multitude of systems, each one of which is extremely complex in its own right. And they're supposed to integrate.

A portal server here, an application server there, database of course, ORM mapper, application framework library, third party security layer, maybe a business rules engine will give us more flexibility, some AJAX libraries to give the UI a bit of sizzle, and SOA architecture. Would you like some Web 2.0 with that?

And at some point you're supposed to be implementing the business logic. What do you mean the first use case doesn't run yet? It'll be how hard to add single field to a screen and have it go out the database? And you have that work around code for all the problems in the vendors products that haven't been fixed yet?

Life can be complex. Really complex. And as we watch people struggle with it it's becoming increasingly clear that complexity is the major limiting factor. And I'm sure that this is not just the case in software.

Imagine you are a top notch (check all that apply):
  • Software developer
  • Brain surgeon
  • Astronaut
  • Fighter pilot
  • Antitrust lawyer
  • Theoretical physicist
  • etc.
Maybe you don't have to imagine. But look at that list and consider what might be the number one thing preventing you from being twice as productive. I'll bet it's complexity.

In many professions a person's ability to deal with complexity is now the major limiting factor.

Note that previous sentence. There are two factors. The complexity, and the ability of humans to deal with it. We need to work on both.

Labels:

0 Comments:

Post a Comment

<< Home