Agile Software Development

There's no shortage of software development methodologies in the world, so why go create a new one? Simply put, Agile addresses several of the problems with software development.

The problems with traditional methodologies

Traditional methodologies like waterfall were modeled after manufacturing and engineering processes. And while there is some element of manufacturing in the software development process, waterfall methodology and others like it don't fit the software build process. In an manufacturing situation, the product to be built has specifications well mapped out before any product is built. In software development, requirements are not usually fully flushed out early in the process. Often, by the time software projects are completed using a waterfall approach, the requirements have completely changed. Or you spend 80% of your time, building the final 20% of business value.

Enter Agile

Agile, although not a panacea, helps companies build the software they want, faster. One of the best benefits for an organization to adopt Agile, is the ability to change rapidly. By developing in shorter intervals (anywhere between 1 and 4 weeks) you can put out software rapidly and gain the value to the business more rapidly.

By getting your software into the hands of your customer's quicker, you can discover problems sooner in a software development build than you could with traditional methods. With software bugs, early detection can save you and your customers frustration, time, and money.

One of the biggest advantages with Agile is the testing aspect of software development. Becuase Agile focuses on faster development, you need to be able to test your software rapidly and be assured that you are not introducing flaws into your production software. Agile utilizes the practice of Unit testing. That is - testing software at its rudimentary building blocks. When you test at this level, changes can be detected very early in a revision process. This way, you can be fairly certain that you are producing quality software. I cover more on that on the page called Avoiding Technical Debt.