Chris Alexander

On Engineering

Getting Started with Agile Development

10th March, 2010

I recently wrote about how students can make use of Team Foundation Server to improve management of their projects, include version control, and generate reports suitable for their assignments.

You may have also covered various development approaches in your courses at University - and you may have heard approaches like “waterfall”, “agile”, “scrum” and more being batted around - I did and I had no idea what they were on about. After a total of 2 years working in 2 startups (Huddle and TweetMeme) its all starting to make a lot more sense. But without that practical experience, I would have had no idea what these terms meant and what it was like to apply them.

Team Foundation Server is designed to be extensible to support various development profiles. As a result it is a great way to get started actually applying these principles, which will provide all kinds of advantages to you in your projects.

Development Plan Advantages

Before embarking on any project, it is always a great idea to have a development plan. The plan outlines not only what you are going to do (the requirements, specification, and testing criteria) but also how you are going to work on the project.

For example you may take the Scrum approach to development, where you maintain a ticket backlog, take decisions weekly on what you are going to work on that week, and have a daily analysis of your progress over the week (or however long your sprint is).

The trick with choosing a development plan is to find one that will work for you, but also one that you will stick to. It’s no good if you have a great plan but can’t stick to it!

I would recommend taking a look at past course notes on development plans, or finding information online (ignore your tutors, Wikipedia is a great starting point to get ideas) before pitching in to a plan.

Agile Development

Agile software development has been confused with having no plan at all in the past. As its name suggests, it takes an almost reactive approach to writing software. Goals and targets are always being re-evaluated, and in teams a face-to-face, less-documentation approach is promoted over the documentation-heavy approaches of other lifecycle management practices.

However Agile development often follows a very rigid scheme, where iterative developments are integrated and tested on strict timelines. More on Agile development.

Helping Development with Team Foundation Server

Team Foundation Server is built as an extensible platform. This means that people are able to contribute more development methodologies to those that are built-in.

This allows you, for example, to go and download process templates for Team Foundation Server, so you can plug in support for an agile project and get started straight away.

These plugins provide a great way to find the process that works best for you, and let Team Foundation Server help you stick to the process and deliver a successful assignment.