What Is Agile Software Development?

What is Agile? Agile is a software engineering project management philosophy and tool set that rapidly speeds up the delivery of software solutions.

One hundred million years ago when I was with Accenture, we practiced something called waterfall project management. That was the project management technique de jour, and it was what I learned in undergrad.

The waterfall approach has some major draw backs. Things proceed one after the other. You can’t move to one phase of a project until you finish a previous phase. You’d think that makes sense, but it really doesn’t as I’ll explain in a bit.

Waterfall is documentation intensive. You go through whole phases of development where you do nothing but document processes. This can take months. Months before a single line of code is written. The problem is, all this analysis is costing money, time, and many of the estimates that are being developed at this point aren’t remotely close to accurate. Like laughingly hilariously inaccurate. Long story short, what happens in waterfall is that you spend a bunch of time, money, and effort designing and creating something that may not even be what is needed because it took so long to finish the project that the market moved on and the organization lost their market positioning to organizations that could move faster. There’s that OODA loop again.

But that example is for commercial software vendors. It’s even worse when you’re writing homespun software for some organization. A really good example is reports requirements. With the waterfall methodology just doing something so simple as a report, can take forever.

What Agile does is significantly speed up the time from concept to delivery of software solutions. It does this by cutting a lot of the fat found in waterfall. Instead of doing things one after another, Agile does things in smaller chunks in an iterative fashion. Agile takes advantage of collaborative tools like Git for source control and KANBAN boards to quickly identify needs, communicate those needs to engineers, and to have those engineers develop innovative solutions with little oversight.

Agile has been wildly successful as studies show that projects complete faster and with fewer defects over the old and busted waterfall approach.

Last updated