Close and Go BackBack to Viget

Software Development: Lean and Agile

Brian Wynne Williams
Brian Wynne Williams, CEO & Co-Founder, October 17, 2007 1

Alex Iskold has a great post on Read/WriteWeb about The Future of Software Development. He does a good job of quickly summarizing the evolution of software development, and why older methods don’t work. In my view, his post title is misleading—he’s really describing the current state of software development for web applications.

Our work with start-ups over the years has pushed us to apply agile methods because requirements change constantly in an evolving business. As we meet new clients, we often go through a similar description of the way software development practices have improved over the years. Some key points from Alex:

The Old: Waterfall Model

“The idea was to construct systems by first gathering requirements, then doing the design, then implementing it, then testing, and finally getting it out the door in one linear sequence.”

“We have come a long way since then and learned a lot about making software. The Waterfall Model is now considered a flawed method because it is so rigid and unrealistic. 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.”

The New: Agile

“First, software has to embrace change. Today’s assumptions and requirements may change tomorrow, and software needs to respond to changes quickly. To meet the challenge, agile approaches advocate focusing on simplicity. Make the simplest possible system that satisfies today’s requirements and when tomorrow comes, be ready to adapt.

“The software systems created using agile methods are much more successful because they are evolved and adapted to the problem. Like living organisms, these systems are continuously reshaped to fit the dynamic landscape of changing requirements.”

Small Teams

“With a bit of discipline and a ton of passion, high quality engineers are able to put together systems of great complexity on their own ... ust a handful of great engineers can now successfully build systems of great complexity. Craftsmanship has finally come to software engineering!”

Alex also explains refactoring and testing, practices we apply here at Viget.

Agile isn’t perfect, particularly in a consulting environment, and I would stress lean teams over small team (though they’re often both). The future of software as Alex describes it is here now, and the best web products being built today apply these methods effectively.

A Development Community for Viget Labs and Beyond

Every team member here at Viget Labs strives to be an innovator. We members of the development team are no different - that's why we're constantly engaging in community discussions and exploring the unknown that is the next generation of open-source web applications.

Viget Is Hiring!

Viget has job openings for Ruby Developers, Interns, and Front-End Developers. Learn More »

Recent Comments

Interesting.

I’ve been (mis)using similar behaviour in javascript for years.


var i = 0, car;
while( car = cars[i++]){
// do stuff
}

I suppose that the reason it works is exactly the same reason it works in Ruby ... but in this case I think the code is actually very easy to read.