It’s a highly elastic framework allowing a team of specialists to work on complex problems and provide iterative solutions that translate into a highest value, quality product.
Scrum is a simple and effective methodology of working as a group on complex products. Its creators define it as easy to learn, hard to master, and more accurately – as a light methodology in the context of processes, easy to comprehend, but demanding when it comes to mastering it to the core. Main difficulties are implementing it in organizations that aren’t based on agile project management and executing the idea of Scrum in practise. A project conducted according to Scrum will be as complicated and advanced as the team members want it to be.
|You may also be interested in:|
API tests for beginners
Useful Tools in Software Testing
8 Examples Proving Testing is Important
Roles in a Scrum team
We can define three main roles in a Scrum team:
- Product owner: responsible for product value maximization resulting from Project Team’s work and Product Backlog management.
- Development Team: a group of specialists who provide a product potentially ready for delivery at the end of every Sprint. Project teams are organized and authorised by a client to manage their own work. It results in a synergy which optimizes the overall efficiency and effectiveness of the Developers Team.
- Scrum Master: responsible for promoting and supporting Scrum, helping each member of the team understand the methodology’s theory, practices, principles, and values. It’s a person who also assists in communication between a project team and the rest of the organization so it’s beneficial for both sides and maximizes the value created by the Scrum Team. Scrum Master organizes all the meetings, too.
The idea of Scrum is completing the project by a self-sufficient and self-organized group. The work of Development Teams is based on a series of cyclical events – they plan the tasks possible to fulfill in a particular sprint. As a result of every iteration, we have a closed part of a product a Scrum Team is working on.
- Sprint: a time interval defined in a project in which a team has to provide a previously planned part of the software. A duration of sprint can vary depending on the project’s specifics and can take from 1 to 4 weeks.
- Sprint planning: a meeting during which the team members plan the scope of to-do work in the next Sprint. They use a chosen manner of tasks estimation. A popular practice is defining/evaluating the complexity of fulfilling a task with Story Points.
- Daily Scrum: everyday, maximally 15-minutes long meeting during which each team member answers these three questions:
- What did I do yesterday?
- What do I plan to do today?
- Do I have any problems that make it harder to complete the sprint’s goal?
- Sprint Review: a meeting organized at the end of a finished sprint allowing the team and and stakeholders (e.g. business departments, marketing or other interested entities representatives) to see the results of work in a particular sprint. The presentation is conducted by the development team members who show the effects of work in the form of a readymade software and answer the stakeholders’ questions and suggestions.
- Sprint Retrospective: a meeting at the end of sprint allows the team to evaluate its work and develop improvements that should be implemented in the next round. During the meeting, the team should answer the three crucial questions:
- What went well during the sprint?
- What can be improved in the next sprint? (ideas)
- Which improvements will be implemented in the next sprint?
- Scrum Grooming: separate, cyclical meeting of the whole project team to review and optimize the Product Backlog elements.
Every event mentioned above can have a different course and form of realization depending on the team and practices of a particular organization. However, they should be an integral part of the work cycle in sprints to let the team work according to the Scrum framework.
The role of a tester in a Scrum team
In the perfect version of Scrum Team, each member has sufficient competence to fulfill every task. Then, what’s the role of a tester if it’s not clearly defined in the methodology’s assumptions?
In a team built according to Scrum dynamics, the role of a tester shouldn’t be based only on testing readymade fragments of software. It starts at the stage of planning. A tester, along with the development team members, discusses and analyzes individual elements of the software and helps plan the stages of development. When the project team works out the details of implementation, a tester identifies how the particular functionalities should work and, at this stage, is able to create tests (in the form of Test Plans). A tester can also look for defects while discussing and planning the implementation of functionalities.
During sprints, when the development team fulfills the goals, a tester can still work on adjusting and maintaining the test cases or prepare the data necessary for applying tests after the programmers’ job is done.
The idiosyncrasy of a tester’s work in Scrum.
What are the advantages of such a broad testers’ participation in creating products in teams based on the Scrum methodology?
Most of all, an actual impact on the product. A possibility to suggest improvements during the scrum events for solutions worked out by the team. A tester has a chance to detect errors on a very early stage of work or even before it starts which translates directly into reducing the final product cost.
Working in Scrum is characterized by efficient and frequent communication between all the people involved in the process of software development. Close cooperation with all the team members, from Project Owner through the whole development team to the Scrum Master, has a great impact on the information flow and high comfort of working.
A tester who co-creates the product in a Scrum team has a chance of influencing and smattering every stage of the process so the final product was possibly the best, highest quality, safe, and complete.
Other advantages of testers working in Scrum:
- Thanks to participating in the project development at the early stage, a tester has time to prepare an analysis and functionality fragments testing, and doesn’t have to deal with a readymade product with many functionalities and dependencies.
- Considering the time needed for tests at the stage of planning the work of the project team allows obtaining an accurate estimation of the team’s engagement with planned functionalities.
- Possibility of basing the tests on User Stories (US) can be a groundwork for tests planning and the satisfaction criteria can be an oracle for some test cases.
- Working on defined US provides clear and transparent acceptance criteria (AC) that allow addressing them at the stage of verification.
As every methodology, Scrum is not challenge free. Here are some elements that can be quite demanding in testers’ work:
- A large number of meetings can influence the speed of work. The scope of testers’ interest is so broad that they could participate in most iterations which is extremely time consuming (we should highlight the fact that the time is definitely not lost but the situation can be organizationally demanding).
- It’s possible to modify and verify the testing documentation in the form of TP and TC many times due to the dynamics of conducting scrum projects and their high elasticity.
- Another time-absorbing element in constantly evolving and developing projects are regression tests that validate maintaining integrity of the software which is continuously changed and improved.
- Depending on the project team work’s organization, it can turn out that the end of the sprint is characterized by a large accumulation of tasks to be tested. It can result in exceeding the time of sprint or not providing the functionality according to the methodology’s assumptions.
Working in Scrum projects is not for everyone. It requires a certain style of work – dynamic and adjustable to a load of multilateral communication. However, testing being a part of the scrum team enables independence and self-reliance while completing the tasks which translates into higher possibilities of self-improvement. It also gives a lot of satisfaction – a tester has a chance to take care of the product’s quality at every stage of its life.