Jean-Pierre Garbani serves Infrastructure & Operations Professionals. See the full Analyst bio.
Visit Forrester.com to learn how we make Infrastructure & Operations Professionals successful every day.
Evaluating Complexity
Posted by Jean-Pierre Garbani on December 21, 2010
We’re starting to get inquiries about complexity. Key questions are how to evaluate complexity in an IT organization and consequently how to evaluate its impact on availability and performance of applications. Evaluating complexity wouldn’t be like evaluating the maturity of IT processes, which is like fixing what’s broken, but more like preventive maintenance: understanding what’s going to break soon and taking action to prevent the failure.
Volume of application and services certainly has something to do with complexity. Watts Humphrey said that code size (in KLOC: thousands of lines of code) doubles every two years, certainly due to increase in hardware capacity and speed, and this is easily validated by the evolution of operating systems over the past years. It stands to reason that, as a consequence, the total number of errors in the code also doubles every two years.
But code is not the only cause of error: Change, configuration, and capacity are right there, too. Intuitively, the chance of an error in change and configuration would depend on the diversity of infrastructure components and on the volume of changes. Capacity issues would also be dependent on these parameters.
There is also a subjective aspect to complexity: I’m sure that my grandmother would have found an iPhone extremely complex, but my granddaughter finds it extremely simple. There are obviously human, cultural, and organizational factors in evaluating complexity.
Can we define a “complexity index,” should we turn to an evaluation model with all its subjectivity, or is the whole thing a wild goose chase?
One approach that I’m contemplating right now is to measure complexity not directly but through its consequences, like evaluating your foot pressure on the accelerator by measuring the speed. For example, we would use metrics like support budget spending; ratio of support people to servers and applications; size of the code; frequency of change requests; time to resolve a category 1 issue; deployment rate of new services; or time spent on unplanned tasks in I&O. The list needs to be drawn up and checked, but it seems that all these things capture the relative complexity of a given IT environment by measuring its effect. Since complexity is a relative notion, this would not be a measure of “absolute complexity” but a measure that is significant for a specific organization.
Your input and comments on this will be greatly appreciated.
search forrester's blogs
Chart the digital business future.
Attend Forrester’s Forum for Infrastructure & Operations Professionals EMEA, June 10-11, London UK
Analyst Blogs
- Andre Kindness (20)
- Bryan Wang (7)
- Christian Kane (4)
- Christopher Voce (8)
- Dave Bartoletti (13)
- David Johnson (39)
- Doug Washburn (35)
- Eveline Oehrlich (8)
- Glenn O'Donnell (25)
- Henry Baltazar (3)
- Henry Dewing (3)
- James Staten (102)
- Jean-Pierre Garbani (12)
- John Rakowski (15)
- JP Gownder (45)
- Katyayan Gupta (10)
- Laura Koetzle (1)
- Lauren Nelson (4)
- Michele Pelino (3)
- Rachel Dines (28)
- Richard Fichera (107)
- Stephanie Balaouras (1)
- Stephen Mann (93)
- Wen Zhao (2)
Top Categories
Archives
- May 2013 (1)
- February 2011 (3)
- January 2011 (1)
- December 2010 (4)
- August 2010 (1)
- July 2010 (2)
- June 2010 (5)
- March 2010 (2)
- January 2010 (2)
- October 2009 (2)
- September 2009 (2)
- August 2009 (1)
- June 2009 (1)
- See all
Comments
Evaluating Complexity
This is increasingly an important topic many organizations.... we're drowning in complexity!
I think we need to consider the perspective thru which expectations around quality attributes such as simplicity / complexity are expressed and managed. For example, a given system may require sophisticated functional capabilities which necessitate a degree of complexity; however we have choices as to how we manage that complexity. Do we manage it in a way that hides complexity and yields agility / simplicity for business consumers but forces development and operations staff to deal with increased complexity, and potentially decreased availability?
I'd also be interested in techniques, patterns, etc (eg: proper functional system decomposition and interface standardization) to manage complexity holistically and the inherent quality trade off's in those choices.