Back to Top

Understanding Scrum Software Development

scrum

Scrum is a subset of Agile software development, a strategy that helps developers deliver fully functional software products. Just like with a rugby scrum, developers work together to address complex issues.

Everything starts with a product backlog, the list of features that need to be implemented. The developers go through the backlog, discussing what needs to be done, and how much time they'll need to complete those features. The backlog is similar with a grocery list, if you will.

Scrum relies of sprints, time intervals that will usually last from a week to a month. The team aims to complete a task from the backlog in a sprint. The developers should ship a piece of "valuable software" (see Agile Manifesto's first principle) which satisfies the customer at the end of each sprint.

Every sprint ends with a review, a meeting in which the team discusses what went okay, what went wrong, and what can be improved. Then, the developers will choose a new item on the backlog, allocating it a new sprint. The process continues until the backlog is emptied or until the entire project budget is spent.

Smaller teams will often have short daily meetings in which they plan for the day. The Scrum Master, who is the servant-leader for the Scrum team, ensures that all the developers are focused on the current goal. The Product Owner, who represents the customer, helps establish the priorities on the backlog according to the customer's needs.

Some customers may want to launch their products early on, for example, without waiting until all the project features are implemented. This means that the development team will have to prioritize some features, and the Product Owner will need to coordinate the Scrum team, making sure that their goals are always aligned with the customer's goals.

The Scrum strategy helps developers ship projects quickly. Functional versions of the application are released periodically, and this keeps the customer happy and motivates the team. More than this, customers are the ones who get to prioritize the features, so they set the direction into which the project is moving. And since the Product Owner is part of the team, the required changes – if any - can be implemented really fast.

With Scrum, time to market is often shortened by 30-40%. Many clients who work with teams that utilize the Scrum methodology get a higher return on their investment, because early feedback helps reduce wasted time and resources. And if the project doesn't look as good as it did on paper, it can fail without absorbing a lot of money.

It wouldn't be fair to close this article without mentioning some of the Scrum's disadvantages, though. First of all, due to its flexibility, clients may be encouraged to keep adding items to the backlog. Feature creep has always been a problem for software developers, because it prevents them from finishing the project. This may work okay if the development budget isn't limited, but that is seldom the case.

Then, Scrum teams can have serious problems even when they lose a single team member. So, it is essential to trust the existing developers, rather than micromanage their work. In the end, Scrum teams are supposed to work together and decide how to tackle any problem as a whole.