Posts Tagged ‘methodology’

What Does Agile Look Like?

Monday, June 15th, 2009

So you think you might already be using an agile philosophy. Here is my take on what agile looks like.

Agile Teams

It’s a team effort, agile teams tend to be small (ten or less people), they work very closely together in the same location if possible sharing the same code and development tasks.

There are short daily face to face meetings, with each person speaking for a maximum of two minutes on what they achieved the previous day and what they are working on today.

Working Software

People focus on outcomes not blame. The only measure of success is working software.

Delivering What Users Want

You work very closely with the client showing them the latest version of the software early and often to get constant feedback.

Business owners should make business critical decision, do not guess what the user wants ask them. Keep records of these discussions and your project progress in a wiki or blog that everyone can see.

Feedback

You get constant feedback from the code you are writing via automated build and automated and continuous testing. You will refactor often to make the code more usable and elegant.

Iterations and Sprints

Work progresses in small iterations (small blocks of time one to two week sprints), where you identify a set of features, implement and release them. Time boxing means that during an iteration features can be skipped but the deadlines that cannot be extended. All the time demoing the iteration to the client to get feedback to check you are on the right track.

Business owners and the development team should work at a pace that you can continue forever.

Agile Software Development

Saturday, June 13th, 2009

In 2001 seventeen people got together to discuss a better way to develop software, these people coined the term “agile” and developed the agile manifesto to describe a re-focused approach to software development. The main values of this new approach were:

  • Value individuals and interaction over process and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change rather than following a plan

“Agile development uses feedback to make constant adjustments in a highly collaborative environment.”

Basically it was a shift from a plan based approach to a more continuous natural style. You expect the requirements to change even late in the project and that is ok as you have a flexible results driven approach; responding to change is more important to following a plan.

The project is released in small phases to the client with constant feedback from the client to check you are on the right track. Constant communication between the team, the client and the business decision makers are crucial to the success of the project. Success is determined by working software that the fulfils the users needs.

So how do you know if you are an agile company? I will detailing my thoghts on that in the next post.

Introduction to Development Methodologies

Thursday, June 11th, 2009

I find that a lot of developers stick to one development methodology. Now while I personally like development methodologies as they have been created on best practice and proved empirically in real world projects, you need to learn to use the best tool for the job. I tend to mainly lean towards agile development.

The main development methodologies are:

Agile

Agile started from the agile manifesto and is designed to deliver the software your customer needs when it is needed. Unlike waterfall it allows you to react to the inevitable change in requirements even if they are late in the project. It is a set of values that cover planning, designing, coding and testing. Branches of agile include extreme programming (XP) and scrum.

Rational Unified Process

This is an iterative software development process developed by a IBM. It is not a rigid process but more of an adaptable framework that is tailored to the project and organisation.

Waterfall

This is a sequential approach to software development and typifies the Microsoft dominance of the 90s. You move from one phase to the next, as you do the previous stage is set in stone and cannot be changed. E.g. when you move from requirements to design you flow down the waterfall and cannot go back up.

I have never worked with waterfall but I have experience of the rest and will be sharing my thoughts over the next few days.