Agile software development has arrived in a big way. I know you're probably thinking, “Wow! Rod, you are really on top of things.” I know that agile methodologies have been gathering steam for years but now I am convinced that this is becoming more than a fringe development methodology.

In October I attended the first ALT.NET conference in Austin, Texas, which was one of the most interesting and rewarding conferences I have ever attended. They used the Open Space format as its content selection mechanism.

Rather than explain the Open Space philosophy in my own words, here's the definition as taken from the altnetconf.com Web site:

How Open Space Works

Whoever shows up is the right group. Whatever happens is the only thing that could have. Whenever it starts is the right time. When it's over, it's over.

An Open Space conference's agenda is decided upon by the conference participants during the opening of the event.

You can identify an issue relating to the theme of the conference for which you have a genuine passion and for which you will take real responsibility.

Think of powerful ideas that really grab you to the point that you will take personal responsibility to make sure that something gets done at the conference.

You may lead sessions, you may participate as an attendee, you may take responsibility for capturing proceedings, or you may just hang out in the halls and talk with interesting people.

Be prepared to be surprised.

When the conference started, attendees set the agenda:

  • What subjects were we interested in?
  • Who wanted to talk about what?
  • When did we want to talk about them?

The session content varied quite a bit but included these topics:

  • Best way to adopt agile practices in the work place
  • Demonstration of the new Microsoft Model Viewer Presenter (MVP) framework
  • Domain-driven development
  • Creating user stories.

The ALT.NET conference featured a number of interesting presentation formats.

  • Fishbowls: A session where there are 4-5 seats with one empty seat. When someone takes the empty seat, someone seated must get up. I know it sounds strange but it works.
  • Standard presentations: Scott Guthrie presented the MVC framework. The audience participated very heavily with tons of comments.
  • Hands on participation: Some sessions had content where attendees participated in hands on activities.

Overall this was NOT the standard uni-directional conference with speakers spouting knowledge from the pulpit. This conference was truly a discussion between all participants. As a matter of fact, the organizers managed it much like an agile project. The participants set the requirements and these requirements were met with a number of sprints (sessions). You see agile development practices focus on the symbiotic partnership between users and developers. This conference met its goal and met the requirements of all participants.

DevTeach Vancouver

In November I attended and participated in the DevTeach conference in Vancouver, British Columbia. Attendees consistently packed the agile sessions, which included subjects like continuous integration, unit testing, writing user stories, and the list goes on. Some sessions had an agile/ALT.NET conference-style to them as well. Some sessions did fishbowls, some had loose agendas that attendees and speakers further refined, and other sessions were standard conference sessions. In ALL of the sessions, participants were encouraged to contribute, to ask questions, and to challenge the assumptions of the speakers.

Agile = Good Practices

Agile practices make sense. For a long time I have been an advocate of good development practices. I learned CASE back in the day. I have done my share of use cases, I struggle to gather proper requirements, design good software, and in general, deliver high-quality software.

Every day I find myself drawn towards agile development practices. Why? Because they make sense. User stories are great ways to gather document requirements and acceptance tests. Unit and integration tests are great mechanisms for regression testing. Unit and integration tests also promote good design. In order to write good tests you need to have well-designed software that supports good testing methods. Small and frequent deliverables (sprints/iterations/etc) relate to the RAD developer that lives inside me.

Overall, agile development techniques are good development techniques.

So in the flavor of agile and the ALT.NET conference, I've decided that we'll present the user story of CoDe Magazine and agile development.

The CoDe Magazine Agile Story

As a developer magazine we need to cover agile practices, tools, and concepts better in order to better serve our readers.

The acceptance criteria for this story are as follows: the May/Jun 2008 issue of CoDe Magazine will be dedicated to agile development practices. Along with the normal .NET content you are accustomed to, CoDe will offer a great cross-section of agile topics. If you cannot wait, you can dig deeper into agile software development starting here: http://agilemanifesto.org/.

Rodman