SCRUM

I received an email from a software developer who wrote: “Our company selects Scrum to be the only development method and we receive Scrum training from a consultant company. However after few months, many projects have failed and managers were angry at us. We do not know what happened. Please help.”

Answer: “Scrum is the most popular Agile approach and is being used in software companies worldwide. It is a simple but very effective management process for software development. Scrum can help project team to manage changes in scope of the project. Scrum iterations help the team to develop products in several incremental steps called Sprint (1 to 4 weeks) where the team can get feedback from users quickly. Scrum process is simple, clear and easy to learn, its “Daily Standup” meetings allow the team to share information effectively; the “Burndown chart” helps team members to check status easily.

The most common issue of project that uses Scrum is they do not follow the process but often skip some steps as they see fit. For example, team members may say to each other: “We already know what to do, why bother to update the sprint backlog? It is a waste of time.” Every process is defined for a purpose, if you do not follow it than you do not use Scrum accordingly. In that case, you may have problems but it is not because of Scrum.

Scrum is designed as a “lightweight development process” for small project with small teams (3 to 8 people) who work together in the same place. It is NOT design for larger project with large distributed team where members are located in several geographical areas and in different time zones. If your project is large or your team consists of a lot of people and many are not located in the same place, I suggest that you DO NOT use Scrum. Even it is possible to “scale up” as some consultants have suggested but I would not recommend it. Please remember that Scrum is not a “one size fits all” and scale up requires a lot of efforts, coordinations and unless you are experienced, do not use Scrum for something it is not designed for.

Scrum is excellent for Web project, for project that need fast update but NOT for critical systems such as medical devices, aviation and weapon, or defense systems. These projects require a lot of care because of high risks. They need to meet safety expectations such as requirements analysis, quality assurance, and design for reliability, qualification testing, project documentation, configuration management and traceability. These projects are better suited for traditional software lifecycle practices rather than Scrum.

Software company should have several development methodologies not just one. Project managers should select appropriate methods for each project accordingly. Scrum might not be correct method so company must chose wisely.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University