What's It All Mean to the Software Development Industry?
It’s clear that the pace of information exchange was slower in the twentieth century, save for the technology and communication explosion in the 1990s. Before this instant access to information, software development teams had the luxury of time—time to analyze, design, code, test, and deploy the product before the customers could change their minds. In other words, the application or system would go live before customers could gain access to information that might affect their original vision or needs.
This is one reason why agile has become so popular. In an era in which things change so quickly that we struggle to keep up, agile provides us with frameworks that allow us to flow with the changes, deliver product increments quickly, and become as fast moving as the environment around us.
Ron Jeffries, coauthor of Extreme Programming Installed and one of the founders of XP, sees another reason for agile’s growth:
Over time, I learned that most of the interesting problems in our work are people problems, not just technical problems, and I became more and more interested in the bigger picture of how to get things done. That made me an easy mark for “agile,” which focuses strongly on the individual and the team, and for Extreme Programming, with its great emphasis on technical skill.
In addition to agile’s providing a framework for handling change and focusing on individuals and teams, there is a third driver, honesty, that is responsible for agile’s growth, as Linda Rising points out:
I'm not sure up-front planning ever worked. I just think it was easier in the olden days to pretend that it worked, so we all held hands and danced together. We all knew that it was a lie, but it felt good to sign those contracts and believe that the intended functionality would appear by the specified date.
Nowadays, when customers don't know what they want, it's harder to do that dance. Many times, customers are completely honest: I don't know what I want, but I want it by June! And we, of course, say, "We can do that!" What's to plan? When no one knows—not the customer, not the marketplace, not the researchers, no one—then our fallback position has to be that we grow it together. That's a dance that can take place with integrity. Instead of pretense, we have honesty. I believe that's what agile allows us to do: admit that we can't plan it out—that we never could—and move forward together.
If we look to the past and use that information to try to predict the future, it can look a bit daunting: great strides in technology, yet the same issues we’ve always faced (and at a faster pace).
Personally, I’m hoping I get to see the quantum computing and nanotechnology wave start to break in the next ten to twenty years, leaving the youth of today to begin tomorrow’s IT history article with “Do you remember when computers were made with integrated circuits?” And, with continued persistence from the agile community, I also hope to see “Do you remember when software developers built systems without involving the customer?”
What do you think? Please share your thoughts on how far we’ve come and where we might end up.