Agile is in — and it’s all because of e-business.
Evidence comes from all around us in the info technology world. But let’s focus on two organizations that illustrate the disparate meanings of the words “agile” and “agility” in today’s e-business environment: Microsoft, which you’ve heard of, and the Agile Software Alliance, which you probably haven’t.
Microsoft is concerned with software platforms, while the Alliance is focused on methods of software development. While agility — that is, the ability to change quickly in response to market forces — has always been important, the rapid pace of business in the online era raises the bar, making it essential to e-business success.
In this column, I’ll start the discussion by looking at the Microsoft example and then I’ll consider the Agile Software Alliance.
Microsoft’s Mantra: Platform Agility
Platform agility might best be understood in terms of what it isn’t. If each time you add or change application software, you have to change your platform, your platform’s not agile. If every time Web traffic increases by an order of magnitude, you have to change your platform, it’s not agile. If every time you change your database server or each time the business changes, you have to change your platform — well, you get the picture.
In short, if your platform isn’t stable, reliable, extensible, scalable, and flexible, it’s not agile. There’s no question that platform agility is an asset in any business environment, but the demands of e-business make it essential.
As the pace of business increases — faster time to market, round-the-clock customer support, integrated supply chains, etc. — the platform must keep pace. It must be there to support changing business requirements.
Setting aside hardware issues, this means that infrastructure software such as operating systems, application servers, database servers, and Web servers must be able to accommodate growing business demands. It also requires software development tools that give developers the power and flexibility to deliver applications
that use the infrastructure.
Microsoft recognized the need for platform agility, and it began casting a marketing message
along those lines. The gist: existing Microsoft products already provide the agility to power today’s e-businesses, and the company’s latest initiative, .NET, will provide even more.
More significantly, Microsoft customer Home Shopping Network (HSN) Interactive has described what an agile platform has meant. Not too long ago, HSN Interactive had a “mixed solution” platform for its shopping site — meaning infrastructure software bought from different companies.
“The mixed solution decreased our agility,” said Stan Antonuk, HSN Interactive’s director of site operations. “It took longer than it should have to respond to changing market requirements. We had performance and availability problems, and the mixed solution made it more time consuming for our developers to fix problems. Having multiple vendors and support organizations added complexity that we didn’t need, and staffing was also more difficult in that we needed to recruit people with expertise in two very different systems.”
Sounds like the description of a plodding platform.
After installing a Microsoft platform, Scott Mitchell, HSN Interactive’s chief technology officer, listed four benefits of its increased agility: “First, it enables us to rapidly change in response to market forces. Second, it affords me access to a more robust labor market. Third, it greatly simplifies vendor management. Finally, solution homogeneity enables better performance and scalability.”
The point here is not that Microsoft is the solution, but that the company’s focus on agility should be the focus for all e-business platforms. Solid platform architecture, good operating practices, using application service providers and other outsourcers when appropriate — all contribute to platform agility, and to
Of course, while an agile platform provides the technical capability to deliver e-business systems which respond to changing business needs, it takes agile software-development methods to effectively leverage that capability.
Since the mid-1990s, the number of streamlined software-development methods has been growing. Originally christened “light methods,” today they are increasingly being described as “agile,” reflecting their goal of delivering effective software systems in response to changing business needs.
Kent Beck’s Extreme Programming (XP) is a well-known example of an agile method. Others include Jim Highsmith’s Adaptive Software Development, Alistair Cockburn’s Crystal, and Ken Schwaber’s SCRUM. (The last is named after the scrum in rugby, because a scrum resembles the conduct of most software projects.)
All of these thinkers have been concerned with how best to deliver working software in the real world. Their efforts predate the e-business era, but e-business brought things to a head for most of them.
The Need for Tradeoffs
E-business emphasized the need for tradeoffs regarding software cost, quality, and speed-of-delivery, and it brought home the fact that in a business setting, satisfying the business is the No. 1 goal. You may recall how early e-business applications were often denigrated for being nothing more than “quick-and-dirty,” slapdash hacking — accusations that flew only if one ignored the reality that the applications allowed the businesses to get up and running and keep running, all the while revising and evolving the application.
Since then, our growing e-business experience has confirmed that software-development methodologies must be practical and tailored to the needs of each project. The monolithic, big-M “Methodologies” of the ’80s and ’90s, which tried to fit all development projects into predefined templates where tasks, tools, and techniques were prescribed in the finest detail, are exactly what we DON’T need for e-business projects. What we DO need are business-driven methods based on business-IT collaboration, incremental development based on strict time deadlines, and an assumption of constant change throughout a project.
These principles have been codified in the manifesto of the Agile Software Alliance, which was founded in February by the thinkers listed above and other luminaries in the agile methods arena.
The Alliance’s manifesto reads:
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools;
Working software over comprehensive documentation;
Customer collaboration over contract negotiation;
Responding to change over following a plan.
That is, while there is value in the items on
the right, we value the items on the left more.
This is a far cry from the principles behind the old monolithic methodologies. But these principles reflect the realities of software development, e-business or otherwise, in a way that earlier methodologies did not. Previous methodologies focused on the process of software development. They included detailed work-breakdown structures that prescribed tasks down to the lowest level. They demanded voluminous standardized documentation. They allowed only approved tools and techniques. In short, they tried to specify a process into which any software developer could be plugged — they were heavy on process and light on people.
Process Light, People Heavy
The agile methods are just the opposite — light on process and heavy on people — and that is the source of their power. Agile methods leverage the way people really work. For example, the valuing of “individuals and interactions over processes and tools” recognizes that the most powerful communication occurs face-to-face. In practice, this means that developers and users convene to analyze, design, and develop working software. Each release is given firm deadlines, often as tight as two weeks, so that software development becomes a process of exploration, with each release serving as the best available model of current requirements, to be supplanted by a superior model with the next release.
As another example, in XP this principle is reflected in the practice of “pair programming” — two programmers working side-by-side on the same code. Rather than ex-post-coding peer reviews, pair programming results in real-time review of ideas and code by another professional. The result is higher quality software, delivered faster.
Another thing that comes through in the Alliance’s manifesto is the acceptance — the anticipation, really — of change. Certainly requirements will change during the project, and, particularly with e-business projects, there is a good chance that the technology will change, too. Anticipating this is an example of how the agile methods reflect software development as it’s actually practiced. Compare this realistic approach to the silliness of trying to finalize requirements in some early analysis phase of a project, long before anyone can possibly know exactly what the finished software should look like.
Driving the entire agile process is a focus on working software. Working software is more important than documentation, project plans, and checking the boxes on a standardized task list. This doesn’t mean that only software is produced, with no concern for schedule, budget, or progress. Rather, it means that only deliverables enabling the implementation of working software which support business needs will be used. The specific deliverables will vary from project to project.
Incidentally, this is where the emphasis on “people heavy” comes from. The assumption is that software professionals have a toolkit of methods, techniques, and other software-development tools from which they can select the one best suited to the task at hand. Agile methods leave professionals free to use their best judgment to satisfy project needs.
Agile methods explicitly recognize the value of flexibility in satisfying business needs. They’re based on the understanding that agility comes from people searching for better understanding of a problem and better ways to solve it. It is a process of discovery that depends on the creativity of those involved. Against the constant flux of e-business, agile methods may be the optimal way to develop effective systems.
Right now, agility is in. Whether it’s a passing fad or a persistent trend, I think this is a bandwagon we can all jump on. If we want to do more than just support the business, if we want to get in the trenches and help our companies be more competitive, being agile is essential to our success.
Chris Pickering is president of Systems Development Inc., an IT research and consulting firm. He also is a senior consultant for the Cutter Consortium. His latest industry study, Survey of E-Business and IT Practices, may be ordered from Cutter. This column first appeared on Datamation, an internet.com site.