What is Scrum?
What is Scrum? It's become one of the key buzzwords thrown around in the Software world today. Now just as a disclaimer, we're not talking about a Rugby Scrum, but interestingly that's where the name comes from. We are talking about a software development framework which is a subset of Agile.
So before we discuss Scrum, lets figure out what Agile is.
- Agile is a set of software development methodologies that is entirely based on iterative development, that builds software incrementally. Requirements and Solutions evolve over the project timeline as opposed to delivering one entire solution at the end of the process.
Now we can go back to the ideas behind Scrum. Scrum is one of the most commonly practiced frameworks for an organization to implement Agile Development. The philosophy behind Scrum is to create a consistent feedback loop on the progress of an application between stakeholders and developers. Which in turn, helps a development team more easily adapt to changes in needs and wants of the stakeholders, as they can ensure that each iteration of the application is up to the standards required. A key highlight to take away from this idea is that making changes to an application are much easier as you are working in iterations, as opposed to a traditional waterfall strategy where stakeholders really only get to provide feedback once the entire application is developed, which makes it much harder for a developer to go back and make the necessary changes.
In Scrum, the feedback loops are created through the process of creating Milestones, known as "Sprints" in Scrum. These sprints are consistent time frames (generally 2-4 weeks long) that a potentially shippable product must be created by the Scrum team. At the end of each sprint, key stakeholders and team members gather for a demo of the product to analyze the changes that need to be made.
The three key roles in a Scrum process are the Product Owner, Scrum Master and Scrum Team.
- The Product owners job is to lead the understanding of business and market requirements. The product owner has the vision for the application.
- Scrum Masters main role is to ensure that that Scrum practices are being correctly followed by the Scrum Team.
- Scrum Team are in charge of the development of the product. These tend to be cross functional teams that consists of developers, testers, designers, operational engineers. Essentially this team puts what is planned into practice.
Scrum basically allows development teams to be more "Agile" and easily react and enact necessary changes. These principles allow teams to save time and money, and get an application to market faster.
- Saves Time: Teams are nimble and able to make small changes rather than large changes at the end of development. Plus, bugs are identified earlier in the software development life cycle, thus making them simpler to solve.
- Saves Money: Since an organization is able to develop a product faster, resources can be devoted to that particular product for a shorter period of time.
- Faster Time to market: As a result of increased collaboration and transparency through the scrum process, Scrum teams are able to create a shippable product in a shorter period of time. This factor can be especially in huge in Banking and Financial industries, as getting your technology out before your competitor can generate millions for an organization.