Decision making within the life cycle of complex systems

Matt and I were talking today about the role that decision making plays in our lives… and I mentioned how when you’re younger, you have fewer decisions to make… but they are more critical, while as you age, you have a greater number of decisions to make the older you get (until it plateaus at some point, i’d imagine), and the decisions that you make generally have less of an impact on your life the older you are. Or perhaps you are making more conservative choices when presented with decisions and so therefore by default those decisions (or what you choose to do with them) would naturally have less of an impact. What is interesting is how this same decision ‘cone’ reverses on itself at some point when you are no longer able to make good choices… and (maybe as a result?) there are usually fewer of them presented to you!

I got to thinking about how this same theory would relate to decisions within complex software systems… particularly thinking about the lifespan of a software project, and how your decisions as an engineer follow the same basic double ‘cone’ pattern as you move along, with the more important and relatively fewer directional and foundational decisions being made early on, and the availability of more decisions being made more obvious the longer you’re developing a project. This decision ‘cone’ also plateaus… the longer a project is in development, the more unlikely it is for a single decision to impact drastic change within it because of the patterns that have been developed over time and effort.

One could say that legacy software projects develop habits that are not easily broken. What’s more, the earlier the habit is formed, the more difficult it is to make conflicting decisions later in the life of the project. Also related is how as a software project nears the end of it’s life cycle, and prepares to meet that great Coder in the sky… there are fewer decisions available to be made, and as a developer… you’re more likely to be much more conservative with the choices you make considering the amount of effort that would go into making drastic changes to a mature product.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Pownce
  • Technorati
  • TwitThis
  • De.lirio.us
  • E-mail this story to a friend!
  • Fark
  • LinkedIn
  • Slashdot
  • Socialogs
  • StumbleUpon

Leave a Reply

You must be logged in to post a comment.