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

The 12 Agile Manifesto Principles – Agile Software Development Principles

12 Agile Manifesto Principles explained in detail 

There are 12 principles behind Agile Manifesto values, let us go through these 12 Agile Manifesto principles and understand them one by one in detail. 

It is important to understand these 12 principles of Agile Software Development.

If you are planning to do ISTQB Agile tester exam and move to an Agile tester role, then having a good understanding of 12 Agile Manifesto principles is very important.

Satisfy customer through early and continuous delivery of software.

Customer satisfaction is the key in Agile Software Development.

In order to satisfy customer it is very important to get early feedback by delivering a working software early in the development lifecyle.

The software is build incrementally and regular feedback is obtained by customers by doing a software demonstration (AKA, showcase) after end of each sprint (2-4 weeks time boxed development cycle)

Welcome changing requirements, even late in development.

As changes are inevitable in software development process, Agile software development welcomes requirement changes during development.

Due to delivery of working software within few weeks cycles and continuous customer collaboration, the changes if required are welcomed and implemented in the next release cycle.

Frequent delivery of software

Agile development methodology “Scrum” follows the 2-4 weeks development cycle and delivers a working code after these cycles.

Due to frequent delivery of software in Scrum, it becomes very easy for stakeholders to have a quick look at working software and provide feedback.

Agile development advocates frequent delivery of software which could be few weeks to few months, preferable weeks.

Daily collaboration among business people and development team

Agile development advocates daily interaction and collaboration within the whole team.

The development team should be having daily conversation with business stakeholders to get feedback and details around any unclear requirements.

Build project around motivated individuals, provide support and trust team

It is the team members of development teams who deliver the actual software for customer and end users.

Agile teams should be built with skilled and motivated team members.

Once the team is formed they should be given decision-making power in order to come up with the best possible solutions.

Motivated individuals take ownership, communicate regularly with other team members, and share ideas that deliver quality products.

Face to face conversation and collaboration

Colocation is another principle of Agile Manifesto, when teams are colocated, face to face communication becomes very easy.

Collaboration within each team member on a regular basis is easily possible only if all the members are colocated at one place.

Working software is the primary measure of progress.

Delivering the working software is the primary measure of progress in Agile software development.

In SCRUM, the showcase is done at the end of every sprint (time boxed 2-4 weeks development cycle) to demonstrate the working software.

Agile processes promote sustainable development and team should be able to maintain a constant pace

Agile development promotes the sustainable development pace and teams deliver working software with this pace in each iteration.

Attention to technical excellence and good design enhances agility

As the Agile development comprise of motivated individuals, they come up with best skills and right solutions which can accomodate any changes if required.

This ensures that team can maintain the pace and sustain changes if required.

Simplicity – the art of maximizing the amount 
of work not done–is essential

Agile processes also advocate simplicity to any delivery. Develop just enough to get the job done in a simple way.

Agile team should be focusing on essential things which create value to the customer and not on distractors like unnecessary lengthy documentation, processes etc.

Self-organizing teams produce great products

Agile software development teams should be built by hiring skilled and motivated team members.

These team members should have decision-making power, take ownership, communicate regularly with other team members of the team.

Self motivated individuals collaborate and share ideas with other team members which in turn deliver good designs and quality products.

Retrospectives conducted regularly to analyse how to become more effective

Agile teams gather at regular intervals to brainstorm about improvements required to enhance the future delivery and quality.

They discuss about what worked well in past and what didn’t worked very well. They the action items are addressed to improve future deliverables.

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.