Agile Testing Tutorial
Posted by Superadmin on May 01 2018 14:17:52

 

 

 

 

Agile Testing Tutorial

 

Training Summary


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.

What should I know?


Nothing! This is an absolute beginner’s guide to Agile and Scrum Testing.


Course Syllabus

 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 & Model: Guide for Software Development & Testing

 

What is Agile Methodology?

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


Agile Model & Methodology: Guide for Developers and Testers

The agile software development emphasizes on four core values.

  1. Individual and team interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

In this Software Engineering tutorial, you will learn

Agile Vs Waterfall Method

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

  • Agile method proposes incremental and iterative approach to software design
  • Development of the software flows sequentially from start point to end point.
  • The agile process is broken into individual models that designers work on
  • The design process is not broken into an individual models
  • The customer has early and frequent opportunities to look at the product and make decision and changes to the project
  • The customer can only see the product at the end of the project
  • Agile model is considered unstructured compared to the waterfall model
  • Waterfall model are more secure because they are so plan oriented
  • Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time.
  • All sorts of project can be estimated and completed.
  • Error can be fixed in the middle of the project.
  • Only at the end, the whole product is tested. If the requirement error is found or any changes have to be made, the project has to start from the beginning
  • Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is very less.
  • The development process is phased, and the phase is much bigger than iteration. Every phase ends with the detailed description of the next phase.
  • Documentation attends less priority than software development
  • Documentation is a top priority and can even use for training staff and upgrade the software with another team
  • Every iteration has its own testing phase. It allows implementing regression testing every time new functions or logic are released.
  • Only after the development phase, the testing phase is executed because separate parts are not fully functional.
  • In agile testing when an iteration end, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers.
  • All features developed are delivered at once after the long implementation phase.
  • Testers and developers work together
  • Testers work separately from developers
  • At the end of every sprint, user acceptance is performed
  • User acceptance is performed at the end of the project.
  • It requires close communication with developers and together analyze requirements and planning
  • Developer does not involve in requirement and planning process. Usually, time delays between tests and coding

Agile Methodology

There are various methods present in agile testing, and those are listed below:

Scrum

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:

Product Backlog

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

Scrum Practices

Practices are described in detailed:

Process flow of Scrum Methodologies:

Process flow of scrum testing is as follows:

eXtreme Programming (XP)

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.

Phases of eXtreme programming:

There are 6 phases available in Agile XP method, and those are explained as follows:

Planning

Analysis

Design

Execution

Wrapping

Closure

There are two storyboards available to track the work on a daily basis, and those are listed below for reference.

Crystal Methodologies

Crystal Methodology is based on three concepts

  1. Chartering: Various activities involved in this phase are creating a development team, performing a preliminary feasibility analysis, developing an initial plan and fine-tuning the development methodology
  2. Cyclic delivery: The main development phase consists of two or more delivery cycles, during which the
    1. Team updates and refines the release plan
    2. Implements a subset of the requirements through one or more program test integrate iterations
    3. Integrated product is delivered to real users
    4. Review of the project plan and adopted development methodology
  3. Wrap Up: The activities performed in this phase are deployment into the user environment, post- deployment reviews and reflections are performed.

Dynamic Software Development Method (DSDM)

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

  1. Time Boxing
  2. MoSCoW Rules
  3. Prototyping

The DSDM project consists of 7 phases

  1. Pre-project
  2. Feasibility Study
  3. Business Study
  4. Functional Model Iteration
  5. Design and build Iteration
  6. Implementation
  7. Post-project

Feature Driven Development (FDD)

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

  1. Domain object Modeling
  2. Development by feature
  3. Component/ Class Ownership
  4. Feature Teams
  5. Inspections
  6. Configuration Management
  7. Regular Builds
  8. Visibility of progress and results

Lean Software Development

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.

  1. Eliminating Waste
  2. Amplifying learning
  3. Defer commitment (deciding as late as possible)
  4. Early delivery
  5. Empowering the team
  6. Building Integrity
  7. Optimize the whole

Kanban

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 Vs Kanban

Scrum

Kanban

  • In scrum technique, test must be broken down so that they can be completed within one sprint
  • No particular item size is prescribed
  • Prescribes a prioritized product backlog
  • Prioritization is optional
  • Scrum team commits to a particular amount of work for the iteration
  • Commitment is optional
  • Burndown chart is prescribed
  • No particular item size is prescribed
  • Between each sprint, a scrum board is reset
  • A Kanban board is persistent. It limits the number of items in workflow state
  • It cannot add items to ongoing iteration
  • It can add items whenever capacity is available
  • WIP limited indirectly
  • WIP limited directly
  • Timeboxed iterations prescribed
  • Timeboxed iterations optional

Agile metrics:

Metrics that can be collected for effective usage of Agile is:

 

What is Agile Testing? Process, Strategy, Test Plan, Life Cycle Example

 

 

What is Agile Testing?

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

Test Plan for Agile

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

  1. Testing Scope
  2. New functionalities which are being tested
  3. Level or Types of testing based on the features complexity
  4. Load and Performance Testing
  5. Infrastructure Consideration
  6. Mitigation or Risks Plan
  7. Resourcing
  8. Deliverables and Milestones

Agile Testing Strategies

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

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

QA challenges with agile software development

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

Risk of Automation in Agile Process

Conclusion

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!!!

 

Scrum Testing Methodology Tutorial: What is, Process, Artifacts, Sprint

 

 

What is Scrum?

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-

Key Features of Scrum Methodology

Following are Key Features of Scrum-

Scrum is based on the following 3 Pillars-

Let's look at the one by one

1. Roles in Scrum

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

  • He/She defines features of the product.
  • He/She manages the team and look after the team's productivity
  • The team is usually about 5-9 members
  • Product Owner decides the release date and corresponding features
  • He/She maintains the block list and removes barriers in the development
  • It includes developers, designer and sometimes testers, etc.
  • They prioritize the features according to the market value and profitability of the product
  • He/She coordinates with all roles and functions
  • The team organizes and schedule their work on their own
  • He/She is responsible for the profitability of the product
  • He/She shields team from external interferences
  • Has right to do everything within the boundaries of the project to meet the sprint goal
  • He/She can accept or reject work item result
  • Invites to the daily scrum, sprint review and planning meetings
  • Actively participate in daily ceremonies

2. Scrum Artifacts

A scrum process includes

3. Ceremonies (Processes) in Scrum

Role of Tester in Scrum

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

Testing Activities in Scrum

Testers do following activities during the various stages of Scrum-

Sprint Planning

Sprint

Sprint Retrospective

Test Reporting

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.

 

 

Automation Testing Framework for Agile/Scrum Methodology

 

 

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.

Automation Testing for Agile Methodology.

Automation in Waterfall Vs Automation in Agile

 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.

How to automate in Agile Methodology

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.

Automation Testing for Agile Methodology.

 

Thus we could see a contradiction between the basic fundamental philosophies of agile methodologies and Automation Testing.

Fundamental Points for Agile Test Automation

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.

Agile Automation Tools

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.

Automation Testing for Agile Methodology.

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.

Automation Testing Concepts when Applied to Agile

Automation Testing for Agile Methodology.

 

 

SAFe Methodology Tutorial: What is Scaled Agile Framework

 

 

What is a Scaled Agile Framework (SAFe)?

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-

Why to use Agile Framework

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,

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

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.

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

When to Use Scaled Agile Framework

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

How different than other Agile practices

Let's see how Scaled Agile framework is different from other agile practices,

Foundations of Scaled Agile Framework

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

Scaled Agile Framework(SAFe): It stands on the foundations of its

  1. Lean-Agile Principles
  2. Core Values,
  3. Lean-Agile Leadership
  4. Lean-Agile Mind-set,
  5. Communities of Practice(Group of people who are constantly working on SAFe practices)
  6. Implementing 1-2-3
  1. SAFe Lean-Agile Principles

These basic principles and values for SAFe must be understood, exhibited and continued in order to get the desired results.

  1. SAFe Agile Core Values

The SAFe agile is based on these four values.

Alignment:

Built-in Quality:

Transparency:

Program Execution:

  1. Lean Agile Leaders:

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

  1. Lean Agile Mind-Set:

Lean-Agile mindset is represented in two things:

  1. The SAFe House of Lean
  2. Agile Manifesto

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."

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

That' why , while there is a value in the items on the right, we value the items on the left more.

Agile Manifesto

  1. The highest priority is to satisfy the customer through continuous and early delivery of valuable software.
  2. Embrace the changing requirements, even late in development. Agile processes harness change for the customer's benefit.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Developers and business people must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them support and the environment they need, and trust them to get the job done.
  6. The most efficient method for communication with a development team is a face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity--the art of maximizing the amount of work not done--is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Different Levels in SAFE

There are two different types of SAFe implementation:

  1. SAFe 4.0 implementation
  2. SAFe 3.0 implementation

What is Scaled Agile Framework(SAFe)?  Learn in 5 Minutes

Team Level

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

Program Level

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

Portfolio Level

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)

 

 

 

 

 

 

Value Stream Level

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
  1. Large in size
  2. Independent
  3. Have complex solutions
  4. Their solutions typically require multiple ARTs
  5. They have Suppliers contribution.
  6. They face the largest systems challenges
  7. For cyber-physical systems
  8. For software, hardware, electrical and electronics, optics, mechanics, fluidics and more.

Summary:

References:

The official and current websites for reference are:

http://www.scaledagileframework.com

This Article is contributed by Jyothi Rangaraj

Waterfall Vs. Agile: Must Know Differences

 

 

What is Waterfall methodology?

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.

What is the Agile methodology?

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.

Advantages of Waterfall Model:

Advantages of the Agile Model:

Limitations of Waterfall Model:

Limitations of Agile Model

Difference between Agile and Waterfall Model:

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 -

 

Why Bug/Defect Triage is Important in Software Testing

 

What is 'Defect Triage'?

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-

Why do we need to have 'Defect Triage'?

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.

How often 'Defect Triage' needs to be conducted in a release?

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.

Who are the mandatory and other participants of 'Defect Triage'?

Mandatory Participants

Below project members always take part in Defect Triage Meetings.

Optional Participants

Roles and Responsibilities of participants during 'Defect Triage.'

Test Team Leader

Development Lead

Project Manager

What happens during 'Defect Triage' Meeting?

What is the outcome of the 'Defect Triage'?

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.

Conclusion:

 

Agile Vs Scrum: Know the Difference

 

 

 

What Is Agile Methodology?

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.

What Is Scrum?

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 Vs. Scrum

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Conclusion:

 

Scrum Master Training: Complete Tutorial

 

 

What is Scrum?

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-

What is Scrum Master?

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:

What is Scrum master is not?

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.

Scrum Master Skills

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.

Characteristic of the Good Scrum master

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.

Daily Activities of Scrum master:

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.

Best practices for Scrum master

Why is Scrum master's role is difficult?

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.

Certified Scrum Master

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.

Prerequisite for CSM Training

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.

What are the benefits of a Scrum Master certification?

Here, are some benefits of having CSM certificate

CSM Course objectives

Steps to clear CSM certification

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.

Scrum Master Career Progression

There are many opportunities for growth in career as a Scrum Master

1. 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.

2. Senior 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.

3. Agile coach

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.

Summary: