Is Agile the Future of Software Development?

Google AdSense

Alex Iskold writes about the Future of Software Development at Read/Write Web. There he makes a few nice points comparing the waterfall model to today’s more trendy and talked about agile processes. He doesn’t get into the various other software development life cycle models (SDLC) such as Spiral, Incremental, XP, etc.

In the real world, software projects have ill-defined and constantly evolving requirements, making it impossible to think everything through at once. Instead, the best software today is created and evolved using agile methods. These techniques allow engineers to continuously re-align software with business and customer needs.

Alex talks about the failures of the waterfall model, which most everyone should have learned in college or during any reading of a good software engineering book.

The only part of the article that I don’t seem to grasp is the intentional exclusion of mentioning the .NET framework. Even if the author doesn’t like the framework, surely it is worth a mention in his list of “modern programming languages.” In his list, he only includes Java, PHP, Python, and Ruby.

A few commenters pointed out the lack of including the .Net Framework as a modern language or reusable library. David Murphy of BuzzSort wrote “On… The Future of Development” and reminded us about Workflow and LINQ (two of the newer .NET technologies).

..whilst it was an interesting read I believe the picture it left was incomplete and inaccurate.

I believe that all of the agile buzz over the last several years is just a fad and eventually the good items from the agile processes will just be commonplace in the development environment (we’ll probably have a new name for it by then). Just look how some of the agile processes are now being incorporated for the masses (Microsoft Solutions Framework (MSF) for Agile Software Development, Microsoft eScrum).

I also believe that there’s not one technique, model, or set of methodologies that can work for every project or team. And that it is the job of software engineers along with project managers to help focus the energies and talents of the developers and designers to make the best possible product.

Having fewer developers and a good strategy should result in better products. This is the same conclusion that Bob Warfield came to in his article titled “To Build Better Software, You Need Fewer People (But Why?)“.

A few choice quotes from the R/W Web comments:

Waterfall said “I can’t see anything you’ve described not being possible by following the waterfall method. Somehow people have turned the phrase agile development into a mythical beast capable of achieving miracles.”

Paul W Horner said “Software developers have always had huge problems when working in large teams. That hasn’t changed at all. In many ways Agile is just dodging the real issues.”

Jimbo said “There’s much more to software than web 2.0, search engines and social networking sites.”

Little Italy Festa, San Diego

Google AdSense

Every year the Little Italy district of San Diego holds the Little Italy Festa street fair. Usually, the streets are covered with tons of chalk drawings (Gesso Italiano), but this year – due to weather, we think – the number of artists were less than before. There’s also lots of food and gift booths selling kettle corn, t-shirts, and lots of jewelry.

Below is a photograph of a chalk drawing off India Street at Little Italy, San Diego.

Little Italy Festa - Chalk Pavement Drawing

Photograph taken Oct 14, 2007

Tired of grilling squirrel burgers?

Ben Scheirman writes about software quality and says that we need to be more careful to not make squirrel burgers. This is an excellent article that just serves as another reminder to not cave in (too much) to pressure to deliver products quickly without quality.

Back at your desk, you are realizing that you are about to deliver to your manager a squirrel-burger.  He wants X features, but you can’t deliver them on time.

This reminds me of having to ask your client to choose two of three things: quality, time, or money. You’ll never get high quality, quick turnaround, and a cost effective project. If you want to spend the money, you can get quality and time. If you want to give up the time, you can get quality and cost savings (money). And if skip quality, then you can get time and cost savings (money).

Scott Bateman also has some nice comments there in Ben’s blog post. Scott provides five tips to help provide estimates to your managers.

My Related Posts: ,

Debugging code is like farting…

This little Zen-like quote was found via secretGeek’s post called “Q: What’s the cleverest kind of code?“. Leon answers his question declaring “A: No code at all!”

In his research, Leon was searching for the Brain Kernighan debugging quote (shown below) and discovered it on Chris Sells’ blog. The Kernighan quote has been around for a while and most everyone that has been writing code has probably already seen it.

Debugging is twice as hard as writing the code in the first place.  Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
–Brian Kernighan

WikiQuote has a few more quotes from Kernighan. But I think the jewel of Leon’s post comes from the quote taken from Chris’s blog entry who cites Paul Downey.

Debugging is like farting – it’s not so bad when it’s your own code.
–Paul Downey

My Related Posts: ,