Agile to the Extreme
Home Tutorials Reviews Weblog

Feature: A review of Agile Development and XP-Extreme Programming
Motivation: Better IT project management is at core of interest in Agile Methods and XP

Many developers equate Extreme Programming with Agile Development and use both as alternatives to the classic SDLC-System Development Life Cycle. But as we shall see below classic Waterfall and SDLC methods have delivered ambivalent results. On the one hand some very spectacular successes but at the same time some very high IT project failure rates. And so on a first level, they are right - both Agile Development and Extreme Programming do represent very different styles and are even more tailored to the fast and complex pace of contemporary development. But to identify either Agile or XP-Extreme Programming as the one best way to do contemporary development is to make the same mistake that has allowed SDLC and other engineering Waterfall methods of project management be applied to any and all IT projects with decidedly mixed results. This is a repeat of the myopia of "one best way" which hampered much of organizational leadership and management theory for much of the twentieth century.

It took 60 plus years of treasties on leadership style and books on management methods by thought leaders as diverse as Henri Fayol, Alfred Sloan, James Thompson, Jay Galbraith, March and Simon, Lawrence and Lorsch and others to come to the conclusion that there is no one best way to lead or manage an organization; but rather depending on key environmental variables(uncertainty, risk, and competitive players are leading ones)and intrinsic organizational factors (capital intensity of the industry, age of the organization, maturity of the major markets are key dimensions here)there is a continuum of processes and structures by which to manage an organization. This is the Contingency Theory of Management - adjust the organizational structure and/or processes to meet the changing internal and external factors confronting the organization.

Here is one of the influential contingency theorist, James D. Thompson and his formulation of the key dimension in organizations and what that means - "Uncertainty appears as the fundamental problem for complex organizations, and coping with uncertainty, as the essence of the administrative process ...organization's form must respond to this problem ". Other theorists, notably Scott and Galbraith added other dimensions. But the key idea here is a)there is no one best structure or way to manage an organization and b)one changes organizational structure and processes to suit deep change in the organization and/or its environment.

Building up a Contingency Approach in IT Project Management

Remarkably as the contingency theory of management built up adherents and adopters through the 60's to the 90's, right next door, the management of IT projects stayed rooted in a one best way approach - some variation on the SDLC-System Development Life Cycle. The attitude has been to add a phase or two(see Scott Ambler's Enterprise Unified Process from 2005) or broaden the view to include the portfolio of projects (see the Zachman Framework) or a general organization wide viewpoint- and these broader perspectives would allow IT projects to be managed better.

And to a certain extent, these new methods do work well for some projects because they do meet the needs and requirements of a certain class of projects. However as a one best way to IT projects - they certainly do not fit the bill. And their proponents recognize this and do not propose that their methods be applied in all IT projects. However, like those maddening broader proofs in math texts left as an execise for the reader, most IT project theorists leave it as an exercise to a)determine when and under what circumstances their method should be not be used and b)what alternative methods or simple process adjustments users should make to switch to a more effective method/process for controlling their IT Project.

Note here the important point - the IT project either has changed or has simply revealed a problem or dimension not yet taken into account. The problem for IT practitioners - how do I respond to these changed conditions. And theorists for Agile Methods and Extreme Programming both say we know how to handle this very problem of constantly changing conditions. But neither XP nor Agile methods take into account broad project metrics - does this additional feature or changed process endanger the project's ROI or time-to-market constraints. In effect, is XP's relentless refactoring and feedback/communicating with customers and Agile's constant iterative refinement are both self correcting mechanisms that will allow a project to eventually get on back on course. The question never raised by either method is at what cost in time, resources and overall benefit to the organization.

For example, Craig Harmanin his book Agile and Iterative Development argues "This deep appreciation - that building software is [more like] complex, new product development with high change rates and not predictable manufacturing - is at the heart of agile and iterative methods. Certainly another driving force is the desire to compete and win. Iterative and agile methods foster the flexibility and maneuverability to win." Strongly implied is that the solution to successful IT development is carving up the IT project into appropriate byte-sized iterations that can be successively and successfully delivered such that all clients and stakeholders are satisfied.

And so different Agile methods are in the business of providing at each iteration some mechanism for accommodating change - tasks with new priorities but even more important new tasks not a part of the original specs and requirements. As anyone who has worked in IT projects with scope creep this latter "agility" virtue can also be a major problem. The following is an example.

Take a simple control system for gas plants. Originally as designed only the master control console would be allowed to make changes to the settings in the system. Very aggressive schedules for delivery were set based on the idea that this was a star design and little or no transaction processing had to be accommodated in the nodes. Then it was decided that in a few sour gas plants it was vital for local operators be able to make changes to settings. The change seemed innocent enough to local and even top managers. And Agile methods favored this apparent "small change". But the result was disastrous because a simple central transaction processing system became a much more complex design of peer-to-peer multi-user transaction processing. The result was to turn a project on schedule and on budget into a way over budget, very late project with a lot of careers and personalities damaged in the process. Clearly Agile and Iterative are not cure-alls and in some project situations are not appropriate. .

Put Extreme example here.

But cure-alls for what ? Underlying all of this discussion on IT project methods is the notion that either the process is complex and difficult or that IT project delivery has not been scintillatingly successful in the past or both. Lets examine these issues in more detail.

The Nature of IT Projects

IT-Information Technology is all about managing and controlling the flow of information and control within an organization. But Information itself is complex. Information is multi-dimensional and dynamic which in turn makes IT difficult to manage well over time. Here are some of the dimensions of information:
1)It is model based. This means information is not one isolated fact but rather several datum points that are the attributes/properties of a model. That model is well described when the data can be used in a defined process to describe/explain/project the current and possible future behavior of an object or system;
2)The data are ranked. Some properties and attribute are more critical in explaining/describing the behavior of the system. These are the critical factors and/or associated dimensions;
3)The data are time sensitive because dynamic systems and their properties change over time. Having data over the right time period or window of behavior is critical to help explain/describe/project the behavior of a system;
4)The data are complete. This means enough of the critical factors or dimensions of the system are being tracked and for the right time interval and sampling frequency to most likely explain and/or control the behavior of the system within an agreed upon probability or risk/reward;
5)The data are provably accurate. This means there exists other information/data that can provide an unbroken/unambiguous links and corroboration as to how specific designated properties and attributes of the system were obtained. This means the process and all the steps in how the data were obtained , stored and subsequently processed is also complete, consistent and well described and already have been or can be replicated by others using the same procedures/processes;
6)Data have different efficiencies. Because there are many paths for obtaining, processing and storing data with different costs associated with each path and different effective explanatory/predictive capability for each data path - there are different cost/benefits or efficiencies linked to each data path;
7)Because of human variability in the ability to absorb and process information, there are different values and benefits as to how data are organized and formatted for presentation.
8)The data are political. Because value of information can become extremely high in many business and organizational settings, access to it and the ability to mange it becomes political - the question of who gets access to what and how and why.

So information is at least eight dimensional - and one of those, the political dimension, is obviously a hot potato. I have trouble navigating a car in two dimensions given there are other drivers of varying competence engaged in the same game. Imagine the complexities of bringing the right info at the right time to the right people and without breaking the bank and/or upsetting long and carefully balanced political stability. The latter political factor means emphatically that information processing is as much a cultural as technical challenge. Given that IT is all about changing data and information flows within and between organizations, is it any wonder that management of change not technical feasibility is the number one problem in IT and System development ? See our article, The MisManagement of Change, for a further elaboration of this perspective.

But many, even from the IT community, argue from the scientific and engineering perspective that IT is subject to the same discipline and standardizing influences that all the other sciences are. And so that over time, practitioners develop technologies and perfect practices that allow even IT to be controlled with a high degree of competence and confidence. Lets consider some counter arguments to this engineering approach to IT.

Many observers have advanced theories as to why for over 50 years software development has seemed to be mired in mixed competence (see Failure Rates of IT Projects immediately below). Here are four factors that recur and deter success in systems development:

1)Every software system produces critical internal process changes. Many of those changes involve modifications in how group work is done, information flows, and how decisions are made in an organization. These are changes to the basic group and organizational infrastructure involving many economic, social and political interests. Only within the last 10 years has the Management of Change process been fully recognized and begun to be controlled and applied in a systematic fashion as part of IT development process;
2)Software and Hardware technologies mature and improve rapidly. In 50 years there have been at least a dozen major process or technology led revolutions. These are revolutions because the costs, functionality and price/performance can be so compelling as to make existing systems and/or processes redundant if not instantly obsolete - if you don't change others will and gain a competitive advantage. Revolutions such as timesharing, PCs with GUI/event driven interfaces, object oriented development; Moore's Law being sustained for over 40 years have obsolete swaths of skills and displaced if not eliminated millions of jobs. Revolutions are ultimately beneficial- but they exact a toll - and among others is higher risk of failure with the new technology in its introductory phase - the so called bleeding edge effect;
3)All computing hardware (CPU, memory, disk space, communication capacity)continues to follow Moore's Law - doubling in capacity in less than two years for the same price. This is an outgrowth of Smith's Law - tools tend to be used to perfect themselves at an ever faster rate. The limits are reached when barriers in the form of some immutable laws of Nature are reached. It appears for the next ten years ahead there will be no insurmountable barriers although for the first time capital cost is rising faster than the returns. So super-imposed on the revolutions and their associated (and disruptive) killer applications, there has been an astonishingly relentless decline in the cost of computing hardware. Every 3 to 5 years the economics of computing changes for a new sector of society. The latest is communications where mobile technology will bring immediate connectivity to rich and poor nations alike in contrast with the capital intensive land-line telephone which has been reserved to the developed countries primarily. So system projects have had and continue to need to cope not just with internal organizational change but also often with external market and societal changes. This has inevitably added to the risks of projects.
4)Software development has become more complex. From centralized batch processing through separation of data and processing to heterogeneous, n-tier distributed processing - a system has evolved into a many headed hydra. It used to be simple - a single program interacting with one master control system (the OS)to the contemporary situation of many codes or applets smeared and interacting over multiple clients and servers. When a problem/bug occurs where do you start looking for it.And the rate of change of programming languages (Assembler/Cobol/Fortran to RPG/PL1/Pascal to C/Focus/Basic to C++/Small talk/Visual Basic to Java/C#/PHP/Perl to Curl/Ruby/Water), and methodologies (input/processing/output analysis, structured methods, data and information modeling, event-based design, object-oriented analysis, asynchronous and synchronous design, adaptive and agile processes) reflect the need for developers to ever widen their base of knowledge. Developers typically have to have 7-8 technical skills: HTML, XML, SQL, UML or ERD, Cold Fusion or PHP or Perl, JavaScript or VBScript, CORBA/RPC or J2EE or .NET, C/C++ or Delphi or Java or VB6/VBA, ABAP or People Script or ..... A. Russell Jones over at Devx got it right - developers need a broad base of skills. Getting the right combination of skills lined up together on even a medium scale project can be a nightmare again increasing project risk even in these days of time-boxed, protoype based development.

In sum, programming and system development is a inherently a risky business because of the nature of information itself and the ongoing rapid change that has been constantly percolating through the industry. And nothing underlines the fragility of current development processes than the record of failure in IT projects.

The Failure Rate of IT Projects

For a long time IT project failures were simply acknowledged but not counted. then in the mid 1980's and early 1990s Caper Jones Software Productivity reports listed failure rates in key segments like military, government, software vendors, telecommunications. But it wasn't until the Standish Group in 1994 released it Chaos Report with a clear classification of IT projects among three categories:
- successful: the project is completed on time, on budget and with all the features and functions as originally specified;
- challenged: the project is completed and operational; but over budget and over the time estimate and with fewer features and functions then originally specified;
- failure: the project is cancelled before completion.
Given the breadth of the survey and its corroborating evidence from other sources such as SPI and Dr. Howard Rubin at NYU, the staggeringly high rate of challenged and failed projects caught many practitioners off guard. Even more disturbing were some of the attributes of challenged and failed projects - time overruns averaged 222% over estimates while cost overruns averaged 189% greater than budget. Stark results. The chart below shows the slow progress being made in IT project management effectiveness.

IT project success can't seem to clear the 30% success hurdle. This means top managers embarking on an IT project have less than 1 chance in 3 that it will be on time, on budget and on specs. Fortunately, the losses are not as bad as before. Now challenged and failed projects average 63% time overruns and 45% over budget as of the year 2000 study.

Meanwhile Eric Keller on page 56 of his book Technical Paradise Lost completes the picture for more recent work, this time with packaged software:
CRM Failures - Reports from Meta Group, Butler Group, DataMonitor and others stated that between 45 and 75% didn't meet initial objectives. In 1996 Gartner reported that 55% of projects failed to deliver measurable ROI.
ERP Failures - Conference Board in a 2001 survey of 117 ERP projects found that 40% failed to make their first year objectives. A 1997 Survey by KPMG Canada found that 61% of companies reported failures in their ERP systems implementations. And a Robbins-Gioia survey of over 200 companies found that over 50% considered their ERP installations a failure.
SCM Failures - Bear Stearns study of 2002 reported that 44% of over 100 companies surveyed had written off their SCM investment.
These are embarrassing rates of failure - particularly for packaged software which has the virtue of starting off as working software and whose only task is to be customized and worked into an organizations data streams. From the Gartner and CRM studies the most common causes for failure cited were a)failure to define metrics; b)failure to involve the sales force in project plans; c)and therefore incorrect choice of applications.

Again this appears to point to a recurrent theme in IT project management - that many of the issues associated with project failure are people and managerial issues - not technical issues. And as we shall see below there seems to be evidence that handling the people and management of change issues are consistently one of the greater risks for IT projects.

The net result of these hgh project failure rates was the call by consultants for better project control. In his book Strategic Project Office, J.Kent Crawford on page 7 notes that Gartner in 2001 proposed in one of its strategic assumptions that "IS Organizations that establish enterprise standards of project management, including a project office with suitable governance, will experience half as many project cost overruns, delays and cancellations as companies that do not do so. They also note that the software development project as presently managed is 170-180% over budget." In effect, project management goes to the top of the list and the executive suite as a means of managing IT projects risks.

What Causes IT Projects to Go Agley

JohnMcManus (see references below)discusses the causes of the project failures previously noted. Interestingly he see the following breakout for failures in IT Projects:
Managerial issues account for 65% of failures
Inappropriate project structure and channels of communication
Inappropriate resources - poor skills and knowledge mix
Inappropriate estimates of time and resources
Inappropriate planning methods - poor scheduling and tracking
Inappropriate user buy-in
Inappropriate risk management

Technical issues account for 35% of failures
Inappropriate software requirements
Inappropriate technical design
Inappropriate development and testing tools
Inappropriate technical documentation
Inappropriate technical reviews and quality audits
Inappropriate technical support

More interesting is the changing prognostication from the Standish Group based on its Chaos Report analysis. First, here are the ten ingredients for an IT project highly likely to succeed.
1)Reduce the requirements to the stark minimum like in Extreme Programming-XP;
2)Provide constant communication on project progress/feedback like in XP;
3)Use standard code infrastruture - either packaged software or well tested standard lib aries;
4)Have a good project manager;
5)Have a strong executive sponsor (the latter 2 points Standish elaborates in detail);
6)Use an iterative process for deciding on next phase features ;
7)Use good project tools (again Standish says a lot here);
8)Use no more than 6 people on the project:
9)Allow for completion in 6 months or less;
10)Do not spend over $750,000.
Now the last 3 of these requirement may seem very narrow; but they are based on Standish's stats - small, low budget, short duration projects have significantly higher success rates. So how do users fit their projects into these "best chances of success" constraints ? By also considering the causes of project failure.

Standish again has isolated 3 factors: lack of end-user involvement, failure of top executive support and poor project estimates of risk and resources. To an extent, these are inverses of the some of the 10 project success factors and thus give a reading on which of the 10 are most important.

However, of equal importance is that Standish substantiates John Mc Manus thesis - that managerial issues and not technical complexity predominate as causes of IT project failure. In the next phase of our analysis we shall put these ideas under a little tighter scrutiny.

Conclusion of First Phase of Analysis

This first phase of the analysis of Agile Methods and Extreme Programming has raised a fundamental issue. The Nature of Information and evolving complexity of IT projects means also there is not one best way to manage IT projects. It also states that both Agile Methods and Extreme Programming can be effective in certain classes or kinds of IT projects (and the next part of this review will attempt to identify dimensions and criteria used to choose either Agile Methods and/or Extreme Programming. Finally, this latter section will also look and see how historically the two methods moved thinking in IT project management for one standardized Waterfall model to a discussion of "heavy" and "light" project management - and therefore moved the discussion firmly away from a view that the SDLC, if appropriately expanded in scope, could handle any IT project.


References:

Contingency Theory of Management
Jay Galbraith - 1973 Designing Complex Organizations, Addison-Wesley.
Jay Galbraith - 1977 Organization Design. Addison-Wesley.
Maura F.Guillen - 1994 Models of management: work, authority, and organization in comparative perspective. University of Chicago Press.
Paul Lawrence and Jay W. Lorsch - 1967 Organization and Environment. Harvard Univ. Press.
Richard W.Scott - 1987 Organizations: Rational, Natural and Open Systems. Prentice-Hall
Yehouda Shenhav - 1995 'From "chaos" to systems: the engineering foundations of organization theory 1877-1932'. Administrative Science Quarterly 40: 557-585.
James D.Thompson - 1967 Organizations in Action. McGraw Hill.

IT Development
Craig Larman - 2002 Agile and Iterative Development: A Manager's Guide, Addison-Wesley
John McManus - Risk Management in Software Development Projects
Jason Harvat - Project Management Methodologies, J.Wiley & Sons
Erik Keller - 2004 Technology Paradise Lost - Manning Publications
Chromatic - 2003 Extreme Programming Pocket Guide - O'Reilly
Standish Chaos Reports:IT projects - http://www.standishgroup.com/sample_research/index.php

Top of Page  Home  Tutorials  (c) JBSurveyer 2005