The Agile methodology is a way to manage a project by breaking it up into several phases. It involves constant collaboration with stakeholders and continuous improvement at every stage. Once the work begins, teams cycle through a process of planning, executing, and evaluating. Continuous collaboration is vital, both with team members and project stakeholders.
Agile scrum methodology is a project management system that relies on incremental development. Each iteration consists of two- to four-week sprints, where the goal of each sprint is to build the most important features first and come out with a Potentially Shippable Product.
Why Agile?
Agile Frameworks like Scrum are better suited to deal with Complex problems where there is a lot of ambiguity and would need to inspect and adapt cycles to shape the product. Scrum can be used in Simple, Complicated problems as well. However, Scrum may not be effective while dealing with anarchy systems.
What Agile?
Agile is a mindset – a set of values and principles.
Agile project management is not a singular framework — rather, it can be used as an umbrella term to include many different frameworks. Agile project management can refer to terms including Scrum, Kanban, Extreme Programming (XP), and Adaptive Project Framework (APF).
In Agile development, testing needs to happen early and often. So, instead of waiting for development to be finished before testing begins, testing happens continuously as features are added.
Tests are prioritized just like user stories. Testers aim to get through as many tests as they can in an iteration.
What Does an Agile Tester Do?
In Agile testers and developers need to work closely together. Communication and collaboration are key. Once development and testing are underway, communication remains important.
Testers should be testing as developers write code. Plus, developers will probably do some testing.
Agile testing improves product quality and enables development teams to release software on shorter cycles. Effective test case management helps Agile testers.
Testers find the errors faster and developers fix errors faster. So, you’ll lower the risk of finding a bug at the very end of testing.
Tester Role in Agile
The role of a tester in an Agile team includes activities that generate and provide feedback not only on test status, test progress, and product quality but also on process quality.
- Understanding, implementing and updating the Agile Test Strategy
- Measuring and reporting test coverage across all applicable coverage dimensions
- Ensuring proper use of testing tools
- Reporting defects and working with the team to resolve them.
- Coaching other team members in relevant aspects of testing
- Ensuring the appropriate testing tasks are scheduled during release and iteration planning.
- Actively collaborating with developers and business stakeholders to clarify requirements, especially in terms of testability, consistency, and completeness
- Participating proactively in daily stand-up meetings, story grooming sessions, team retrospectives, suggesting and implementing improvements
Testing in Agile Methodology
An Agile tester is a member of an Agile team whose main duty is to carry out tests and assess the quality of the work in progress. Agile testers need to respond properly to change, have effective cooperation with colleagues in the technical and business departments, and clearly, understand testing concepts completely.
Agile testers should have adequate technical skills, know how to do efficient teamwork, be willing to learn and feel obligated to deliver the products to customers in a timely manner.
Testers in Agile teams have a crucial role in approving the code before it goes into production. Some of the key characteristics in all Agile testers are creativity, openness to ideas, willingness to do anything it takes to achieve higher quality, and focus on the customers’ requirements.
Scrum
Scrum, short for “scrummage,” is a term that comes from rugby where it means to restart play after there’s been a minor rule infringement. When a scrum occurs, players are packed closely together to gain possession of the ball and work together to push it forward.
While this might seem entirely unrelated to software, it was used to detail an analogy between rugby teams and product development teams in a 1986 Harvard Business Review paper by Hirotaka Takeuchi and Ikujiro Nonaka. They used the term to describe all members of a team working closely together to incrementally move a project forward.
This was then built on by Jeff Sutherland, who further applied the concept and framework to software processes.
Scrum is a framework based on empirical process control and Lean thinking wherein self-managing and cross-functional team delivers an increment of value every month or less (Sprint).
Scrum employs iterative and incremental approaches to optimize predictability and manage risks.
Scrum is founded on empiricism and Lean Thinking. Empiricism asserts that knowledge comes from experience and making decisions based on what is observed. Lean thinking reduces waste and focuses on the essentials.
The three pillars of empiricism are transparency, inspection, and adaptation. The values that make a scrum team successful are Focus, Openness, Respect, Courage, and Commitment.
Transparency
Significant aspects of the process must be visible to those responsible for the outcome. Transparency requires those aspects to be defined by a common standard, so observers share a common understanding of what is being seen.
For example:
- A common language referring to the process must be shared by all participants.
- Those performing the work and those accepting the work product must share a common definition of “Done”.
Inspection
Scrum users must frequently inspect Scrum artifacts and progress toward a Sprint Goal to detect undesirable variances.
Their inspection should not be so frequent that inspection gets in the way of the work. Inspections are most beneficial when diligently performed by skilled inspectors at the point of work.
Adaptation
If an inspector determines that one or more aspects of a process deviate outside acceptable limits and that the resulting product will be unacceptable, the process or the material being processed must be adjusted.
An adjustment must be made as soon as possible to minimize further deviation.