Agile Testing Tutorial
Testing using Agile Methodology is the buzzword in the industry as it yields quick and reliable testing results. The following course is designed for beginners with no Agile Experience.
Nothing! This is an absolute beginner’s guide to Agile and Scrum Testing.
Tutorial | Agile Model and Methodologies: Guide for Developers and Testers |
Tutorial | Agile Testing: A Beginner’s Guide |
Tutorial | Scrum Testing: A Beginner’s Guide |
Tutorial | Automation Testing for Agile Methodology |
Tutorial | What is Scaled Agile Framework(SAFe)? Learn in 5 Minutes |
Tutorial | Waterfall Vs. Agile: Must Know Differences |
Tutorial | Bug/Defect Triage |
Tutorial | Agile Vs Scrum: Know the Difference |
Tutorial | Scrum Master Training: Complete Tutorial |
Tutorial | Scrum Vs. Kanban: Know the Difference |
Tutorial | Agile Vs. DevOps: What’s the difference? |
Tutorial |
Agile Vs Kanban: What’s the Difference?
|
AGILE methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. Both development and testing activities are concurrent unlike the Waterfall model
The agile software development emphasizes on four core values.
In this Software Engineering tutorial, you will learn
Agile and Waterfall model are two different methods for software development process. Though they are different in their approach, both methods are useful at times, depending on the requirement and the type of the project.
Agile Model |
Waterfall Model |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There are various methods present in agile testing, and those are listed below:
SCRUM is an agile development method which concentrates specifically on how to manage tasks within a team-based development environment. Basically, Scrum is derived from activity that occurs during a rugby match. Scrum believes in empowering the development team and advocates working in small teams (say- 7 to 9 members). It consists of three roles, and their responsibilities are explained as follows:
This is a repository where requirements are tracked with details on the no of requirements(user stories) to be completed for each release. It should be maintained and prioritized by Product Owner, and it should be distributed to the scrum team. Team can also request for a new requirement addition or modification or deletion
Practices are described in detailed:
Process flow of scrum testing is as follows:
Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the customers or when they are not sure about the functionality of the system. It advocates frequent "releases" of the product in short development cycles, which inherently improves the productivity of the system and also introduces a checkpoint where any customer requirements can be easily implemented. The XP develops software keeping customer in the target.
Business requirements are gathered in terms of stories. All those stories are stored in a place called the parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with span of 14 days time period. Each iteration includes phases like coding, unit testing and system testing where at each phase some minor or major functionality will be built in the application.
There are 6 phases available in Agile XP method, and those are explained as follows:
There are two storyboards available to track the work on a daily basis, and those are listed below for reference.
Crystal Methodology is based on three concepts
DSDM is a Rapid Application Development (RAD) approach to software development and provides an agile project delivery framework. The important aspect of DSDM is that the users are required to be involved actively, and the teams are given the power to make decisions. Frequent delivery of product becomes the active focus with DSDM. The techniques used in DSDM are
The DSDM project consists of 7 phases
This method is focused around "designing & building" features. Unlike other agile methods, FDD describes very specific and short phases of work that has to be accomplished separately per feature. It includes domain walkthrough, design inspection, promote to build, code inspection and design. FDD develops product keeping following things in the target
Lean software development method is based on the principle "Just in time production". It aims at increasing speed of software development and decreasing cost. Lean development can be summarized in seven steps.
Kanban originally emerged from Japanese word that means, a card containing all the information needed to be done on the product at each stage along its path to completion. This framework or method is quite adopted in software testing method especially in agile testing.
Scrum |
Kanban |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Metrics that can be collected for effective usage of Agile is:
Unlike the WaterFall method, Agile Testing can begin at the start of the project with continuous integration between development and testing. Agile Testing is not sequential (in the sense it's executed only after coding phase) but continuous.
An agile team works as a single team towards a common objective of achieving Quality. Agile Testing has shorter time frames called iterations (say from 1 to 4 weeks). This methodology is also called release, or delivery driven approach since it gives a better prediction on the workable products in short duration of time.
In this article, we will discuss
Unlike the waterfall model, in an agile model, a test plan is written and updated for every release. The agile test plan includes types of testing done in that iteration like test data requirements, infrastructure, test environments, and test results. Typical test plans in agile includes
Agile testing life cycle spans through four stages
(a) Iteration 0
During the first stage or iteration 0, you perform initial setup tasks. It includes identifying people for testing, installing testing tools, scheduling resources (usability testing lab), etc. The following steps are set to achieve in Iteration 0
a) Establishing a business case for the project
b) Establish the boundary conditions and the project scope
c) Outline the key requirements and use cases that will drive the design trade-offs
d) Outline one or more candidate architectures
e) Identifying the risk
f) Cost estimation and prepare a preliminary project
(b) Construction Iterations
The second phase of testing is Construction Iterations, the majority of the testing occurs during this phase. This phase is observed as a set of iterations to build an increment of the solution. In order to do that, within each iteration, the team implements a hybrid of practices from XP, Scrum, Agile modeling, and agile data and so on.
In construction iteration, the agile team follows the prioritized requirement practice: With each iteration, they take the most essential requirements remaining from the work item stack and implement them.
Construction iteration is classified into two, confirmatory testing and investigative testing. Confirmatory testing concentrates on verifying that the system fulfills the intent of the stakeholders as described to the team to date, and is performed by the team. While the investigative testing detects the problem that confirmatory team has skipped or ignored. In Investigative testing, tester determines the potential problems in the form of defect stories. Investigative testing deals with common issues like integration testing, load/stress testing, and security testing.
Again for, confirmatory testing there are two aspects developer testing and agile acceptance testing. Both of them are automated to enable continuous regression testing throughout the lifecycle. Confirmatory testing is the agile equivalent of testing to the specification.
Agile acceptance testing is a combination of traditional functional testing and traditional acceptance testing as the development team, and stakeholders are doing it together. While developer testing is a mix of traditional unit testing and traditional service integration testing. Developer testing verifies both the application code and the database schema.
(c) Release End Game Or Transition Phase
The goal of “Release, End Game” is to deploy your system successfully into production. The activities include in this phase are training of end users, support people and operational people. Also, it includes marketing of the product release, back-up & restoration, finalization of system and user documentation.
The final testing stage includes full system testing and acceptance testing. In accordance to finish your final testing stage without any obstacles, you should have to test the product more rigorously while it is in construction iterations. During the end game, testers will be working on its defect stories.
(d) Production
After the release stage, the product will move to the production stage.
The agile testing quadrants separate the whole process in four Quadrants and help to understand how agile testing is performed.
a) Agile Quadrant I – The internal code quality is the main focus in this quadrant, and it consists of test cases which are technology driven and are implemented to support the team, it includes
1. Unit Tests
2.Component Tests
b) Agile Quadrant II – It contains test cases that are business driven and are implemented to support the team. This Quadrant focuses on the requirements. The kind of test performed in this phase is
1. Testing of examples of possible scenarios and workflows
2. Testing of User experience such as prototypes
3. Pair testing
c) Agile Quadrant III – This quadrant provides feedback to quadrants one and two. The test cases can be used as the basis to perform automation testing. In this quadrant, many rounds of iteration reviews are carried out which builds confidence in the product. The kind of testing done in this quadrant is
1. Usability Testing
2. Exploratory Testing
3. Pair testing with customers
4. Collaborative testing
5. User acceptance testing
d) Agile Quadrant IV – This quadrant concentrates on the non-functional requirements such as performance, security, stability, etc. With the help of this quadrant, the application is made to deliver the non-functional qualities and expected value.
1. Non-functional tests such as stress and performance testing
2. Security testing with respect to authentication and hacking
3. Infrastructure testing
4. Data migration testing
5. Scalability testing
6. Load testing
a) Chances of error are more in agile, as documentation is given less priority, eventually puts more pressure on QA team
b) New features are introduced quickly, which reduces the available time for test teams to identify whether the latest features are according to the requirement and does it truly address the business suits
c) Testers are often required to play a semi-developer roled
) Test execution cycles are highly compressed
e) Very less time to prepare test plan
f) For regression testing, they will have minimal timing
g) Change in their role from being a gate-keeper of quality to being a partner in Quality
h) Requirement changes and updates are inherent in an agile method, becoming the biggest challenge for QA
Agile testing involves testing as early as possible in the software development lifecycle. It demands high customer involvement and testing code as soon as it becomes available. The code should be stable enough to take it to system testing. Extensive regression testing can be done to make sure that the bugs are fixed and tested. Mainly, Communication between the teams makes agile testing success!!!
Building complex software applications is a difficult task. Scrum methodology comes as a solution for executing such a complicated task. It helps the development team to focus on all aspects of the product like quality, performance, usability and so on.
In this tutorial, you will learn-
Following are Key Features of Scrum-
Scrum is based on the following 3 Pillars-
Let's look at the one by one
There are three chief roles in Scrum Testing – Product Owner, Scrum Master and The Development Team. Let's study them in detail
Product Owner |
Scrum Master |
The Team |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A scrum process includes
There is no active role of Tester in the Scrum Process. Usually, testing is carried out by a developer with Unit Test. While product owner is also frequently involved in the testing process during each sprint. Some Scrum projects do have dedicated test teams depending on the nature & complexity of the project.
The next question is, what tester do in a scrum? Following note will answer
Testers do following activities during the various stages of Scrum-
Sprint Planning
Sprint
Sprint Retrospective
Scrum Test metrics reporting provides transparency and visibility to stakeholders about the project. The metrics that are reported allow a team to analyze their progress and plan their future strategy to improve the product. There are two metrics that are frequently used to report.
Burn down chart: Each day, Scrum Master records the estimated remaining work for the sprint. This is nothing but the Burn Down Chart. It is updated daily.
A burndown chart gives a quick overview of the project progress, this chart contains information like the total amount of work in the project that must be completed, amount of work completed during each sprint and so on.
Velocity history graph: The velocity history graph predicts the velocity of the team reached in each sprint. It is a bar graph and represents how teams output has changed over time.
The additional metrics that may be useful are schedule burn, budget burn, theme percent complete, stories completed - stories remaining and so on.
In the last few years, ever since the agile methodology came on board with its founders shouting and willing to do away with the mundane and laborious realities of the traditional waterfall model, the impact of the same can be also felt when it comes to Automation Testing.
In the realm of the traditional process of software testing life cycle, Automation Testing is normally feasible when the application is stable, steady and the requirement is involving with a real considerable amount of timeand in most cases involving a set of very skillful automation expert resources as well as a considerable amount of set-up costs. The basic purpose of Automation Testing is to reduce costs over a long time and to ensure no new defects have been introduced as a result of existing test cases.
Automation testing by the very nature of the technology is not exploratory in nature since the main role of Automation Testing is saving time and reducing costs. Automation Testing is not meant to come up with new and innovative defects. Automation Testing aims at mostly confirmation of the already existing.
Now by its very definition agile methodology talks about doing away with laborious and tedious documentation so that new and innovative ideas could be implemented and people could interact freely with each other so that more of these innovative and explorative ideas could be implemented.
Thus we could see a contradiction between the basic fundamental philosophies of agile methodologies and Automation Testing.
So we need to consider certain fundamental points here when it comes to evaluating the use of agile methodologies with respect to the Automation Testing methods and techniques. Thus we need to consider some fundamental points like time taken for design and coding, validation of the designed scripts with the existing test data and the adoption of the same for testing (whether the tests are of functional or regression purposes) So the real fact of all these events is that in order to perform all these facts, we need to ensure that a considerable amount of time is required for these tasks and in an agile environment where an average sprint takes an average 1-2 weeks to complete and thus it is obviously too difficult to contemplate affording so much time for automating scripts in such a way.
Another significant factor remains here that the type of changes in requirements which come into picture when the agile methodology is at play. The agile methodology by its own very definition is a sort of technique which is very helpful for responding to quick customer induced change requirements and which thus lends itself well to frequent changes during the overall development of the application.
In contrast, automation testing is very useful when it comes to the more stable and less frequent types of requirements. Thus by definition automation testing does not lend itself well to various types of frequent changes in requirements which comes alongside the adoption of any agile methodologies.
The selection of relevant automation tool is also a potentially very important factor when it comes to the adoption of automation testing within the scope of an overall agile methodology. Licensed automation tools, for example, impose strict security access criterion to different types and levels of users when it comes accessing various important resources belonging to that particular testing automation framework.
In contrast agile methodology emphasizes upon mostly open collaboration and open-ended interaction between team members and thus restrictive policies which directly affects how the users would have a negative impact on the overall cohesion within the team and thus may be leading into results which are neither very helpful nor very conducive to the overall success of the project.
Therefore the primary importance of the process should be to ensure that in order to obtain the quality delivery of automation test scripts within a stipulated time as afforded by agile methodology; we need to choose our prospective test cases which would be automated in a more nuanced way such that these automated test scripts lend themselves well for future re-use as well as ensuring that they can be prepared within the proper duration of the allotted time (as required during the agile methodology process).
After consideration of all the above factors we thus can realize that even while adopting agile methodologies, we need to bring into picture the types of tests like for example regression tests (since even during agile testing there is a considerable amount of testing work which is required to put into the job of agile methodologies for ensuring better quality of the overall product)
Now let us look at the most basic situations whereby automation testing can be used and how we can adopt the same towards the realm of agile testing.
Scaled Agile Framework SAFe, is a freely available online knowledge base that allows you to apply lean-agile practices at the enterprise level. It provides a simple, lightweight experience for the software development team. The whole framework is divided into three segments Team, Program and Portfolio. We will see this in detail later on. SAFe allows team for,
SAFe was first developed in the field and was elaborated in Dean Leffingwell's books and blog. Version 1.0 is the first official release in 2011. The latest version is 4.6, was released in October 2018. It provides guidance to work at enterprise Portfolio, Value Stream, Program, and Team levels.
In this tutorial, you will learn-
It is simpler and lighter in weight, yet it expands to handle the needs of large value streams and complex system development. By implementing an Agile Framework, you will have following benefits,
The detailed framework diagram is available on the website. It shows all of the key roles, Activities, deliverables, and flows. It also serves as a navigational aid to the rest of the site.
The below image explains how agile process works. Epics are a large body of work, which is further broken down into a number of smaller stories or sub-epics. These sub-epics are allocated to the team as a story. Each team then work on these stories or software features accordingly.
Let's see how Scaled Agile framework is different from other agile practices,
Scaled Agile Framework(SAFe): It stands on the foundations of its
These basic principles and values for SAFe must be understood, exhibited and continued in order to get the desired results.
The SAFe agile is based on these four values.
Alignment:
Built-in Quality:
Transparency:
Program Execution:
The Lean-Agile Leaders are lifelong learners and teachers. It helps teams to build better systems through understanding and exhibiting the Lean-Agile SAFe Principles.
As an enabler for the teams, the ultimate responsibility is adoption, success and ongoing improvement of Lean-Agile developments. For the change and continuous improvement, leaders must be trained.
Leaders need to adopt a new style of leadership. One that truly empowers and engages individuals and teams to reach their highest potential.
Principles of these Lean-Agile Leaders
Lean-Agile mindset is represented in two things:
The SAFe House of Lean:
SAFe is derived from Lean manufacturing principles and practices. Based on these factors SAFe presents the "SAFe House of Lean". It is inspired by "house" of lean Toyota.
The Goal of lean is unbeatable: To deliver maximum customer value in the shortest lead time with the highest possible quality to customer
Below figure explains the Goal, Pillars, and Foundation of "SAFe House of Lean."
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That' why , while there is a value in the items on the right, we value the items on the left more.
Agile Manifesto
There are two different types of SAFe implementation:
Roles/Teams | Events | Artifacts | ||
* Agile Team | * Sprint Planning | * Team Backlog | ||
* Product Owner | * Backlog Grooming | * Non-Functional Requirements | ||
* Scrum Master | * Daily Stand-Up | * Team PI Objectives | ||
* Execution | * Iterations | |||
* Sprint Demo | * Stories(Working Software) | |||
* Sprint Retrospective | * Sprint Goals | |||
* IP Sprints | * Built-In Quality | |||
* Spikes | ||||
* Team Kanban |
Roles/Teams | Events | Artifacts | ||
* DevOps | * PI(Program Increment) Planning | * Vision | ||
* System Team | * System Demos | * Roadmap | ||
* Release Management | * Inspect and Adopt Workshop | * Metrics | ||
* Product Management | * Architectural Runway | * Milestones | ||
* UEX Architect | * Release Any Time | * Releases | ||
* Release Train Engineer(RTE) | * Agile Release Train | * Program Epics | ||
* System Architect/Engineer | * Release | * Program Kanban | ||
* Business Owners | * Program Backlog | |||
* Lean-Agile Leaders | * Non-Functional Requirements | |||
* Communities of Practice | * Weighted Shortest Job First (WSJF) | |||
* Shared Services | * Program PI Objectives | |||
* Customer | * Feature | |||
* Enabler | ||||
* Solution | ||||
* Value Stream Coordination |
Roles/Teams | Events | Artifacts | ||
* Enterprise Architect | * Strategic Investment Planning | * Strategic Themes | ||
* Program Portfolio Mgmt | * Kanban Portfolio(Epic) Planning | * Enterprise | ||
* Epic Owners | * Portfolio Backlog | |||
* Portfolio Kanban | ||||
* Non-Functional Requirements | ||||
* Epic and Enabler | ||||
* Value Stream | ||||
* Budgets(CapEx and OpEx) |
Roles/Teams | Events | Artifacts | ||
* DevOps | * Pre and Post PI(Program Increment) Planning | * Vision | ||
* System Team | * Solution Demos | * Roadmap | ||
* Release Management | * Inspect and Adopt Workshop | * Metrics | ||
* Solution Management | * Agile Release Train | * Milestones | ||
* UEX Architect | * Releases | |||
* Value Stream Engineer(RTE) | *Value Stream Epics | |||
* Solution Architect/Engineer | * Value Stream Kanban | |||
* Shared Services | * Value Stream Backlog | |||
* Customer | * Non-Functional Requirements | |||
* Supplier | * Weighted Shortest Job First (WSJF) | |||
* Value Stream PI Objectives | ||||
* Capability | ||||
* Enabler | ||||
* Solution Context | ||||
* Value Stream Coordination | ||||
* Economic Framework | ||||
* Solution Intent | ||||
* MBSE | ||||
* Set Based | ||||
* Agile Architecture |
Summary:
References:
The official and current websites for reference are:
http://www.scaledagileframework.com
This Article is contributed by Jyothi Rangaraj
Waterfall Model methodology which is also known as Liner Sequential Life Cycle Model. Waterfall Model followed in the sequential order, and so project development team only moves to next phase of development or testing if the previous step completed successfully.
Agile methodology is a practice that helps continuous iteration of development and testing in the software development process. In this model, development and testing activities are concurrent, unlike the Waterfall model. This process allows more communication between customers, developers, managers, and testers.
Agile | Waterfall |
It separates the project development lifecycle into sprints. | Software development process is divided into distinct phases. |
It follows an incremental approach | Waterfall methodology is a sequential design process. |
Agile methodology is known for its flexibility. | Waterfall is a structured software development methodology so most times it can be quite rigid. |
Agile can be considered as a collection of many different projects. | Software development will be completed as one single project. |
Agile is quite a flexible method which allows changes to be made in the project development requirements even if the initial planning has been completed. | There is no scope of changing the requirements once the project development starts. |
Agile methodology, follow an iterative development approach because of this planning, development, prototyping and other software development phases may appear more than once. | All the project development phases like designing, development, testing, etc. are completed once in the Waterfall model. |
Test plan is reviewed after each sprint | The test plan is rarely discussed during the test phase. |
Agile development is a process in which the requirements are expected to change and evolve. | The method is ideal for projects which have definite requirements and changes not at all expected. |
In Agile methodology, testing is performed concurrently with software development. | In this methodology, the "Testing" phase comes after the "Build" phase |
Agile introduces a product mindset where the software product satisfies needs of its end customers and changes itself as per the customer's demands. | This model shows a project mindset and places its focus completely on accomplishing the project. |
Agile methdology works exceptionally well with Time & Materials or non-fixed funding. It may increase stress in fixed-price scenarios. | Reduces risk in the firm fixed price contracts by getting risk agreement at the beginning of the process. |
Prefers small but dedicated teams with a high degree of coordination and synchronization. | Team coordination/synchronization is very limited. |
Products owner with team prepares requirements just about every day during a project. | Business analysis prepares requirements before the beginning of the project. |
Test team can take part in the requirements change without problems. | It is difficult for the test to initiate any change in requirements. |
Description of project details can be altered anytime during the SDLC process. | Detail description needs to implement waterfall software development approach. |
The Agile Team members are interchangeable, as a result, they work faster. There is also no need for project managers because the projects are managed by the entire team | In the waterfall method, the process is always straightforward so, project manager plays an essential role during every stage of SDLC. |
Conclusion:
Agile and Waterfall are very different software development methodologies and are good in their respective way.
However, there are certain major differences highlighted below -
Defect triage is a process where each bug is prioritized based on its severity, frequency, risk, etc. Triage term is used in the Software testing / QA to define the severity and priority of new defects.
In this tutorial, we will learn-
The goal of Bug Triage is to evaluate, prioritize and assign the resolution of defects. The team needs to validate severities of the defect, make changes as per need, finalize resolution of the defects, and assign resources. Mainly used in agile project management.
The frequency of Defect triage meeting is not fixed. It depends on project situation.
Here, are some important factors that decide the frequency of Defect Triage Meetings:
These Important factors are:
Usually, Defect Triage Meetings are held two or three times in a week.
Mandatory Participants
Below project members always take part in Defect Triage Meetings.
Optional Participants
At the end of every meeting, Defect Triage Metrics will be prepared and given to all the attendees. This report acts as the meeting minutes which will prove helpful for future meetings.
Agile methodology is a practice that helps continuous iteration of development and testing in the SDLC process. Agile breaks the product into smaller builds.
In this methodology, development and testing activities are concurrent, unlike other software development methodologies. It also encourages teamwork and face-to-face communication. Business, stakeholders, and developers and clients must work together to develop a product.
Scrum is an agile process that allows us to focus on delivering the business value in the shortest time. It rapidly and repeatedly inspects actual working software. It emphasizes accountability, teamwork, and iterative progress toward a well-defined goal.
The Scrum Framework usually deals with the fact that the requirements are likely to change or most of the time not known at the start of the project.
Agile | Scrum |
Agile is a development methodology based on iterative and incremental approach. | Scrum is one of the implementations of agile methodology. In which incremental builds are delivered to the customer in every two to three weeks' time. |
Agile software development has been widely seen as highly suited to environments which have small but expert project development team | Scrum is ideally used in the project where the requirement is rapidly changing. |
In the Agile process, the leadership plays a vital role. | Scrum fosters a self-organizing, cross-functional team. |
The biggest advantage of agile is its flexibility as it quickly reacts to changes. | Compared to Agile it is a more rigid method. So there is not much room for frequent changes. |
Agile involves collaborations and face-to-face interactions between the members of various cross-functional teams. | In Scrum, collaboration is achieved in daily stand up meeting with a fixed role assigned to scrum master, product owner, and team members. |
Agile can require lots of up-front development process and organizational change. | Not too many changes needed while implementing scrum process. |
The agile method needs frequent delivery to the end user for their feedback. | In the scrum, after each sprint, a build is delivered to the client for their feedback. |
In this method, each step of development like requirements, analysis, design, are continually monitored during the lifecycle. | A demonstration of the functionality is provided at the end of every sprint. So that regular feedback can be taken before next sprint. |
Project head takes cares of all the tasks in the agile method. | There is no team leader, so the entire team addresses the issues or problems. |
The Agile method encourages feedback during the process from the end user. In this way, the end product will be more useful. | Daily sprint meeting is conducted to review and feedback to decide future progress of the project. |
Deliver and update the software on a regular basis. | When the team is done with the current sprint activities, the next sprint can be planned. |
Design and execution should be kept simple. | Design and execution can be innovative and experimental. |
In the Agile method, the priority is always to satisfy the customer by providing continuous delivery of valuable software. | Empirical Process Control is a core philosophy of Scrum based process. |
Working software is the most elementary measure of progress. | Working software is not an elementary measure. |
It is best to have face-to-face communication, and techniques like these should be used to get as close to this goal as possible. | Scrum team focus to deliver maximum business value, from beginning early in the project and continuing throughout. |
Following are Agile principles: -Welcome changing requirements, even late in development. Agile processes allow change according to customer's competitive advantage. -Business people and developers will work dailythroughout the project. -Attention to technical excellence and right design enhances agility -Agile team, work on to become more effective, for that they adjust its behavior according to the project. |
Following are scrum principles: -Self-organization: This results in healthier shared ownership among the team members. It is also an innovative and creative environment which is conducive to growth. -Collaboration: Collaboration is another essential principle which focuses collaborative work. 1. awareness 2. articulation, and 3. appropriation. It also considers project management as a shared value-creation process with teams working together to offer the highest value. -Time-boxing: This principle defines how time is a limiting constraint in Scrum method. An important element of time-boxed elements are Daily Sprint planning and Review Meetings. -Iterative Development: This principle emphasizes how to manage changes better and build products which satisfy customer needs. It also defines the organization's responsibilities regarding iterative development. |
Scrum is agile development framework for managing product development. It is flexible and holistic product development approach. In this methodology development and QA teams work as one unit.
In this tutorial, we wil learn-
Scrum master is a person who helps other people to understand Scrum and serves the project team by removing obstacles. He also helps in simplifying project complexities.
The Scrum master also needs to make sure that development team works based on the core values of Scrum. He is often considered a coach for the team, helping the team do the best work they possibly can. Moreover, he ensures that the Scrum adoption is successful in the enterprise.
Scrum master acts as a heart of Scrum project. He needs to perform responsibilities like:
The Scrum master is not a project manager. Both roles are different in the agile process. He will not guide a team in every phase of the development. He is neither responsible for any technical decision nor for managing the business with clients. He will never lead the team or make decisions on behalf of the team.
The Scrum master is a very important person in the agile Scrum process. He should have multiple skills including technical, scrum process and soft skills.
Scrum master must know different techniques and practices to manage self-organizing teams. He should show honesty, integrity, trust, and respect for the team. He should have expertise in Agile, IT coaching, and presentation. Moreover, Scrum master should able to schedules meetings in such a way that it doesn't affect the regular work of the team members.
Following are important characteristics of Scrum master:
Servant-Leader: Servant leadership is a social leadership style. Scrum master act as a servant leader to attain project objectivies through service to others.
Morale booster: The Scrum master also acts as a Morale booster by encouraging the team to do their work more effectively.
Facilitator: Scrum master plays a role of facilitator as he helps the team to understand their common project-related objective. He also assists the team to achieve these objectives while remaining neutral.
Coach: Scrum masters coaches the team to become self-organized and also guides them on the path of continuous improvement.
Agent: Scrum master also plays a role of an agent which helps to make the necessary changes allowing a better implementation of Scrum.
Mentor: The Scrum Master should share his knowledge, experiences, and even his opinions just like a mentor.
Remover of obstacles: Scrum master should remove all the obstacles preventing the development team to work in the best conditions.
Manager of the framework: The Scrum Master is also responsible for the framework within which the team works.
Observer: He needs to constantly observe everything even the smallest activities of the team members.
Activity 1: Capacity and velocity planning using spreadsheet and Jira.
Activity 2: Determine implementable stories available with points remaining from the sprint review.
Activity 3: Review previous sprint velocity along with the team.
Activity 4: Estimating teams' capacity
Activity 5: Calculating number of points completed by team
Activity 6: The team member provides all known tasks and estimates task effort within an hour. Scrum Master should ensure task given to members are never above their capacity.
Activity 7: Scrum master also needs to ensure that the tasks in never more than 16 hours. If at all it is bigger then that he should tell the team to make it in the break them down.
The above is just a small sample of the many activities a Scrum Master is involved in.
First of all, management of large size self-organizing teams is not an easy task. It needs lots of willpower. Scrum master often needs to manage conflicts between team members and project manager.
He may head the entire Scrum management project still he remains without any power. Scrum master also needs to learn about motivation, communication, behavioral economics and a whole host of other social science which surely needs lots of time outside of his job.
In order, to become a professional Scrum Master, you need to clear Certified Scrum Master exam known as CSM. This certificate helps the candidate to understand Scrum values, practices, applications, and provides a level of knowledge and expertise.
Although there is no eligibility criteria set for CSM certification, it is always advisable that you should have some understanding of the Scrum principles and possess a working knowledge of the overall Scrum process.
Here, are some benefits of having CSM certificate
After completing training, Scrum certification candidate needs to-
Step 1) Person needs to complete online evaluation exam. This exam covers topics like Scrum technology, practices, and principles.
Step 2) After successful completion of the exam he/she will receive certified Scrum master certification from Scrum alliance.
Step 3) Person becomes an official member of Scrum Alliance and can work as professional Scrum master.
There are many opportunities for growth in career as a Scrum Master
It is the first rank that any person will get after the completion of the CSM certificate. He needs to work in this position at least one year to five-year duration. Here, he needs to perform all the assigned role of Scrum master.
From Scrum Mastet you progress to Sr. Scrum Master. To become Senior Scrum Master, one should gather advanced knowledge of Scrum best practices and how to implement them in teams.
From Senior Scrum Master you transition to Agile Coach. To become an Agile coach, you need 5years + knowledge as a Scrum Master and at least one year experience of mentoring and coaching.