When I was asked to write this blog post, I did wonder whether to write about how to separate DNA using pineapple juice or wouldn’t it be great if we all had gills and could live under the sea. However, having been told that it should be work related, here instead is my view on a way of working that can, when used correctly and in the right circumstances, invigorate projects, bring teams closer together and share knowledge about the project that may otherwise only reside in one person’s head. I’ve worked with many types of software methodology over the years, most notably the rapid prototyping/waterfall approach which, although appropriate in some cases, often leaves developers working in isolation and can often leave just one person in the company able to fix a problem with the code or configuration of a server.
A few years ago, I first found out about the Scrum approach and it proved to be one of the best ways of working that I had experienced. The major advantage of Scrum was not only the ability for developers to have a say in the work being accomplished, but that it’s a team based endeavour that pools the resourcefulness and knowledge of several developers into a (hopefully) cohesive unit, that should not only benefit the project, but the developers involved. The whole Scrum subject is far too big a concept to sum up in a blog post, but in a nutshell it involves the following steps:
• A team of developers are selected that then commit the time that they have available (so if you’ve got an element of support in your role, say 20% support, 80% project) for the life time of that project
• The project is broken down into smaller parts called “sprints”, which aims to break the project down into more manageable, yet deliverable, chunks
• Tasks are then decided for the sprint, with the development team committing to what they can deliver for that sprint
• The work is then carried out with a retrospective of that sprint carried out at the end
The most important part of working with the Scrum methodology is that everyone commits to working in this manner...and that means everyone. It has to be understood that when developers are in a sprint, they cannot be distracted from what they are doing to fix bugs in other projects, etc. It’s the job of the Scrum Master to ensure that the developers are protected from such distractions and this is where commitment from all levels has to be ensured as the Scrum Master must feel that he/she can tell anyone (whether they be a director or the tea lady) to get lost if needs be!
I personally feel that the Scrum methodology is a fantastic way to work as it allowed a level of team work and knowledge sharing which benefits a whole project as well as the developers that are involved. When we combine this with some elements of Extreme Programming and Test Driven Development, the code that is produced is clean, lean and as free from bugs as humanly possible and makes you feel proud to have your name “stamped on the tin”.
So to sum up, vote Scrum for another glorious year of prosperity!