Wednesday, February 7, 2007

System Complexity

The definition of complexity - is complex in itself (from WikiPedia - Why should it matter to a project manager? Simple - the more complex a system the more likelihood of system issue in not only the end product, but also the requirements gathering and development. Complexity could come in the form of the number of external systems connected to, amount of data, diversity of data, amount of business logic, levels of security, precision in information required AND any combination of those or other items that add to complexity. The problem with complexity is that it grows exponentially - add another if statement, another layer of security or one more external data feed and the complexity could grow by an order of 10 or 1,000. What to do? Basic approaches include:
  • System Reduction - removing all but the bare system essentials
  • Iterative development - provide short duration deliveries and/or short duration projects
  • Component creation - delivery is in the form of base working components that can be built into complex systems like building blocks (objects??)
No matter how we approach a complex system - it's still a complex system and this needs to be taken into consideration when estimating timelines, etc. For each task a level of complexity should be recorded that adds to the time and cost factor. (a 2 day task at a high complexity rating could have a buffer of 5 additional days to complete - where a low complexity rating adds 1/2 day additional to complete). Instead of 'adding a standard buffer' - it's adding a buffer based on task complexity.....maybe????

No comments:

Post a Comment