Early and Frequent feedback in Agile – Importance and Benefits

Why is Early and Frequent feedback important in Agile Development?

Early and Frequent feedback is one of the key advantages of Agile Software Development methodologies.

As Agile projects have short iterations, the working code is delivered in each iteration and showcased to the customer. The showcase gives an opportunity to the customer to provide early and continuous feedback.

This overcomes the major problem with traditional development models, like Waterfall Development Methodology, in which the customer was able to see the working product only at the tail end of SDLC (Software Development LifeCycle)

At the last phases of the project in the Waterfall approach, it is too late to incorporate the issues from customer feedback.

By getting frequent customer feedback as the project progresses in each iteration, Agile teams can include most new changes into the product development process, i.e. in future iterations.

When the customer provides feedback early it becomes easy for the development team to focus on the highest business value items first. Highest business value items or items with the highest risk are delivered first in order to reduce risks in the project.

Early feedback also helps to manage work within a team effectively as there is transparency within the whole team. For example, what is the work allocated in sprint and whats the progress in each sprint?

Some of the benefits of early and frequent feedback are:

  • Early feedback avoids requirement gaps, which can sometimes become more clear once the working prototype of software is showcased to the customer.
  • Requirement gaps detected on later phases of SDLC in traditional development model like “Waterfall Model” are very expensive to fix, early feedback avoids this situation in Agile Development Methodology
  • After each iteration of Agile Development, the customer is shown the working software built incrementally in each iteration, which helps them to see if the product actually functions the way they want it to work
  • Continuous integration in Agile Development helps in identifying issues early and then resolving them
  • The agile development team works out the consistent velocity and delivers the product with consistent pace until the end of the project cycle
  • As the customer is involved in the whole development process, the Agile team can clarify the queries anytime in case of doubts

Whole-Team Approach in Agile Development Methodology

What is Whole-Team Approach?

Whole-Team Approach in Agile Development advocates involving the people with right skillset into Agile Development project to ensure the successful delivery.

The Agile team should include members from the customer and other business stakeholders to determine the features of the product.

The whole-team approach suggests that quality is the responsibility of the whole Agile project team including Developers, Testers, Business Analysts, Business stakeholders and other people involved in the project.

Co-location is also important for the whole-team approach as it promotes daily communication and collaboration among the team.

Daily standup meeting is conducted in the whole-team approach to check the work progress and resolve any blockers for any of the team members.

Small teams of 3 to 9 members should be formed in order to achieve maximum benefits of the whole-team approach and ensure successful project delivery.

For any feature discussions or elaborations, testers, developers and business representatives are involved which ensures everyone understands the feature correctly.

The concept of involving testers, developers and business analysts is known as three Amigos or power of three.

What are the benefits of Whole-Team Approach?

  • As co-location is highly recommended in the whole team approach, it enhances daily collaboration and communication within the whole Agile project team
  • Since the whole-team approach involves members with a different skill set, it is very helpful for team members to leverage that skill set for project delivery
  • Quality is not only testing teams responsibility, but whole team is also responsible for the quality of product delivered
  • Testers, developers, and business representatives work together in the whole development process to ensure the desired product quality is achieved
  • Testers work closely with developers to leverage coding skills in their Automation Testing and also extend testing knowledge to other team members
  • All members of the team are involved in any product future discussions, analysis or estimation, which ensures everyone in the team is on the same page

Agile Manifesto for Software Development – Four values of Agile Manifesto

Agile Manifesto History

Agile Manifesto came up when the group of individuals were brainstorming over shortcomings of traditional development models.

There had been some evolution of lightweight development methods since 1990s in oder to overcome the limitations of traditional development methodologies.

In year 2001, a group of 17 individuals met to discuss lightweight development methods in order to overcome the limitations and issues with traditional software development models

This group agreed on common set of principles and values which later became “Agile Manifesto” for Agile Software Development.

The Agile Manifesto contains following four statements of values:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

As per Agile Manifesto, the concepts to the right have value, however the concepts to the left have greater value.

Let us understand the Agile Manifesto concepts in detail.

Individuals and Interactions over processes and tools 

As per Agile Manifesto, it is argued that there are benefits of following the processes and tools, however, the core to any Agile Development is the team and communication within the team.

If there is heavy reliance on the processes and tools rather than the interaction and collaboartion within team members, it hampers the effectiveness and overall progress of project.

Agile Software Development teams can work more effectively through continuous collaboration rather than heavily relying on tools and processes to get the work done.

To summarise, Agile Development focuses more on following points:

  • Agile development is very people-centered.
  • People are the key to any development project as they build the software.
  • Contnuous communication and interaction within the team is key to get most value out of the whole team
  • More importance should be given to team collaboration
  • Least reliance on the process and tools makes the team more effective in getting blockers resolved and get things moving

Working Software over comprehensive documentation

From the end user or customers perspective, a working software is much more useful and valuable than excessive detailed documentation.

A working software gives a very good feel to the customer of how things will look like after being developed and it provides opportunity to customer to give early feedback to development team.

Some of the benefits and advantages of working software as compared to every detailed documentation are:

  • Working prototype is much easy to understand for customer and provide feedback.
  • As working software is available very early in development cycle, so it gives opportunity to customer to provide easy feedback.
  • Agile software development can confer notable time-to-market advantage, as working software, albeit with reduced functionality, is available much earlier in the development lifecycle.
  • Due to early software demonstration to customer, there is a huge scope to innovate and improve the solution if required, during the software development lifecycle with minimal cost impacts.

Customer collaboration over contract negotiation

Traditional development methodologies like Waterfall and V-Model didn’t gave flexibility for early customer feedback due to their sequential approach.

In traditional development methodologies the requirements were gathered first and then the contracts were formed based on those requirements.

Any changes required later were managed by change requests and negotiated over contracts again.

It is very difficult for customers to specify the requirements all at once before the development starts.

To overcome all the above challenges the Customer collaboration is more valuable than negotiating over contracts with customer.

  • Collaborating directly with customers during the whole development cycle helps to understand requirements correctly
  • Customers find it very difficult to specify all requirements at once
  • Frequent collaboration with customers is likely to bring more success to the project 

Responding to change over following a plan

Following a plan is important to any project, however, having flexibility in work practices in order to embrace change in projects is more important than strictly following the plan.

Change is unavoidable in software projects due to the environment in which business operates, legislation, technology changes and many other factors.

All these factors should be accommodated in the software development methodologies, so the team is ready to respond to changes if required. 

The advantages of fourth value of Agile manifesto is as follows:

  • Agile software development embraces changes throughout the development cycle due to early feedback and continuous customer collaboration
  • Agile development does follow plan, however it is flexible enough to accomodate changes if required
  • Due to continuous delivery in agile projects, the development team is able to respond to the changes quickly

Introduction to Agile Software Development – History and Agile Manifesto

What is Agile Software Development?

Agile Software Development is an approach to develop and deliver software products by following the set of methods and practices based on the values and 12 principles outlined in the Agile Manifesto.

In Agile software development the requirements and solutions unfold by the collaborative effort of whole team along with customer/end user.

The teams in Agile Development are self organising and cross functional, the team comprises of member with different functional expertise and working towards a common goal.

If you are a tester on an Agile project, you will work differently than the way you have been working in other traditional development methodologies.

In Agile project, you must understand the values and principles that underpin Agile projects.

As Agile advocates whole team approach, so testers are an integral part of whole team together with developers and business representatives.

The team members in an Agile project communicate with each other early and frequently. Early and frequent communication helps in identifying and removing defects early in the development lifecycle and improves product quality.

History of Agile Software Development

In 2001, a group of 17 individuals met to discuss lightweight development methods in order to overcome the limitations and issues with traditional software development models.

This group agreed on common set of principles and values which later became “Agile Manifesto” for Agile Software Development.

The Agile Manifesto contains four statements of values described below.

  • Individuals and interactions over processes and tools

    Agile advocates that competent individuals in the team and collaboration within that team is more important than processes and tools.

  • Working software over comprehensive documentation

    Good documentation is important in Agile development project however, working software is more important.

    Documentation produced in Agile project should be precise and concise, as the main purpose of Agile team is to create software.
  • Customer collaboration over contract negotiation

    Working closely with your customer is more important than negotiating all the requirements through contracts.

    Getting a clear picture of requirements is difficult until you collaborate with your customer frequently.

  • Responding to change over following a plan

    Following a plan is important but it should be flexible enough to accomodate the changes suggested by stakeholders if required.

As per Agile Manifesto the concepts on the left have more value as compared to concepts on the right.

ISTQB Agile Tester Certification – Introduction, Contents, Exam Structure

Why to do Agile Tester extension certification

ISQTB Agile Tester Certification is an extension of ISTQB Foundation Level Certification and in order to participate in ISTQB Agile Tester Certification you must have passed ISTQB Foundation Level Certification.

Agile testing is a relatively new approach to software testing that follows the principles of agile software development as outlined in the Agile Manifesto.

If you are working on an Agile project, you will work differently than the tester working on a traditional projects following Waterfall or V development lifecycle.

You must understand the values and principles that underpin Agile projects, and how testers are an integral part of a whole-team approach together with developers and business representatives.

Agile Tester Extension Course Contents

There are 3 sections in ISTQB Agile Tester Certification syllabus and the required skills for each section in order to pass the exam are listed in the image below.

  • Section 1 – Agile Software Development
  • Section 2 – Fundamental Agile Testing Principles, Practices and Process
  • Section 3 – Agile Testing Methods, Techniques and Tools

The picture below outlines the course contents for ISTQB Agile Tester Certification.

Pic Courtesy – www.istqb.org

Business Outcome of ISTQB Agile Tester Extension

The following section lists the Business Outcomes expected of a candidate who has achieved the Foundation Level Extension – Agile Tester certification.

An Agile Tester can…

  • Collaborate in a cross-functional Agile team being familiar with principles and basic practices of Agile software development.
  • Adapt existing testing experience and knowledge to Agile values and principles.
  • Support the Agile team in planning test-related activities.
  • Apply relevant methods and techniques for testing in an Agile project.
  • Assist the Agile team in test automation activities.
  • Assist business stakeholders in defining understandable and testable user stories, scenarios, requirements and acceptance criteria as appropriate.
  • Work and share information with other team members using effective communication styles and channels.

In general, a Certified Tester Foundation Level – Agile Tester is expected to have acquired the necessary skills to working effectively within an Agile team and environment.

Agile Tester Extension Learning Objectives

Certified agile testers should be able to demonstrate their skills in the following areas:

  • The Fundamentals of Agile Software Development
  • The different agile approaches
  • The Differences between Testing in Traditional and Agile Approaches
  • Testing in Agile Projects
  • Roles and skills of a tester in Agile Projects
  • Agile testing techniques and methods
  • Assess product quality risks within an Agile project
  • Estimate testing effort based on iteration content and quality risks
  • Tools in Agile Projects

Agile Tester Extension Exam Structure

  • Similar to ISTQB Foundation Certification exam, the Agile Tester Certification exam shall comprise 40 multiple-choice questions.
  • Each correct answer has a value of one point. The maximum possible score for each examination is 40 points.
  • The time allowed for each examination is exactly 60 minutes. If the candidate’s native language is not the examination language, the candidate is allowed an additional 25% time.

Same as ISTQB Certified Test Foundation level exam a score of at least 65% (26 points or more) is required to pass ISTQB Agile Tester Certification exam.

Pic Courtesy – www.istqb.org

Overall question breakdown by K-Level is as follows: 

Pic Courtesy – www.istqb.org

Check out detailed info about ISTQB Agile Tester Certification here.

Download Agile Tester Extension Material from ISTQB website

If you want to appear for exam, you need to check available exam dates from your country’s accredited testing board which conducts ISTQB exams in your country.

Visit ISTQB.org to get more details about syllabus, sample questions and in depth details about exam.