In my previous post, I wrote about Agile and shared notes that I made while reading a book called “Agile Testing Foundations, An ISTQB Foundation Level Agile Tester Guide”. I’ve decided to go more in depth and make a part 2 Agile post. There may even be a part 3 and 4 in the next few weeks!
Here is a bit of a recap from last weeks post: “Agile software development refers to a group of software development methodologies based on iterative development. It benefits from early and frequent feedback from customers which will avoid requirements misunderstandings, make features available earlier and will also resolve problems earlier. It improves quality and customer satisfaction. Teams do planning and releasing in small, frequent increments and can respond quickly to change.”
Today, i decided to write more about one of the 3 Agile methodologies: Scrum.
Scrum is a framework for managing projects. It is iterative and increment which means that a project is broken into a large number of iterations. An iteration is a complete development loop resulting in a release of an executable product, a subset of the final product under development, which grows from iteration to iteration to become the final product.
The Scrum Team consists of a Product Owner, the Development Team, and a Scrum Master. The Product Owner is responsible for defining the work that needs to be completed and the Scrum Master makes sure that the team keeps to the values and practices of scrum, sort of like a coach.
Firstly, the product backlog is created, this includes a list of everything that could be done over the lifetime of the project.
During the planning phase, the team select a small piece of that backlog and create a sprint backlog. This is the list of everything that needs to be completed in the sprint. Sprints are usually about two to four weeks long.
The Development Team works on the tasks that have been chosen in the sprint backlog.
The team meets on a daily basis, this meeting is called a daily scrum. They are about 15 minutes long and are held at the same time every day. A common approach for conducting a daily scrum meeting is for development team members to share with each other what they did the previous day, what they are planning to do today, and any obstacles that they are facing. Daily scrum is also commonly known as a daily stand up meeting.
At the end of the sprint, the work should be ready to be handed over to the customer.
The sprint ends with a review and retrospective. A sprint review is when the team demonstrates the completed functionality at a sprint review meeting. This usually takes place in the form of a demonstration of the new features, but in an informal way. A sprint retrospective is a meeting where the team discusses the sprint that just happened and also determine what could be changed to make the next sprint better and more productive.
As the next sprint begins, the team chooses another chunk of the backlog.
The cycle repeats itself until the product backlog is complete, the budget is depleted or a deadline arrives.
Scrum makes sure that the most important features are included in the final product.
I read about why teams should choose to use scrum in software development and i found 4 different points:
- Helps save time and money
- Encourages teamwork
- It adapts to the company
- It is easy to use
A few additional benefits include:
- Fast response to changes
- Functional tests are frequent in the process
- Direct collaboration with the client
- Motivation and responsibility of teams