Scrum is one of the most used methods in team collaboration in the world! It’s now getting used in various industries; from construction to pharmaceuticals to engineering. However, Scrum was created with a very specific industry in mind. That industry was software development. Naturally, software development included web development. Up until this day, Scrum is most effective in these 2 industries. In today’s article, we’ll discuss what Scrum is, and then dive into how to use Scrum in web development.
The Beginnings of Scrum
To better understand Scrum, we need to first understand why it was created. It all started in the 90s, when software development teams used the Waterfall approach. This meant that they got all requirements for the project, then worked until the deadline to finish the project. While this method was effective, it had a lot of drawbacks. The main drawback was that the team could only adapt to client feedback after the end of the project, which could sometimes be too late.
That’s why a team of developers created the Agile methodology in 2001. They created with it the Agile Manifesto and its 12 principles. The main goal of these principles is to deliver value to the client, delivering software frequently, and teamwork. Interested to read more about Agile? Then read our beginner’s simple and complete scrum guide.
Understanding The Basics of Scrum
Now that we’ve discussed Agile, we can talk about Scrum. Scrum is in short an Agile framework. What this means is that it’s a framework that applies the Agile methodology and its principles. There are multiple Agile frameworks such as Kanban or Lean. Scrum however, will be our focus for today.
Scrum by definition is an Agile framework because it aligns with the Agile principles. It focuses for example on iterative development, client feedback, and being open to change. Another key advantage of Scrum is the extra care of having self-organising teams and allowing these teams to collaborate effectively. However, in order for these teams to work effectively, each of the members needs to master the Scrum core values, which are:
- Commitment: Commitment to reaching the sprint goals and delivering value to the client.
- Courage: Being courageous in dealing with impediments. This includes taking risks or standing up for your team.
- Focus: To focus on achieving sprint goals and delivering value. You do this by avoiding all distractions.
- Openness: Be fully transparent in communication. Open communication is what allows teams to thrive. This is enhanced in constructive criticism or raising concerns.
- Respect: To appreciate every single member of the team and their diverse skills. It’s important to recognise that every member delivers value to the project in their own way. Most importantly, you need to trust your team members to complete their tasks.
How To Apply Scrum?
Now that we know and understand the foundations of Scrum, we need to dive into the how-to. In order to deliver constant value to clients, Scrum employs a system of sprints. Sprints are a period of time between 1 to 4 weeks. Sprints are the time periods where the development occurs.
Besides understanding sprints, it’s important to understand who are the team members of the Scrum team. The team consists of:
- The Scrum Master is the person responsible to make sure that the team is following Scrum procedures. They also eliminate any impediments that would slow the team down. The Scrum master acts as a servant leader, aiming to foster an environment that encourages teamwork. They differ from a normal manager because they do not give tasks to the other team members.
- The Product Owner is the person in direct contact with the client. Their role is to transform the client requirements into tasks that the team can work on. Their main responsibility is to have a clear vision of where the project is heading. They need to be able to illustrate that vision to the team, and correct the path of the team if they drift wide.
- The Scrum Team are the people responsible for the main tasks of the project. In the case of web development, that includes development, design, testing, operations, and more. These members all have the shared objective of reaching sprint goals and delivering value to the client.
Scrum Essentials
Scrum Artefacts
In order to apply Scrum properly, one also needs to understand the artefacts. The artefacts are:
- Product Backlog: This is a place that contains all future tasks of the project. The product owner manages this and prioritises the different tasks.
- Sprint Backlog: The sprint backlog contains all tasks that are or will be worked on during the current sprint.
- Increment: Increments are what’s delivered at the end of sprints. They need to be functional and working pieces of software, like mentioned in the Agile manifesto.
Scrum Rituals / Ceremonies
Now, the final piece to being able to apply Scrum is to follow the rituals. They are also called ceremonies. The rituals are:
- Daily Scrum Meeting: A meeting of maximum 15 minutes. All members of the team attend this meeting, and the Scrum team answer 3 questions:
- What have they worked on between the last daily meeting and the current one?
- What will they work on between the current daily meeting and the next one?
- Are there any impediments disturbing them in completing their work?
- Sprint Review: This is a meeting done at the end of each sprint. It involves the entire team and the stakeholders. This meeting is a celebration of sorts to show the stakeholders what work has been done during the sprint. Stakeholders also have the opportunity to provide any feedback. The meeting also helps them determine whether the project is headed in the right direction.
- Sprint Retrospective: An internal reflective meeting with all the team members. In this meeting, the team reflects about the last sprint. They see what went well, what didn’t, and what actions they need to do to improve as a team.
- Sprint Planning: An internal meeting where the Scrum team selects items from the backlog to work on for the next sprint. They decide items based on how much work they can do in the next sprint. The product owner also helps to provide guidance on the tasks. They also provide guidance depending on the priorities and vision of the project.
Scrum in Web Development
Now that you understand Scrum and how to use it, it’s important to understand how each element relates to web development.
Scrum is really simple to use in web development since it was basically created for it. The team just needs to follow the agile and Scrum principles and they will be good to go. For example, their priorities need to be to deliver working software regularly. In the case of web development, the clients need to see something that’s functional for them, whether a website or a web application. Every sprint they need to see new features and screens added.
Tasks will be in the form of either tasks and/or stories. Stories describe how the user will use the product.
In the case of web development, sprint goals would usually be to finish certain features or screens of the website/ web app.
Overall, as a framework, Scrum allows easy adaptation in web development. Furthermore, there are some tools that facilitate this even further.
Tools and Technologies for Scrum in Web Development
Nowadays, there are many tools that facilitate the implementation of Scrum in web development. We’ll go through some of them now and what they help with.
Project Management Tools:
There are now multiple tools such as Jira, Trello or Asana that facilitate the management of Scrum projects. Jira for example allows you to create Scrum boards, create sprints, and manage the backlog, all from one place.
Communication Platforms:
Use tools like Slack, Microsoft Teams or Discord to improve communication and collaboration between the team members. You can also use Zoom or Google meet for virtual meetings such as the daily standup, in case your team works remotely.
Version Control Systems:
You can introduce version control systems to improve collaboration and code changes between the developers. The most popular options are GitLab, GitHub, and Bitbucket.
Continuous Integration/Continuous Deployment (CI/CD) Tools:
Explore the use of CI/CD tools such as Jenkins or GitLab CI, which will automate the building, testing and deployment phases of your project. This fosters collaboration for your team, and aligns with Scrum’s focus on delivering increments.
Documentation Tools:
Tools like Confluence or Google Docs will allow you to keep all your documentation in one place. They also allow your team to collaborate for the documentation of various aspects of your project.
Conclusion
To conclude, we discussed Scrum today, and how to use it in web development. We started with a deep dive into what Scrum is, and then ended with how to use it in web development and what tools facilitate this.
While we understand that Scrum was originally started for development in general, whether software or web, the entire industry has transformed completely since 2001. As we saw in this article, many tools are now available in order to facilitate the implementation of Agile and Scrum. In the past, teams could not collaborate as easily. A simple example of this is how teams had to give each other their code in USBs or CDs, while now tools such as GitLab facilitate this.
The question is how much will Scrum and Agile keep developing? Additionally, with all the advancements in AI at the moment, how will Scrum and Agile evolve?