A carefully selected set of practices that match an IT organization's needs is better than using one methodology exclusively
In many IT organizations, there is one true "religion" that defines how projects are undertaken and managed. The methodology of the day is faithfully adhered to and nonbelievers are pressured to convert. A given IT religion can last a long time, then suddenly be abandoned when people lose faith in its efficacy or its primary evangelist leaves.
When this happens, all the progress made under the prior method is often deemed of little or no value, and reinvention becomes the order of the day.
These abrupt shifts in IT approaches aren't new. They've been going on for more than 40 years and can occur in any number of subsections in the software development life cycle and IT practices, such as enterprise architecture, IT service management, and project and portfolio management. And, of course, software development is particularly prone to it.
The numerous software development methodologies a company uses represent one community's articulation of processes and practices. Over time, that process can become inward looking and bloated, with overlapping and inconsistent practices from potentially competing methodologies. As the benefits decline, IT organizations change methodologies, which is one of the most fruitful sources of waste and expense: Each time an organization embraces a new methodology, it triggers a large change management exercise. Within IT, this change typically involves a three-to-five year process that results in the following direct costs for a 1,000-person IT organization:
>> Consulting, training, and mentoring costs to go from novice to competent, and even expert, using Stuart and Hubert Dreyfus' skill acquisition model. For 1,000 people, this can cost $1 million to $2 million.
>> Knowledge management, to avoid the risk of relying on tacit knowledge in the heads of coaches and consultants. If performed, the capture of standard work, or "our way of working," results in more than $1 million in costs related to process-related software.
>> Changes in approach that can also trigger the need for new process management tools. Cost can range from free to $1 million or more.
>> Costs related to putting a new software delivery infrastructure in place. Hitting the reset button can cost upward of $5 million.
One hidden cost that frequently exceeds all the other items put together is lost productivity due to employees resisting change because they prefer or are just comfortable with the previous way of doing things. McKinsey's study "Organizing For Successful Change Management," on strategic change initiatives, such as TQM, lean, Six Sigma, and business process reengineering, finds that about 70% of the investments in these initiatives fail to achieve the expected outcomes.
Gartner estimates that worldwide IT spending last year was $1.6 trillion, with IT services at $816 billion as the largest component of that figure. Typically, 3% to 10% of the IT services budget allocations can be associated with process improvement initiatives. So we can estimate that $17 billion in spending is doomed to not deliver the intended results (70% of $24.5 billion). That figure doesn't include opportunity costs associated with failed process improvement and costs associated with lost productivity during the change.
Additionally, some portion of total worldwide IT spending last year was only implicitly allocated to process improvement, which could be thought of as "just-in-time" process improvement during a project. So if we believe that 14% of software engineering efforts are outright failures (see "Dr. Dobbs 2010 IT Project Success Rates," at information week.com/1298/ddj/success), that's another uncounted cost.
Software development methodologies are "more akin to fads and fashion than engineering discipline," according to the Software Engineering Methods and Theory Initiative. And it's safe to conclude that the hidden and indirect costs associated with these methodologies represent a very large number indeed--one that's not declining at a discernible pace.
Isolation Vs. Integration
When searching for a solution to the problem of switching among software development methodologies, it's instructive to look at the history of software development approaches. Software methodologies have endured a high degree of branching and differentiation. The question with all of this history and the explosion of "named" methods that naturally arises is, "Are they really that different?" In fact, there are just three main lineages of modern method development--lean, agile, and unified process.
Over time, each of these branches resulted in various branded methods based on the corporate experiences out of which they emerged. Lean approaches trace their roots back to manufacturing, specifically to the study of the Toyota production and product development system. The unified process is derived primarily from risk-averse environments, such as finance, defense, and aerospace. Agile emerged from a business climate where tight time-to-market expectations and flexible requirements are the norm.
Each branch started from a much smaller set of experiences. Unfortunately, the constant differentiation has resulted in what we have today: a jargon-filled confusion of siloed tribes made up of uncollaborative zealots.
While it's reasonable to assume that no two software methodologies are exactly the same, it's equally reasonable that no two are entirely different. One naturally might conclude that common ground does exist. Is there some way to harvest past experience without reinventing the wheel?
A good place to start is by taking one or more practices from each of the three lineages that reasonably deliver value within the software delivery constraints you face. Such an approach should include specialized contributions and focus on harvesting pragmatic experience, not reinventing your process.
A Pragmatic Approach
One approach, which I call SDLC 3.0, provides a pragmatic, experience-based approach for integrating the fragmented methodology landscape by using practices that are methodology- agnostic. It focuses on yielding a useful, context-specific set of standard work advice for real product development.
It also integrates the software development part of IT with the broader enterprise and functions such as enterprise architecture, IT service management, and project and portfolio management. Using lean as the overarching set of principles, SDLC 3.0 starts with the customer and ends with the accrual of value within IT operations. This focus makes sure that small groups don't try to optimize only their piece of the process, based only on what they know about their roles. Rather, a coherent big-picture view enables traditionally siloed communities to constructively participate rather than get bogged down in in-fighting.
Some will argue that organizational culture is a likely reason for the failure of a new development methodology. This is has been studied most recently in surveys on agile adoption. But there's not just one single corporate culture. Each practice and pattern of success grew out of various enclaves of corporate experience over the past 40 years, such as a corporate delivery environment, or work within communities or groups that tend to aggregate fragmented experience into bodies of knowledge. Each organization manifests unique environments and cultures, and "the way we do things around here" becomes embedded with the IT corporate subcultures. In other words, these approaches become "adopted" and eventually become the standards. How then to choose new practices that suit the organization?
The figure on p. 35 shows a cultural analysis of the major practices in today's methodologies that have been harvested from the three primary groups of methodologies. The agile, lean, and unified approaches are placed on a grid that scales vertically from stability to flexibility and horizontally from an internal focus to an external focus. Each quadrant is identified by the kind of organization that its blend of values create, its orientation, and the theory of its effectiveness.
Start by examining what kind of IT organization you have, what you value, and what needs the company has. By considering that against the widely accepted universe of practices, it's possible to choose the practices from the diagram that fit your needs and incrementally change the organization in an intelligent manner. This avoids culture clashes that result from imposing new methodologies.
Think about where your company falls in the four culture quadrants in the diagram. These include:
>> Clan/Family Culture: Here you have a culture that emphasizes collaboration. Your leaders tend to be facilitators and team builders, who value commitment and communication. They think effectiveness is driven by developing people and spurring participation.
>> Adhocracy Culture: Your company emphasizes creativity and has leaders who are entrepreneurial innovators, who value transformation and agility, and have a high level of risk tolerance. They think that innovation and vision are the best paths to effectiveness.
>> Market Culture: Here the orientation is competition. Your leaders are hard-driving competitors, who emphasize goal achievement, market share, and profitability. Customer focus and aggressive competition lead to effectiveness.
>> Hierarchy/Bureaucracy Culture: Your company tends to focus on control, with leaders who coordinate, monitor, and organize. Efficiency, timeliness, consistency, and risk aversion are the watchwords. Control and efficiency are seen as the best path to effectiveness.
In reality, improving an IT organization's software delivery capability isn't about building the perfect "method mousetrap." There isn't one perfect methodology. It has more to do with successfully changing "the way things are done around here." Properly done, this avoids the branding, competitive differentiation, cultural division, and iterative wars for a particular development approach--with all their attendant costs. Instead, it focuses on what has and always will be the overriding truth: that software development is about people and what their organizations value.
Mark Kennaley is president and principal consultant at Fourth Medium Consulting, a Canadian IT management consultancy. His book, "SDLC 3.0: Beyond A Tacit Understanding Of Agile," won the Dr. Dobb's 2010 Jolt Award. Write to us at email@example.com.