Agile Development Practices 2007


David Garmus, David Consulting Group

An agile approach can deliver recognizable value to organizations. Using examples from recent projects, David Garmus demonstrates that software development projects can benefit from using the agile methodology when appropriate. Delivering a project in an organization that is following an agile implementation methodology can be faster and more productive than the same project in an organization that is using the traditional waterfall approach. David provides actual delivery (project performance)

Paul King, Asert

Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages--Groovy, Ruby, and others--change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently. In addition, some new techniques can come into play to improve your development.

Jared Richardson, Agile Artisans

Test automation is like exercise. We know both are great ideas, but most of us don't do much of either. Although we know that creating a solid automated test suite is critical to any agile testing strategy, we are often just told to "Do it" without much support-money or people. Jared Richardson examines the infrastructure and tools you need for your automated testing to succeed and prosper.

Roy Osherove, Team Agile

Many who try to unit test their applications-whether using agile or traditional methods-quickly find that doing a thorough job can be difficult if the code was not designed with testability in mind. Roy Osherove describes dependency injection methods for designing APIs so that they are easier to test. He explains how design patterns can help and how to implement applications with interface-based programming. Roy shares his insight on what "evolving a design" really means in the context of test-driven development.

Stacia Broderick, Agile Evolution, Inc

The phrase "working together" is based on a team collaboration metaphor. However, Stacia Broderick and Lee Devin have found that most teams don't actually collaborate-rather, they consist of modular parts that are steeped in competition and oriented to reward the "stars." Stacia and Lee use a metaphor drawn from theatre art, a form of group work that requires collaboration, encourages interdependency, eschews competition, and emphasizes the project rather than any particular member of the group.

Zach Nies, Rally Software Development

Many software teams do not have continuous visibility into the ongoing quality of their software releases. Although agile practices emphasize the value of bringing testing forward in the development process, many teams lack the infrastructure required to make this a reality. Testers often depend on development or operations to produce, install, or deploy builds. Zach Nies discusses how build automation provides an effective platform to bring quality and testing earlier into the development process.

James Waletzky, Microsoft Corporation

Big Design Up Front (BDUF) is a design technique that has been part of the development cycle for decades. Unfortunately, fully specifying a software design in the presence of change without a crystal ball is rarely effective.

Scott Ambler, IBM Rational

In Behavior Driven Development (BDD), you write behavioral tests of an application just-in-time, one test at a time to express its design. You can take a BDD approach to a database schema in the same way. Scott Ambler presents the Behavior Driven Database Design (BDDD) technique. He explains its relationship to Agile Model Driven Development (AMDD) and how it fits into agile software development in general. Find out how to refactor a database by applying simple changes that improve the design without changing its semantics.

Rachel Davies, Rachel Davies

An agile team needs a workspace that supports highly collaborative ways of working together. The team needs to be able to sit together and have visible "information radiators" of the latest status on planned work and code quality. Some teams also boost their spaces with "eXtreme Feedback Devices" such as lava lamps and audio signals linked to automated processes. It is vital to ensure that feedback mechanisms within the agile workspace are easy to interpret and low maintenance.

Diana Larsen, FutureWorks Consulting

When teams "go agile," members of the whole team take on greater responsibility for thinking and deciding as a unit. Though individual team members may know how to make great individual decisions, few people bring the skills or perspective needed to make high quality decisions as a group. Teams need to plan for all elements of high quality team decisions, balancing technical quality, commitment to implementation, efficiency, and opportunities for team development.


AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.