If you read Tom Hoffman's article "A Telco Giant Gets Agile" about how BT is using agile programming for a major software project, you may have stumbled a bit when you got to the description of the "Manifesto for Agile Software Development." Chances are good that, after a quick read, your reaction was "That's all agile is?"
Or maybe your response was "What a load of hooey!"
Agile programmers 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's all very warm and fuzzy, but kumbaya circles don't deliver real applications.
Hard-nosed pragmatism is what you need to produce real software -- right?
Exactly. So let's get hard-nosed and pragmatic for a moment about software development.
What do we know from a half-century of software projects? Most of them fail. They run over budget, run late, run off the rails. They cost more, take longer, and deliver less functionality than they should.
The bigger a software project is, the more likely it is to fail. And the bigger the project is, the more likely it is to have all the trappings of traditional software development: the extensive plans, complex negotiations, detailed documentation and painstakingly defined processes.
The hard-nosed, pragmatic conclusion?
Relying on plans doesn't work.
Relying on contract negotiations doesn't work.
Relying on comprehensive documentation doesn't work.
Most of all, relying on processes and tools doesn't work.
At worst, these things are merely bureaucratic crutches.
At best, they're still only the machinery of programming projects. You can't rely on them to deliver the goods.
From a hard-nosed, pragmatic perspective, machinery doesn't deliver software.
Programmers do.
And the software that they deliver to corporate users has to meet the needs of human employees, changing business requirements, and shifting market conditions. Oh, and that software is useless until it's actually in the hands of the people who can do business with it.
So responding to change is at least as important as having and following a plan.
Getting in close with users is at least as important as negotiating what is to be delivered.
Delivering software that helps users do business is at least as important as writing the documents that describe it.
And the interactions of the human beings who will make and use the software are at least as important as the processes and tools they'll use to create and take advantage of it.
As much as that manifesto may sound like highfalutin hooey, this isn't warm and fuzzy kumbaya. It's coldly logical and utterly pragmatic.
It's also not enough.
Because just as machinery doesn't deliver software, values don't either. If you believe that's all agile programming is, you're still missing something truly important.
We need the machinery -- some of it, anyway -- to help us get the job done. We need the values to keep our priorities straight.
But most of all, we need the focused skills, intelligence and experience of both programmers and users. That's the heart -- and the hard nose -- of any successful software development approach, agile or not.
And that's no kumbaya.
Frank Hayes is Computerworld's senior news columnist. Contact him at frank_hayes@computerworld.com.
This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.
Download now »Server virtualization is a popular option for dealing with mounting datacenter costs. Another equally promising approach is the use of an Application Delivery Controller. Citrix NetScaler provides a low-cost way for organizations to reduce their server count and accrue cost savings from a reduction in space, cooling, power and personnel.
Download now »
The emergence of WLANs has created a new breed of security threats to enterprise networks.
Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation
Effectively address data protection challenges, implementing solutions that help store and protect businesscritical data while cutting costs and improving efficiency and reliability.
Download now »
Sign up to receive InfoWorld Resource Alerts
