You are on page 1of 83

A.K.T.

U
course--B.Tech
Branch-Computer Science
& Engineering
4 Year --- 7 Semester
TH th

SUBJECT---
AGILE SOFTWARE DEVELOPMENT
Subject Code-
RCS-077/RCS-E43
Prepared by Expert team
Based on AKTU Syllabus

DETAILED SYLLABUS

UNIT I:- AGILE METHODOLOGY Theories for Agile Management – Agile Software Development
– Traditional Model vs. Agile Model – Classification of Agile Methods – Agile Manifesto and
Principles – Agile Project Management – Agile Team Interactions – Ethics in Agile Teams – Agility
in Design, Testing – Agile Documentations – Agile Drivers, Capabilities and Values

UNIT II:- AGILE PROCESSES Lean Production – SCRUM, Crystal, Feature Driven Development-
Adaptive Software Development – Extreme Programming: Method Overview – Lifecycle – Work
Products, Roles and Practices.

UNIT III:- AGILITY AND KNOWLEDGE MANAGEMENT Agile Information Systems – Agile
Decision Making – Earl‗S Schools of KM – Institutional Knowledge Evolution Cycle –
Development, Acquisition, Refinement, Distribution, Deployment , Leveraging – KM in Software
Engineering – Managing Software Knowledge – Challenges of Migrating to Agile Methodologies –
Agile Knowledge Sharing – Role of Story-Cards – Story-Card Maturity Model (SMM).

UNIT IV:- AGILITY AND REQUIREMENTS ENGINEERING Impact of Agile Processes in RE–
Current Agile Practices – Variance – Overview of RE Using Agile – Managing Unstable
Requirements – Requirements Elicitation – Agile Requirements Abstraction Model – Requirements
Management in Agile Environment, Agile Requirements Prioritization – Agile Requirements
Modeling and Generation – Concurrency in Agile Requirements Generation.

UNIT V:- AGILITY AND QUALITY ASSURANCE Agile Product Development – Agile Metrics –
Feature Driven Development (FDD) – Financial and Production Metrics in FDD – Agile Approach
to Quality Assurance – Test Driven Development – Agile Approach in Global Software
Development.
UNIT – 1

Question :- Explain the Agile Software Development Life Cycle (SDLC)?


Answer----> Software development life cycle (SDLC) is a phenomenon
to design, develop and, test high-quality software. The primary aim of SDLC is to produce high-
quality software that fulfills the customer requirement within times and cost estimates.

Agile Software Development Life Cycle (SDLC) is the combination of both iterative and
incremental process models. It focuses on process adaptability and customer satisfaction by rapid
delivery of working software product. Agile SDLC breaks down the product into small incremental
builds. These builds are provided into iterations.

In the agile SDLC development process, the customer is able to see the result and understand
whether he/she is satisfied with it or not. This is one of the advantages of the agile SDLC model.
One of its disadvantages is the absence of defined requirements so, it is difficult to estimate the
resources and development cost.

Each iteration of agile SDLC consists of cross-functional teams working on various


phases:
1. Requirement gathering and analysis
2. Design the requirements
3. Construction/ iteration
4. Deployment
5. Testing
6. Feedback

Requirements gathering and analysis


In this phase, you must define the requirements. You should explain business opportunities and
plan the time and effort needed to build the project. Based on this information, you can evaluate
technical and economic feasibility.

Design the requirements


When you have identified the project, work with stakeholders to define requirements. You can use
the user flow diagram or the high-level UML diagram to show the work of new features and show
how it will apply to your existing system.

Construction/ Iteration
When the team defines the requirements, the work begins. The designers and developers start
working on their project. The aims of designers and developers deploy the working product within
the estimated time. The product will go into various stages of improvement, so it includes simple,
minimal functionality.

Deployment
In this phase, the team issues a product for the user's work environment.

Testing
In this phase, the Quality Assurance team examine the product's performance and look for the
bug.

Feedback
After releasing of the product, the last step is to feedback it. In this step, the team receives
feedback about the product and works through the feedback.
Question :- Discuss the Agile SDLC Process Flow?
Answer---->
1. Concept: Project are imagined and prioritized.
2. Inception: Team members are created, funding is put in place, and basic environments
and requirements are discussed.
3. Iteration/Constriction: The software development team works to deliver working software.
It is based on requirement and feedback.
4. Release: Perform quality assurance (QA) testing, provides internal and external training,
documentation development, and final version of iteration into the product.
5. Production: It is ongoing support of the software.

Question :- What are the Advantages of Agile SDLC?


Answer----->
1. Project is divided into short and transparent iterations.
2. It has a flexible change process.
3. It minimizes the risk of software development.
4. Quick release of the first product version.
5. The correctness of functional requirement is implemented into the development process.
6. Customer can see the result and understand whether he/she is satisfied with it or not.

Question :- What are the Disadvantages of Agile SDLC?


Answer----->
1. The development team should be highly professional and client-oriented.
2. New requirement may be a conflict with the existing architecture.
3. With further correction and change, there may be chances that the project will cross the
expected time.
4. There may be difficult to estimate the final coast of the project due to constant iteration.
5. A defined requirement is absent.

Question :- Discuss the Agile Project Management?

Answer-----> Agile project management is an interactive approach to manage software


development. The agile project management focuses on continuous releases and covers
customer feedback with every iteration.
Traditionally the agile project management is classified into two frameworks: scrum and kanban.
The scrum framework focused fixed-length project iterations, whereas kanban framework focused
on continuous releases. After competition of project first iteration (or steps) project management
activity immediately moves on to the next.

Question :- What is the History of Agile Project Management?

Answer-----> Agile project management is rapidly rising in the 21st century. It is used for software
development projects and other IT initiatives.
However, from the mid-20th century, the concept of continuous development has taken various
forms. For example, there was James Martin's Rapid Iterative Production Prototyping (RIPP),
an approach that served as the premise for the 1991 book Rapid Application Development
(RAD).
The agile project management framework which has emerged in most recent years is known as
Scrum. This methodology features works on the development team to create a product backlog. It
also creates a prioritized list of the features, functionalities, and fixes required to deliver a
successful software system. The scrum team offers the pieces of a task in rapid increments.

Question :- How Agile Project Management works?

Answer-----> The agile project management calls for teams to regularly evaluate cost and time as
they move through their work. They use velocity, burnup and burndown charts to measure their
work, rather than Gantt charts and project milestones to track progress.
The agile team practices to continuous development and continuous integration using technology
that automates steps to speed up the release and use of products.
The presence and participation of the project manager are not required in agile project
management. Although the presence of the project manager is essential for success under the
traditional (waterfall model) project delivery. The role of the project manager is to distribute task
among team members. However, the project manager is not obsolete in agile project
management, and many organizations use them in a large, more complex project. The
organization mostly places them in the project coordinator role.
Agile Project Management demands that team members know how to work in this new agile
methodology. The team member must be able to coordinate with each other, as well as with users.

Question :- Discuss Traditional vs. Agile Software Development Methodologies?

Answer-----> Most companies today focus on delivering quality and gaining customer satisfaction
and in order to accomplish this, the challenge lies in choosing between traditional development
methodologies and agile development methodologies.
Though both these approaches have positives and negatives, making the right choice plays a
crucial role while starting a new project. The main points to consider while choosing your
development methodology are as follows:
• Business Need – Impact of implementing specified requirements, on customers’ business
• Customer Perception – Customer perspective of business impact
• Project Timeframe – Defined timeframe for the real-time implementation of the project

Question :- What are the Traditional Software Development Methodology?

Answer----> Traditional software development methodologies are based on pre-organized


phases/stages of the software development lifecycle. Here the flow of development is
unidirectional, from requirements to design and then to development, then to testing and
maintenance. In classical approaches like the Waterfall model, each phase has specific
deliverables and detailed documentation that have undergone a thorough review process.
Traditional approaches are suited when requirements are well understood – for example, in
industries like construction, where everyone clearly understands the final product. On the other
hand, in rapidly changing industries like IT, traditional development procedures might fail to
achieve project goals. Below are the major disadvantages of traditional SDLC methods.
• Problem statement / business need has to be defined well in advance. The solution also
needs to be determined in advance and cannot be changed or modified.
• The entire set of requirements have to be given in the initial phase without any chance of
changing or modifying them after the project development has started.
For example:- the user might have given initial requirements to analyze their products in terms of
sales. After the project has begun, if the user wants to change the requirement and analyze the
data on the region-wise movement of products, the user can either wait till the completion of initial
requirements or start another project.
• The user cannot conduct intermediate evaluations to make sure whether the product
development is aligned so that the end product meets the business requirement.
• The user gets a system based on the developer’s understanding and this might not always
meet the customer’s needs.
• Documentation assumes high priority and becomes expensive and time consuming to
create.
• There are less chances to create/implement re-usable components.

These disadvantages hinder project delivery in terms of cost, effort, time and end up having a
major impact on customer relationships.
• Testing can begin only after the development process is finished. Once the application is in
the testing stage, it is not possible to go back and edit anything which could have an
adverse impact on delivery dates and project costs.
• Occasionally, projects get scrapped which leads to the impression of inefficiency and
results in wasted effort and expenditure.
Traditional development methodologies are suitable only when the requirements are precise i.e.,
when the customer knows exactly what they want and can confidently say that there won’t be any
major changes in scope throughout the project development. It is not suitable for large projects
such as maintenance projects where requirements are moderate and there is a great scope for
continuous modification.

Question :- What are the Agile Software Development Methodology?

Answer-----> Unlike the traditional approaches of SDLC, Agile approaches are precise and
customer friendly. Users/Customers have the opportunity to make modifications throughout project
development phases. The advantages of Agile over traditional development methodologies
include:
• Though the problem statement/business need and solution are defined in advance, they
can be modified at any time.
• Requirements/User Stories can be provided periodically implying better chances for mutual
understanding among developer and user.
• The solution can be determined by segregating the project into different modules and can
be delivered periodically.
• The user gets an opportunity to evaluate solution modules to determine whether the
business need is being met thus ensuring quality outcomes.
• It is possible to create re-usable components.
• There is less priority on documentation which results in less time consumption and
expenditure.
Agile proposes an incremental and iterative approach to development. Consider Agile Scrum
Methodology to get good understanding of how Agile processes work. Scrum Master plays an
important role in Agile Scrum Methodology.
A Scrum Master interacts daily with the development team as well as the product owner to make
sure that the product development is in sync with the customer’s expectations. The following
diagram illustrates the lifecycle process in Agile methodologies.

During project inception, the customer splits the initial set of requirements into User Stories. The
Scrum Master or Product owner organizes these User Stories and segregates them into different
Sprints. In general, Sprint contains 3-4 User Stories to be delivered in 4 to 5 weeks, these are
approximate figures and they will be decided based the complexity of user stories.
Once the Sprint planning is done, the selected User Stories are once again split into Tasks so that
the developer can have a clear roadmap to deliver quality output. At the end of each Sprint, the
customer gets a chance to review and predict the final outcome and can propose changes if any.
The main difference between traditional and agile approaches is the sequence of project phases –
requirements gathering, planning, design, development, testing and UAT. In traditional
development methodologies, the sequence of the phases in which the project is developed is
linear where as in Agile, it is iterative. Below picture illustrate this difference.
The main project variables like cost, time, quality etc., can be compared as shown in the
following picture.

Things like project scope and requirements change during the project which make IT projects
different from construction or engineering projects. Agile methodology like Scrum is preferable in
projects involving large teams where we can expect frequent changes in requirements. As
development phases like requirement gathering, design, development and testing can start in
parallel, the entire team can be engaged in respective areas which increases productivity and
speeds up the development process.

Question :- What are the Key points while making the transition from Traditional to Agile
methodologies?
Answer---->
• Identify the factors which made the transition necessary
• Everyone, including the user, should be clear about the reasons which lead to the transition
• Identify whether it is a small project or big project
• Note the current stage of the project to be transitioned, whether development has started or
is yet to start
• Make sure the team has a good understanding of the new approach and have adapted to
their respective roles as per the new approach
• Arrange necessary training for the team

Question :- What are the agile Team Role Interactions?

Answer----> Here are the three common roles found on an agile team:
1. Cross-functional team member–in keeping with the non-hierarchical structure of the agile
team, the cross-functional team member is mentioned first, and NOT the product owner or
team facilitator. They are professionals who deliver potentially releasable product on a
regular basis. They need to deliver work in the shortest possible time, with higher quality,
without external dependencies.
2. The product owner interacts with the customer and stakeholders as well as the team, and
they pay attention to the highest value for the customer. They typically have a business
background and have deep subject matter expertise. They create the backlog for and with
the team, in a way that delivers the highest value without creating waste.
3. This role can be called various names, such as a project manager, scrum master, as well
as a team lead, couch, or facilitator. The servant leader, no matter what he or she is called,
needs to focus on facilitation of the work done by the team, impediment removal, and
coaching. If the servant leader feels their internal coaching capability is not yet fully
developed, then they may invite external agile coaches.

Question:-How do they interact with each other, with the customers for whom the project is
being done, and the organization which is doing the project?

Answer---> Well, bear with me on this, but an analogy came to me yesterday while I was taking a
shower–it’s like how soap works to get things clean. A soap molecule must combine water and
the substance that is being cleaned, including if it is covered in something oily like grease, and
essentially have the water molecules carry away the dirt off the surface being cleaned.
One problem with this is that water and oil do not normally mix. The soap molecule has a special
structure which is that at one end, it attracts water (it is hydrophilic to use the technical term).
The other end repels water but is compatible with oil because it is itself composed of fatty
acids. The soap molecule, by combining these two properties in the same molecule, can
therefore make water and oil mix, causing the oily dirt to be carried away when the water is
washed away.
The product owner faces the customers and communicates their requirements to the cross-
functional team members. The cross-functional team members are the ones who are trying to
create a solution, so they are, like water molecules, trying to break apart the problems being
handed to them by the product owner, who gets them from the customers. The customers and the
cross-functional team members are like the “oil” and “water” that have to work together to get the
solution done.
And what causes them to be able to work together, when their roles are so different? That is the
team facilitator (who may also be called a project manager, scrum master, or other designation)–
he or she holds the team together by facilitating, coaching if necessary, and removing
impediments that would prevent them from working cohesively.
So the team facilitator has to face both the team AND the product owner in order to make sure that
the solutions that the team come up with are communicated to the customer so that the customer
is pleased with the product.

Question :- Explain the Ethics in Agile Teams ?

Answer----> You should consider adopting agile because it is the ethical option. This is not to say
that non-agile methods are unethical, nor is it to say that all agile teams are working ethically.
Instead this ethical choice is about embracing a method that is value-driven—both in the promise
of providing value to the customers and in the promise of the ways we choose to work together to
provide that value.

The Merriam-Webster definition of ethics is "the discipline dealing with what is good and bad, and
with moral duty and obligation." If we examine our moral obligation as software developers, our
first task is to provide value to our customers. That is why we were hired, and that is what the
customers are paying for. We have a responsibility to deliver. Agile approaches provide a
framework that enables frequent delivery of precisely what the customer needs with as little waste
as possible.

While we are obligated as professionals to provide a valued product to our customers, it should
not be at the expense of those doing the work (or those supporting the people doing the work).
Our second obligation is to treat the team humanely. If we do not create and maintain an
environment that allows the team to do challenging and fulfilling work at a sustainable pace, then
we are failing to treat these knowledge workers with respect. This also affects our first duty in that
an overworked, demoralized team may not be able to give its best effort at creating a valued and
quality product. Review the Agile Manifesto and its twelve principles to see the set of values that
drive behavior in a positive and sustainable fashion.
In addition to the Agile Manifesto, two of the most popular agile approaches, Extreme
Programming (XP) and Scrum, advocate specific values. (Again, this is not to say that other
software development approaches do not have values—just that XP and Scrum explicitly spell
them out.)
Ken Schwaber identified the following five Scrum values in his book Agile Software Development
with Scrum: commitment, focus, openness, respect, and courage. Kent Beck identified these five
XP values in his book Extreme Programming Explained: communication, simplicity, feedback,
courage, and respect. While many trainers focus on the practices to get new agile teams up and
running, it is the values that will keep the team truly agile long after the trainers and coaches
leave.

Commitment: It's not enough to be assigned to a team and agree to try this new agile thing, and
it's not enough simply to be dedicated. One must also be committed to doing whatever is
necessary to meet the goals outlined and to take the authority to do so to heart. It means "to carry
into action deliberately" (Merriam-Webster) or, as Yoda says, "Do, or do not. There is no try."

Focus: Don't get sidetracked. Remember what you committed to do, and focus your energies on
fulfilling that promise. Distractions are not limited to the obvious things like email and unrelated
meetings. They may also be things like creating documentation because "we've always done it
that way" instead of creating documentation because it truly provides the customer with something
of value.

Openness: Openness is about keeping the project status highly visible to everyone all the time.
Anyone who is interested should be able to look at a wall, a wiki page, or a dashboard in an agile
project management tool and see how many features have been completed, what's currently being
worked on, and the goals of the iteration and release.
Communication: People on the team must talk to each other. This gets harder to do the more
geographically separated the team is, but with tools like Skype, teams can talk to one another
easily and cheaply. The point is that team members must not rely on email and documentation
alone. Verbal communication is required to clarify ideas, solve complex problems, answer
questions quickly, and help team members coordinate work efforts.

Simplicity: Beck says the XP coach should ask the team, "What is the simplest thing that could
possibly work?" Then they should do that thing. Because agile approaches develop code in
increments each iteration, the thought is that it is better to develop something simple that may
have to be expanded later if needed, rather than spend a large amount of time now developing a
solution that's more complicated and may, in fact, not be necessary.

Feedback: As stated earlier, our number one obligation is to provide value to the customer. In
order to do that, we must obtain frequent feedback from the customer or customer representative
in order to make sure that the product we are building is meeting their expectations. And if it is not,
we have the information we need now in order to make corrections. Beck extends this meaning of
feedback to include feedback from the system itself in the form of unit, functional, and
performance tests run frequently in each iteration.
Courage: In order to accept the authority and accountability for the delivery of the product, the
team members all need courage. From the courage to make decisions to the courage to say no,
this is a foundational value that gives rise to all the others.

Respect: Each team member must begin by agreeing that everyone deserves to be treated with
respect. Many teams clarify this with working agreements that outline ways in which they choose
to work together. And, as a result of working together to adhere to all the other values outlined
here, team members grow to respect one another beyond their shared humanity to the ways each
valued colleague contributes to the whole.

Adhering to a set of values that drive positive, collaborative behaviours and result in frequent
software delivery helps us to work in an ethical manner.
This is what agile is all about! Yes, agile also allows companies to decrease their time to market,
increase quality, and eliminate waste in the process to provide a greater ROI to the organization.
And you'll find plenty of articles about these benefits as well. But the realization of these benefits is
not based just on the adoption of a set of practices; the value system must also be adopted if the
approach is to work properly. So, as you consider adopting agile, also think about whether or not
your organization's values match those of agile—and what you may want to do if they don't.

Question :- Discuss the complete Agile Design?

Answer----> Design plays a vital role in any software development process. The agile team also
focuses on "what to do about design"because of the following four factors:

o Many crucial factors focus on loyal designs during the planning process. Design forces
towards waterfall culture throughout product implementation.
o Designers also interact with a cross team for a limited time.
o Designers don't always have an easy way to report feedback to the engineering team.
o The presentation and logic layers are not still transparent. They are not separated clearly in
the code base, making style changes difficult.

The product design process and customer interview


The agile is divided into several methodologies and processes. These methodologies and
processes keep the iterative and free-flowing nature of the technique at their core.
The agile design and development methodology used especially in engineering development, and
this process called Scrum.
Customer interviews can be an informative part of the project design phase. We will have several
of those "light bulb" movements during interviews. It encourages the people who are interviewing
with other members of the team (engineering, marketing, design, etc.)
There are several resources that are available on which we conduct an interview- the logistics,
methods, and techniques.

The customer interview pyramid


Atlassian is a simple framework that helps in building the customer interview pyramid. This
pyramid looks like as

Communication Observation: At the bottom of the pyramid, we will get the very minimum. We
should all come back from an interview and be able to list observations as we don't need any
experience to regulate what you've seen.
Interpret problems: Above the Communication Observation, it is an interpret problem. It is
explaining the user's behavior and grouping them with an over-arching problem statement.

Connecting opportunities: This is the peak of the pyramid where the most value comes in
combining the problem with potential opportunities or related patterns. This helps influence a
roadmap and make decisions about what to tackle next.

UNIT – 2

Question :- What is Scrum?

Answer-----> Scrum is a framework that helps agile teams to work together. Using it, the team
members can deliver and sustain the complex product. It encourages the team to learn through
practice, self-organize while working on the problem. Scum is a work done through the framework
and continuously shipping values to customers.
It is the most frequent software that is used by the development team. Its principle and lessons
can be applied to all kinds of teamwork. Its policy and experiences is a reason of popularity of
Scrum framework. The Scrum describes a set of tools, meetings, and roles that help the teams
structure. It also manages the work done by the team

Question :- What is The framework?

Answer-----> Scrum and agile are not the same thing because Scrum focused on continuous
improvement, which is a core foundation of agile. Scrum framework focuses on ongoing getting
work done.

Question :- What are sprints?

Answer----> With scrum, a product is built in a series of repetition called sprints. It breaks down
big complex projects into bite-size pieces. It makes projects more manageable, allows teams to
ship high quality, work faster, and more frequently. The sprints give them more flexibility to adapt
to the changes.
Sprints are a short, time-boxed period for Scrum team that works to complete a set amount of
work. Sprints are the core component of Scrum and agile methodology. The right sprints will help
our agile team to ship better software.

Question :- What is sprint plan?

Answer----> Sprint plan is an action in Scrum that kicks off the sprint. The primary purpose of
sprint plan is to define what can deliver in the sprint. It also focuses on how the work will be
achieved. It is done in combination with the whole Scrum team members.
The sprint is a set of the period where all the work to be done. Before we start the development,
we have to set up the sprint. We need to describe how long time is required to achieve the sprint
goal and where we are going to start.

Question :- What are the Factors affecting Sprint planning?


Answer---->
o The What: The product owner describes the goal of the sprint and the backlog items which
contribute to achieve that goal.
o The How: Agile development team plans its necessary work on how to achieve and deliver
the sprint goal.
o The Who: The product owner defines the goal based on the value that the customers seek.
And the developer needs to understand how they can or cannot deliver that goal.
o The Inputs: The product backlog provides the list of input stuff that could potentially be part
of the current sprint. The team looks over the existing work done in incremental ways.
o The Outputs: The critical outcome of sprint planning is to meet described team goal. The
product set the goal of sprint and how they will start working towards the goal.
Question :- What is the product backlog?

Answer----> A product backlog is a registered list of work for the development team. It is driven
from the roadmap and its requirements. The essential task is represented at the top of the product
backlog so that the team member knows what to deliver first. The developer team doesn't work
through the backlog from the product owner's side and product owner doesn't push the work to the
developer team. The developer team pulls work from the product backlog.
Backlog starts with the two "R"s
The fundamental product backlog is provided by a team's roadmap and requirements. Roadmap
repetition breaks down into several epics, and each epic will have several requirements and user
stories.
The product owner organizes each of the customer stories into a single list. This story is organized
for the development team. The product owner chooses to deliver first complete epic.

Question :- What are the The factors that influence a product owner's prioritization?
Answer---->
o Priority of customer
o Importance of getting feedback
o Relative implementation difficulty
o Symbiotic relationships between work items

Question :- What is the Crystal Agile Framework?


Answer----> Crystal is an agile framework focusing on individuals and their interactions, as
opposed to processes and tools. In other words, this framework is a direct outgrowth of one of the
core values articulated in the Agile Manifesto.
The Crystal agile framework is built on two core beliefs:
• Teams can find ways on their own to improve and optimize their workflows
• Every project is unique and always changing, which is why that project’s team is best suited
to determine how it will tackle the work

Question :- Discuss the History of the Crystal Method?

Answer---> Alistair Cockburn, credited as one of the original popularizers of agile, developed the
Crystal method for IBM in 1991. He decided to focus not on developing specific step-by-step
development strategies that would work across the board for teams involved in any project, but
instead to develop guidelines for team collaboration and communication. The traits of Cockburn’s
Crystal method were therefore all based around the team itself:
• Human-powered (meaning the project should be flexible and tailored to the needs and the
preferred work modalities of people involved)
• Adaptive (meaning the approach uses no fixed tools but can be altered to meet the team’s
specific needs)
• Ultra-light (meaning this methodology does not require much documentation or reporting)

Question :- What are the Strengths and Weakness of Crystal?


Answer----->
Crystal’s strengths include:
• Allows teams to work the way they deem most effective
• Facilitates direct team communication, transparency and accountability
• The adaptive approach lets teams respond well to changing requirements

Crystal’s weaknesses include:


• Lack of pre-defined plans can lead to scope creep
• Lack of documentation can lead to confusion

Question :- Should You Use Crystal?


Answer----> The Crystal method is among the more flexible agile frameworks, because it is
designed around a project’s people and is not dependent on any single set of processes or tools.
In that sense, it can be a viable methodology for organizations that want to empower their teams
to work however they deem most effective.
It is important to keep in mind, however, that because Crystal emphasizes direct team
collaboration around the software they’re building—and de-emphasizes the importance of
documentation and reporting—this could mean the other teams across the organization will have
less visibility into the team’s progress.

Question :- Discuss the Feature Driven Development (FDD) and Agile Modeling?

Answer-----> Feature-Driven Development (FDD) is a client-centric, architecture-centric, and


pragmatic software process. The term "client" in FDD is used to represent what Agile Modeling
(AM) refers to as project stakeholders or eXtreme Programming (XP) calls customers.
FDD was first introduced to the world in 1999 via the book Java Modeling In Color with UML, a
combination of the software process followed by Jeff DeLuca's company and Peter Coad's
concept of features. FDD was first applied on a 15 month, 50-person project for a large Singapore
bank in 1997, which was immediately followed by a second, 18-month long 250-person project. A
more substantial description is published in the book A Practical Guide to Feature-Driven
Development as well as the Feature Driven Development web site.
As the name implies, features are an important aspect of FDD. A feature is a small, client-valued
function expressed in the form <action><result><object>. For example, "Calculate the total of a
sale", "Validate the password of a user", and "Authorize the sales transaction of a customer".
Features are to FDD as use cases are to the Rational Unified Process (RUP) and user stories are
to Scrum - they're a primary source of requirements and the primary input into your planning
efforts.
As you see in Figure 1 there are five main activities in FDD that are performed iteratively. The first
is Develop An Overall Model, the initial result being a high-level object model and notes.
At the start of a project your goal is to identify and understand the fundamentals of the domain
that your system is addressing, and throughout the project you will flesh this model out to reflect
what you're building. The second step is Build A Features List, grouping them into related sets and
subject areas. These first two steps map to the initial envisioning effort of AMDD (see Figure 2).
Next you Plan By Feature, the end result being a development, the identification of class owners
(more on this in a minute), and the identification of feature set owners. The majority of the effort on
an FDD project, roughly 75%, is comprised of the fourth and fifth steps:
Design By Feature and Build By Feature. These two activities are exactly what you'd expect, they
include tasks such as detailed modeling, programming, testing, and packaging of the system.
Figure 1. The FDD project lifecycle.

Figure 2. The lifecycle of AMDD.


An FDD project starts by performing the first three steps in the equivalent of the
DAD's Inception phase or XP's "iteration 0", the goal being to identify the scope
of the effort, the initial architecture, and the initial high-level plan. Construction
efforts occur in two-week (or less) iterations, similar to XP or DAD teams, with
the team iteratively working through all five steps as needed. As with other agile
software development processes, systems are delivered incrementally by FDD
teams.
There are six primary roles on an FDD project: Project Manager, Chief
Architect, Development Manager, Chief Programmer, Class Owner, and
Domain Expert. An individual will take on one or more roles on a project as you
would expect. The concept of a class owner is where FDD differs from XP. XP
includes a practice called Collective Ownership the idea of which is that any
developer can update any artifact, including source code, as required. FDD
takes a different approach in that it assigns classes to individual developers, so
if a feature requires changes to several classes then the owners of those
classes must work together as a feature team to implement it. Just like
programming pairs will model storm to think something through before they
code it, so will feature teams.

FDD also defines a collection of supporting roles, including:


• Domain Manager
• Release Manager
• Language Guru
• Build Engineer
• Toolsmith
• System Administrator
• Tester
• Deployer
• Technical Writer
FDD's five steps are supported by several practices. The first is domain object modeling, the
creation of a high-level class diagram and supporting artifacts that describes the problem domain.
Developing by feature and individual class ownership are also good practices, as is having
developers work together in feature teams.
Inspections are an important aspect of FDD. FDD also insists on regular builds, similar to XP, and
configuration management. Finally, FDD promotes a best practice called reporting/visibility of
results, similar to XP and AM's philosophy of open and honest communication.
How would Agile Modeling (AM) be applied on an FDD project? The principles and practices can
be clearly applied to FDD's two modeling-oriented steps –
develop an overall model and design by feature. The only apparent mismatch between the two
processes is FDD's practice of class ownership and AM's practice of collective ownership, but I
would argue that this isn't the case. FDD's practice pertains to coding but does not to modeling, on
a FDD project people work together in teams to model, along the lines of AM's model with others
practice, and therefore several people will be working on your shared collection of modeling
artifacts.

Question :- Discuss the Agile Software Development vs. Waterfall Software


Development?

Answer----> There isn’t a single methodology that you can apply across all projects. However,
many teams are moving toward an adaptive methodology, such as Agile, and moving away from
the predictive, Waterfall methodology when developing software.
The conventional Waterfall development method follows strict phases, sticking to the original
requirements and design plan created at the beginning of the project. A project manager spends
time negotiating milestones, features, resources, working at length in the planning stages of a
project, usually developing a full-blown project plan that details how the work will be moved
through many gates to completion.
Customers finalize requirements before development begins and then a lengthy development
process occurs, with the project manager tracking every movement of the project through each
handoff and finally on to delivery.
If everything goes well, this process produces an on-time, on-budget release. The chief
drawbacks to this approach are well-documented: it is not responsive to change and it takes a
long time to deliver working software. When technology forms the field of play and drives every
change, a six month (or longer) release cycle, with requirements chiseled in stone, does not meet
the business need.
The history behind Agile software development is one of frustration with the traditional waterfall
methodology. Agile is designed to accommodate change and the need for faster software
development (as discussed in the Agile Manifesto's Values and Principles). The project leader
typically facilitates the work of the development team, eliminates bottlenecks, and helps the team
stay focused in order to deliver software iterations on a regular basis. It is less about milestones
than it is about hours, feature selection, prioritization, and meetings.
Unlike the Waterfall model, the development team ultimately decides at the beginning of a sprint
(or iteration) what can be accomplished in the timeframe and sets out to build a series of features,
delivering working software that can be installed in a production environment at the end of the
sprint. Since Agile software development methods (such as Dynamic Systems Development
Method- DSDM) are flexible, most are suitable for method tailoring – where development teams
can adapt the flow to meet the needs of the product.
Question :- Explain the the Agile Lifecycle?
Answer----->There are a variety of Agile software development (or system development)
methodologies, including, but not limited to:
• Disciplined Agile Delivery (DAD)
• Adaptive Software Development
• Agile Modeling
• Kanban
• Scrum
• Scrumban
• Extreme Programming (XP)
• Dynamic Systems Development (DSDM)
• Feature Driven Development
• Lean Software Development
The overall goal of each Agile method is to adapt to change and deliver working software as
quickly as possible. However, each methodology has slight variations in the way it defines the
phases of software development.
Furthermore, even though the goal is the same, each team’s process flow may vary depending on
the specific project or situation. As an example, the full Agile software development lifecycle
includes the concept, inception, construction, release, production, and retirement phases.

Question :- What is The Agile Process Flow?


Answer---->
1. Concept - Projects are envisioned and prioritized
2. Inception - Team members are identified, funding is put in place, and initial environments
and requirements are discussed
3. Iteration/Construction - The development team works to deliver working software based
on iteration requirements and feedback
4. Release - QA (Quality Assurance) testing, internal and external training, documentation
development, and final release of the iteration into production
5. Production - Ongoing support of the software
6. Retirement - End-of-life activities, including customer notification and migration
This view presents the full Agile lifecycle model within the enterprise. In any enterprise there may
be projects operating simultaneously, multiple sprints/iterations being logged on different product
lines, and a variety of customers, both external and internal, with a range of business needs.

Question :- What is The Agile Iteration Workflow?

Answer----> The Agile software development lifecycle is dominated by the iterative process. Each
iteration results in the next piece of the software development puzzle - working software and
supporting elements, such as documentation, available for use by customers - until the final
product is complete. Each iteration is usually two to four weeks in length and has a fixed
completion time. Due to its time-bound nature, the iteration process is methodical and the scope of
each iteration is only as broad as the allotted time allows.
Multiple iterations will take place during the Agile software development lifecycle and each follows
its own workflow. During an iteration, it is important that the customers and business stakeholders
provide feedback to ensure that the features meet their needs.

A typical iteration process flow can be visualized as follows:


• Requirements - Define the requirements for the iteration based on the product backlog,
sprint backlog, customer and stakeholder feedback
• Development - Design and develop software based on defined requirements
• Testing - QA (Quality Assurance) testing, internal and external training, documentation
development
• Delivery - Integrate and deliver the working iteration into production
• Feedback - Accept customer and stakeholder feedback and work it into the requirements of
the next iteration
For the duration of the project, while additional features may be fed into the product backlog, the
rest of the process is a matter of repeating the steps over and over until all of the items in the
product backlog have been fulfilled. As a result, the process flow is more of a loop and not a linear
process.

Making the Agile Process Work for You


As with any methodology, there are advantages and disadvantages (Read about the advantages
and disadvantages of Agile). The Agile method is more suitable in situations where customers and
project stakeholders are available to provide input, functional portions of software are needed
quickly, flexibility is desired to accommodate changing requirements, and the team is co-located
and able to effectively collaborate. As with any change, integrating Agile processes into your
business can be overwhelming. Below are four activities that will help support the adoption of Agile
workflow:
• Daily Meetings - Host consistent or daily stand-up meetings to maintain open
communication, hold workers accountable, and keep each iteration moving forward
• Live Demonstrations - Deliver live demonstrations of each iteration’s final product to show
progress
• Share Feedback - Receive feedback from stakeholders and customers and share it with
the entire team before the next iteration begins
• Remain Agile - Make changes to your process based on feedback to ensure each iteration
improves the last

Using Smartsheet to Manage the Agile Lifecycle


Smartsheet is a powerful collaboration and project management tool. It’s ideal for prioritizing user
stories and managing product and iteration backlogs. Easily switch between Grid, Gantt, and
Calendar views to manage project details and track deadlines. Use the Card View to focus
attention with rich cards, provide perspective with flexible views, and prioritize and adjust work
more visually. Display information on cards including custom fields, images, and color-coding to
better focus your team’s attention. Agile project managers can categorize cards into lanes to help
organize what needs to happen in sprints and iterations.

Question :- What are the Work products?

Answer----> Test Plan is prepared at the time of Release Planning and is revised at every Sprint
Planning. Test Plan acts as a guide to the testing process in order to have the complete test
coverage.
Typical Contents of a Test Plan are −
• Test Strategy
• Test Environment
• Test Coverage
• Scope of Testing
• Test Effort and Schedule
• Testing Tools
In Agile Projects, all the Team Members are accountable for the quality of the product. Hence,
everyone participates in test planning as well.
A testers’ responsibility is to provide necessary direction and mentor the rest of the team with their
testing expertise.

User Stories
User Stories are not testing work products in principle. However, in Agile Projects, the testers
participate in the User Stories Creation. Testers write User Stories that bring value to the customer
and cover different possible behaviors of the system.
Testers also ensure that all the User Stories are testable and ensure the Acceptance Criteria.

Manual and Automated Tests


During the first run of Testing, Manual Tests are used. They include −
• Unit Tests
• Integration Tests
• Functional Tests
• Non-Functional Tests
• Acceptance Tests
The Tests are then automated for subsequent runs.

In Test Driven Development, Unit Tests are written first to fail, Code is developed and tested to
ensure the Tests pass.
In Acceptance Test Driven Development, Acceptance Tests are written first to fail, Code is
developed and tested to ensure the Tests pass.
In other Development methods, the Testers collaborate with the rest of the Team to ensure Test
Coverage.
In all the types of methods, Continuous integration takes place, which includes continuous
integration testing.
The team can decide when and what tests are to be automated. Even if automation of the tests
requires effort and time, the resulting automated tests significantly reduce the repetitive testing
effort and time during the iterations of the Agile Project. This in turn facilitates the team to pay
more attention to the other required activities, such as new User Stories, Changes, etc.
In Scrum, the iterations are time-boxed. Hence, if a User Story testing cannot be completed in a
particular Sprint, the tester can report in the daily standup meeting that the user story cannot reach
the Done Status within that Sprint and hence needs to be kept pending to the next Sprint.

Test Results
As most of the Testing in Agile Projects is automated, the Tools generate the necessary Test
Results Logs. Testers review the Test Results Logs. The test results need to be maintained for
each sprint / release.

A Test Summary can also be prepared that contains −


• Testing Scope (What was tested and what was not tested)
• Defect Analysis along with Root Cause Analysis if possible
• Regression Testing Status after Defect Fixes
• Issues and the corresponding Resolution
• Pending Issues, if any
• Any modifications required in Test Strategy
• Test Metrics

Test Metrics Reports


In Agile Projects, the Test Metrics include the following for each Sprint −
• Test Effort
• Test Estimation Accuracy
• Test Coverage
• Automated Test Coverage
• No. of Defects
• Defect Rate (No. of Defects per User Story Point)
• Defect Severity
• Time to Fix a Defect in the same Sprint (It costs 24x as much to fix a bug that escapes the
current sprint)
• No. of Defects fixed in the same Sprint
• Completion of Acceptance Testing by Customer within the Sprint

Sprint Review and Retrospective Reports


Testers also contribute to the Sprint Review and Retrospective Reports. The typical contents are −
• Test Metrics
• Test Result Logs review results
• What went right and what can be improved from Testing Point of View
• Best Practices
• Lessons Learned
• Issues
• Customer Feedback
UNIT – 3

Question: What are Agile process and its advantages? Explain any one Agile
process?
Answer---->
Agile SDLC Model:
• Agile SDLC model is a combination of iterative and incremental process models with focus
on process adaptability and customer satisfaction by rapid delivery of working software
product.
• Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration
involves cross functional teams working simultaneously on various areas like planning,
requirements analysis, design, coding, unit testing, and acceptance testing.
• At the end of the iteration a working product is displayed to the customer and important
stakeholders.
• Agile model believes that every project needs to be handled differently and the existing
methods need to be tailored to best suit the project requirements. In agile the tasks are
divided to time boxes (small time frames) to deliver specific features for a release.
• Iterative approach is taken and working software build is delivered after each iteration. Each
build is incremental in terms of features; the final build holds all the features required by the
customer.
• Agile thought process had started early in the software development and started becoming
popular with time due to its flexibility and adaptability.

Question :- What are the Advantages of Agile model?


Answer---->
• Customer satisfaction by rapid, continuous delivery of useful software.
• People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
• Working software is delivered frequently (weeks rather than months).
• Face-to-face conversation is the best form of communication.
• Close, daily cooperation between business people and developers.
• Continuous attention to technical excellence and good design.
• Regular adaptation to changing circumstances.
• Even late changes in requirements are welcomed

Question :- Discuss the Agile Process Models?


Answer---->
1. Extreme Programming (XP)
2. Adaptive Software Development (ASD)
3. Dynamic Systems Development Method (DSDM)
4. Scrum
5. Crystal
6. List item
7. Feature Driven Development (FDD)
8. Agile Modeling (AM)

Question :- What are the Dynamic Systems Development Method?


Answer----->
• Provides a framework for building and maintaining systems which meet tight time
constraints using incremental prototyping in a controlled environment
• Uses Pareto principle (80% of project can be delivered in 20% required to deliver the entire
project)
• Each increment only delivers enough functionality to move to the next increment
• Uses time boxes to fix time and resources to determine how much functionality will be
delivered in each increment

• Guiding principles
• Active user involvement
• Teams empowered to make decisions
• Fitness foe business purpose is criterion for deliverable acceptance
• Iterative and incremental develop needed to converge on accurate business solution
• All changes made during development are reversible
• Requirements are baselined at a high level
• Testing integrates throughout life-cycle
• Collaborative and cooperative approach between stakeholders

• Life cycle activities


1. Feasibility study (establishes requirements and constraints)
2. Business study (establishes functional and information requirements needed to provide
business value)
3. Functional model iteration (produces set of incremental prototypes to demonstrate
functionality to customer)
4. Design and build iteration (revisits prototypes to ensure they provide business value for end
users, may occur concurrently with functional model iteration)
5. Implementation (latest iteration placed in operational environment)

Question :- What is Agile Methodology?

Answer----> An agile methodology is an iterative approach to software development. Each


iteration of agile methodology takes a short time interval of 1 to 4 weeks. The agile development
process is aligned to deliver the changing business requirement. It distributes the software with
faster and fewer changes.
The single-phase software development takes 6 to 18 months. In single-phase development, all
the requirement gathering and risks management factors are predicted initially.
The agile software development process frequently takes the feedback of workable product. The
workable product is delivered within 1 to 4 weeks of iteration.

Question :- Discuss all the Roles in Agile?


Answer---> There are two different roles in a Agile methodology. These are the Scrum Master and
Product Owner.

1. Scrum Master
The Scrum Master is a team leader and facility provider who helps the team member to follow
agile practices, so that the team member meets their commitments and customers requirements.
The scrum master plays the following responsibilities:
o They enable the close co-operation between all the roles and functions.
o They remove all the blocks which occur.
o They safeguard the team from any disturbances.
o They work with the organization to track the progress and processes of the company.
o They ensure that Agile Inspect & Adapt processes are leveraged correctly which includes
o Planned meetings
o Daily stand-ups
o Demo
o Review
o Retrospective meetings, and
o Facilitate team meetings and decision-making process.

2. Product Owner
The Product Owner is one who runs the product from a business perspective. The Product Owner
plays the following responsibilities:
o He defines the requirements and prioritizes their values.
o He sets the release date and contents.
o He takes an active role in iteration and releasing planning meetings.
o He ensures that the team is working on the most valued requirement.
o He represents the voice of the customer.
o He accepts the user stories that meet the definition of done and defined acceptance criteria.

Question :- What is work of Cross-functional team?

Answer---->Every agile team contains self-sufficient team with 5 to 9 team members. The average
experience of each member ranges from 6 to 10 years. The agile team contains 3 to 4 developers,
1 tester, 1 technical lead, 1 scrum master and 1 product owner.
The Scrum master and Product owner are considered as a part of Team Interface, on the other
hand remaining members are the part of Technical Interface.
Question:- How an Agile Team plan their work?

Answer----> An Agile methodology is not a specific set of ceremonies or specific development


techniques. Rather, it is a group of methodologies that demonstrate a commitment to tight
feedback cycles and continuous improvement. An Agile team works in iterations to deliver the
customer requirement, and each iteration takes 10 to 15 days. However, the original Agile
Manifesto didn't set the time period of two-week iterations or an ideal team size.
Each user requirement is a planned based and their backlog prioritization and size. The team
decides, how much scope they have and how many hours available with each team to perform
their planed task.

Question :- What is a user requirement?

Answer-----> The user requirement defines the requirements of the user in terms of functionalities.
There may be of two type of functionality.
o As a <User Role> I want <Functionality> so that <Business Value>
o In order to <Business value> as a <User Role> I want <Functionality>.
During software release planning, a rough estimate is given to a user requirement using relative
scale points. During iteration planning, the requirement is broken down into tasks.

Question :- What is Relation between User requirement and Task?


Answer---->
o User requirement talks about what is to be done. It defines the needs of users.
o Task talks about how it is to be done. It defines how functionality is implemented.
o User requirements are implemented by tasks. Every requirement is gathering as the task.
o User requirement is divided into different tasks when it is planned in current iteration.
o User tasks are estimated in hours based, generally it is between 2 to 12 hours.
o Requirements are validated using acceptance test.
Question :- When the requirement is completed?
Answer--->The Agile team decides the meaning of task done. There may be different criteria for it:
o When the entire task (development, testing) are completed.
o When all the acceptance tests are running and are passed.
o When no defects found.
o Product owner has accepted the requirement.
o When the software product is delivered to the end user.

Question :-What is Software Acceptance Criteria?


Answer---> Acceptance Criteria is defined as the functionality, behavior, and performance
required by a product owner. It defines what is to be done so that the developer knows when a
user requirement is complete.

Question :- Discuss the Advantage of Agile Methodology?


Answer----> There are various advantages of using agile methodology over traditional waterfall
model or others. Agile development methodology and testing practices have worked wonders for
numerous organizations with positive aspects. Its positive aspects are not hidden, it is very much
visible in the organization.

Advantages of Agile Methodology


1. Customer satisfaction is rapid, continuous development and delivery of useful software.
2. Customer, Developer, and Product Owner interact regularly to emphasize rather than
processes and tools.
3. Product is developed fast and frequently delivered (weeks rather than months.)
4. A face-to-face conversation is the best form of communication.
5. It continuously gave attention to technical excellence and good design.
6. Daily and close cooperation between business people and developers.
7. Regular adaptation to changing circumstances.
8. Even late changes in requirements are welcomed.

Question :- Discuss the Disadvantages of Agile methodology:?


Answer---->
1. It is not useful for small development projects.
2. There is a lack of intensity on necessary designing and documentation.
3. It requires an expert project member to take crucial decisions in the meeting.
4. Cost of Agile development methodology is slightly more as compared to other development
methodology.
5. The project can quickly go out off track if the project manager is not clear about
6. requirements and what outcome he/she wants.

Question :- What are the Advantages of the Waterfall Model:?


Answer---->
1. It is one of the easiest and traditional model to manage. Because of its traditional
development nature, each phase has specific deliverables and a review process.
2. It works well in smaller size projects where requirements are easily understandable.
3. It has a faster product delivery model.
4. There are well-documented process and results.
5. Easily adaptable method for shifting teams
6. This project management methodology is beneficial to manage dependencies.

Question :- What are the Disadvantages of Waterfall Model:?


Answer---->
1. It is not an ideal model to develop a large scale project size.
2. It requires a clear-cut requirement at the beginning time; otherwise, it may lead to a less
effective method.
3. It is difficult to move back to make changes in the previous phase.
4. The testing process starts once development is completed. Hence, it has high chances of
bugs to be found later in project development. Due to this, it is costly to fix.

Question :- Discuss the Compression between the Agile methodology and Waterfall
model:?
Answer---->
Agile methodology Waterfall model
It follows the incremental approach. It is a sequential design process.
It divides the project development lifecycle into a The software development process is
sprint. divided into distinct phases.
Agile methodology is a flexible methodology. The Waterfall is a structured software
development methodology.
Agile is the collection of many different projects. It is completed as one single project.

The test plan is reviewed after each sprint Test plan is reviewed after complete
development.
Testing team can take part in the requirements It is difficult for the test to initiate any
change phase without problems. change in needs.
Question :- What is Agile Manifesto?
Answer----> In February 2001, at the Snowbird resort in Utah, a team of 17 software developers
met to discuss lightweight development methods. The result of their meeting was the following
Agile Manifesto for software development:-
We are uncovering the better ways of developing software by doing it and helping others to do it.
Through this meeting, we have come to value -
o Individuals and interactions over Processes and tools.
o Working software over comprehensive documentation.
o Customers are collaboration over contact negotiation.
o Responding to change over following a plan.
So that, while there is value in the items on the right, we value the items on the left more.

Question :- What are the Twelve Principle of Agile Manifesto?


Answer---->
1. Customer Satisfaction: Manifesto provides high priority to satisfy the costumer's
requirements. This is done through early and continuous delivery of valuable software.
2. Welcome Change: Making changes during software development is common and
inevitable. Every changing requirement should be welcome, evenin the late development
phase. Agile process works to increase the customers' competitive advantage.
3. Deliver the Working Software: Deliver the working software frequently, ranging from a few
weeks to a few months with considering the shortest timeperiod.
4. Collaboration: Business people (Scrum Master and Project Owner) and developers must
work together during the entire life of a project development phase.
5. Motivation: Projects should be build around motivated team members. Provide such
environment that supportsindividual team members and trust them. It makes them feel
responsible for gettingthe job donethoroughly.
6. Face-to-face Conversation: Face-to-face conversation betweenScrum Master
anddevelopment team and between the Scrum Master and customers for the most efficient
and effective method of conveying information to and within a development team.
7. Measure the Progress as per the Working Software: The working software is the key
and primary measure of the progress.
8. Maintain Constant Pace: The aim of agile development is sustainable development. All
the businesses and users should be able to maintain a constant pace with the project.
9. Monitoring: Pay regular attention to technical excellence and good design to maximize
agility.
10. Simplicity: Keep things simple and use simple terms to measure the work that is not
completed.
11. Self-organized Teams: The Agile team should be self-organized. They should not be
depending heavily on other teams because the best architectures, requirements, and
designs emerge from self-organized teams.
12. Review the Work Regularly: The work should be reviewed at regular intervals, so that the
team canreflect on how to become more productive and adjust its behavior accordingly.

Question :- What is Agile Characteristics?


Answer----> The product developed under agile methodology has seen several important
characteristics that are given below.

Agile Development Releases and Fixed-Length Iterations


The agile software development method is based on two central units of delivery: release and
iteration. A single version consists of several iterations phase. Each iteration consists of its micro-
project. The different functions of agile development like defects, enhancement requests and other
work items are organized, estimated, and prioritized, and then assigned to release.

Agile Development Delivers-Working, Tested Software


The primary measure of the agile development team is to deliver working, progress and tested
feature software. Working features serve as the basis for enabling and improving customer
feedback. It also serve as team collaboration, and overall project visibility. They provide such
evidence so that both the system and the project are on track.
At every step of product development, the team continuously works to assemble on the best
business solution. This is done using the latest input from users, customers, and other
stakeholders.
Value-Driven Development
Agile development methodology focuses really on delivering business value early and
continuously. It is measured by running tested software. The development team focuses on
product features as the central unit of planning, tracking, and delivery.
As the development goes on from iteration to iteration, the team tracks how many product are
running, tested features they are delivering.

Continuous (Adaptive) Planning


As the project launches, the development team does just more planning to get going with the initial
iteration and, if it is appropriate, to lay out a high-level release plan of features. The single iteration
leads the key to continuous planning.
As the iteration starts, the team choose a set of features to implement, determines and estimates
each technical task for each feature.

Multi-Level Planning in Agile Development


The continuous planning impacts much more significant result if it occurs on at least two levels:
o At the release level, the development team identifies and prioritize the features they must
have, would like to have, and they can do within the deadline.
o At the iteration level, development team picks and plan for the next batch of features to
implement, in priority order. If the product features are too large to estimated or delivered
within a single iteration, the development team break them down further.

Relative Estimation
Several agile development teams use the practice of relative estimation for features to accelerate
planning. It removes unnecessary complexity. The development team selects a few (3-5) relative
estimation categories, or buckets, and estimates all features in terms of these categories.
The concept of relative estimation or/and predefined estimation buckets that prevent the team
from wasting time on debating. When the product feature exceeds an agreed maximum estimate,
then it should be further broken down into multiple features.

Emergent Feature Discovery


As disputed to spending weeks or months, analyzing the requirements before initiating
development, agile development projects quickly prioritized and estimated features, and then
refine the details when required. The feature of the product is described in more detail between
customers, testers, and developers working together.
Continuous Testing
Using continuous testing of software product, we determine the progress and prevent defects. We
handle the running and tested features. Using continuous testing, we can reduce the failure risk in
the project.

Continuous Improvement
Continuous testing and constant improvement are correlated with each other. While continuous
testing, if we found any bugs or project failure, we continuously improve that bugs immediately.
We continuously refine both the project and the system. Small, Cross-functional Teams
The incremental software product is delivered at every iteration. The development teams must
also be cross-functional to be successful in developing the valuable software.

Question :- What is Agile Knowledge Management (KMAgile)?


Answer--->
Time and Results Are Inseparable in Business
Developing and integrating a meaningful KM strategy and sustainable knowledge transfer
capability faces many challenges, even in the most innovative and forward looking
organizations. The complexity and operational tempo of today’s business environment requires a
new, more agile approach to transforming the behavior of knowledge workers and enabling higher
levels of individual and organization performance through knowledge and collaboration.
Knowledge workers are more likely to invest their valued time and energy on knowledge capture
and knowledge sharing activities that provide them with an immediate and measureable benefit. In
other words, from the worker perspective, “If I spend time on this, how will it enable me to perform
better? What benefit will I get from doing my work differently? “What’s in it for me?”
From leadership’s perspective, investment in KM must directly benefit the business of the
organization. Agility in knowledge management, in this context, refers not only to speed in
addressing business and operational performance challenges, but also the development and
implementation of a fit for purpose KM strategy and enabling practices to address these
challenges.

Results Change Behavior


We know from experience you cannot impose knowledge management practices on people to
make them share their knowledge and experience, nor get them to instantly accept KM as a
valuable investment of their time. Both novice and mature workers, millennials and boomers, for
different reasons, need to experience first-hand (1) how working differently by changing their
knowledge sharing behavior can make their jobs easier, and (2) deliver for themselves the higher
performance that impacts their performance, recognition and career development.
Behavior change is hard even in the most forward looking organizations. Through an agile
approach to KM, people not only realize the benefits and promise of KM in real-time, but also
change the way they act and work as part of the experience.

KMAgile
Agile in the KM context means rapid implementation and results, being adaptive to culture,
context, and the business environment, and focused on changing knowledge sharing mindsets
and behaviors. In our Agile approach to KM, business strategy and operational requirements
continuously and iteratively inform and evolve KM efforts to deploy knowledge capabilities faster
with meaningful results. Whether developing and then implanting new concepts, strategies, and
implementing practices, or focusing on existing KM strategies to renew or revitalize them,
improved performance and an appreciation of KM is integrated as part of the way work gets
done. Agility in sharing and transferring knowledge emerges as an iterative outcome of the
application of proven KM practices in and as part of the work environment.
In the KMAgile approach to assessment, design and development of a flexible KM strategy is
accomplished in the background while proven KM techniques are applied to existing business
challenges through short, quick win pilot projects. The results and key learnings from the KM pilots
are then quickly and iteratively combined with proven KM practices to produce a “fit for purpose”
KM strategy and roadmap to guide ongoing implementation.
Within just 12 weeks, individuals, teams and leaders participating in this effort discover new
possibilities, begin to shift their mindsets, and directly experience the business impact of new
capabilities for sharing and transferring their knowledge.

Distinctions between KMAgile and Traditional KM Strategy Development


In the traditional, best case approach to KM, senior leadership supports and invests heavily in the
formal development of a “perfect” KM strategy and the right enabling technologies. In these cases,
which typically take 6 months or longer, key deliverables take the form of comprehensive,
implementation roadmaps and schedules for follow-on KM projects or programs. This means
stakeholders will not typically see the benefits of the KM efforts for up to a year from when their
initial investment is made.
While the support and commitment to KM from senior leadership is necessary, it is not sufficient if
the immediate effort is not focused upon delivering quick, meaningful and manageable results tied
to measurable business outcomes. Without this direct and visible connection between KM and
business outcomes (Knowledge at the Point of Execution®), leaders and workers quickly lose
interest and don’t experience the benefits of capturing, adapting, transferring, and reusing
knowledge. Instead, work and process remain business as usual.

KMAgile Approach Explained


KM Agile (Figure 1, KMAgile) is based on the following elements and tradeoff priorities:
• People and practices over high-level processes and tools;
• Performing and learning over strategy in a vacuum;
• Collaboration over traditional consulting; and
• Responding and adapting to change over following a perfect plan.
This Agile KM approach establishes a foundational operating capability for KM accomplished in
three “sprints” or cycles of work.
KMAgile

Figure 1

In Sprint 1, key stakeholders and pivotal work teams are engaged to create new possibilities
about how KM can impact their individual, team and organizational performance and gain their
commitment to

In Sprint 2, work teams are trained in simple, proven KM practices which are applied to the
handful of quick win opportunities in specific work operations.

In Sprint 3, Retrospects generate and capture the key learnings and advice from the quick wins
planned and delivered in the previous sprints. This re-usable, internal knowledge is made sense of
and characterized for reuse in the context of operations.
Question :- What is Agile Scale?

Answer----> In an Agile methodology, there are two popular frameworks- scrum and kanban. A
team level uses scrum and kanban as a framework. As their popularity increases, the industries
start to scale agile to suit larger organizations. There are two popular methods emerge to facilitate,
these are a scrum of scrums, and the Scaled Agile Framework (SAFe). The scrum and kanban
are high starting points for scaling agile within an organization.

Question :- What is Scrum of Scrums?

Answer-----> It is the most attractive, agile framework for individual teams. When several scrum
team works together on a big project, the scrum of scrums is the next step for scaling agile. The
most crucial component of the scrum of scrums is a multi-team stand-up. It is a small meeting for
scrum masters to talk about the agile process.
Select a member from each team to get a start, and each team represents them at the scrum of
scrums, admirably someone in a technical role. It is a domestic meeting where the scrum master
helps to facilitate the stand-up, but it is run just like any other team stand-up.

Question :- What is Scaled Agile Framework (SAFe)?

Answer----> Scaled Agile Framework (SAFe) is another way to scale agile in large organizations.
According to the Pioneered by Dean Leffingwell, it takes the most structured approach to scale
agile than scrum of scrums. It describes three levels in the organization: portfolio, program, and
team. Such structure typically appeals to larger organizations, because Scaled Agile Framework
(SAFe) employs a tiered approach for the delivery of work.
The large area of SAFe is related to work, called themes, map to business epics, and architectural
stories.

Managing an agile portfolio


Agile can perform a large scale portfolio with many teams and a lot of developers. One of the
examples is Netflix that uses the phrase "highly aligned, loosely coupled" to describe the well
maintained agile development across a large organization.

Expanding agile practice across the organization.


The successful company that runs agile at scale level has three common factors:
First, the entire program is iterative. The traditional is portfolio management which is focused on
the top-down approach and take long periods. However, the administration takes the concept of
build-measure-learn cycles for individual agile teams and applies it on a larger scale. The agile
team uses modern design and share findings on a regular accent. It leads the tremendous
flexibility.
Second, the organization share knowledge and break barriers between organizational silos. It also
communicates across the portfolio. At the team level, similar agile ceremonies, context needs to
share regularly throughout the organization so that goals, stumbling blocks, and progress are
transparent for everyone.
Third, the agile company makes the frequent release product (early and often) across the portfolio,
even if a release involves the work of multiple programs.

Question :- Explain the Agile Release Planning?

Answer-----> The primary purpose of release planning is to make a plan to deliver an increment to
the product. It is done in the interval of every 2 to 3 months.

Question :- Who is involved in releasing the plan?

Answer---> Following person are involved in product releasing plan- Scrum Master, Product
Owner, Agile Development Team, Stakeholders.

o Scrum Master: The Scrum Master is a team leader and facility provider who helps the
team member to follow agile practices so that they can meet their commitments and
customers requirements.
o Product Owner: The Product Owner is one who runs the product from a business
perspective. He defines the requirements and prioritizes their values.
o Agile Development Team: Agile development team provides the judgment on the
technical feasibilities or any dependencies.
o Stakeholders: Stakeholders are the customers, subject matter, program manager act as
advisers in decisions which are made around the release planning.

Question :- What are the Prerequisites of Planning:?


Answer---->
The prerequisites of release planning are as follows:
o A Product Owner manages the ranked product backlog. While releasing the product, the
Product owner feels to include five to ten features at the period of product release.
o High- level vision
o Market and Business objective
o Team's input according to capabilities, known velocity, or about any technical challenge.
o Acknowledged about the new product backlog items are needed

Material Required:
The list of materials that is required for the releasing planning is as follows:
o Flip charts, markers, whiteboards/li>
o Posted agenda, purpose/li>
o Projector for sharing the data/tools of computers required during a planning meeting/li>
o Planning data

Planning Data:
The list of data needed during release planning are as follow:
o Previous iteration data or release planning requests
o Actions plans of previous release/iteration
o Features or defects to be considered
o Organizational and personal calendars
o Velocity from previous releases/ estimates
Output:
Following are the output of a release planning:
o Release plan
o Commitment
o Issues, dependencies, concerns, and assumptions which are to be monitored
o It suggests improving future release planning

Planning Agenda

o Opening ceremony: Welcome message, review purpose, organizing tools, and


introduction to business sponsors.
o Product Vision and Roadmap: It shows a broad picture of the product.
o Review previous releases: Product planning agenda discussed on any item which can
impact the plan.
o Product release name/theme: It inspects the current status of roadmap themes and
makes the necessary adjustment if any.
o Issues and concerns: In the agenda, we check any concern or issue, and then record
them.
o Review and Update the Definition of Done: Review the product build or definition of done
and make appropriate changes based on technology.
o Retrospect: Require feedback from participants to make the meeting successful.
o Close: Celebrate success.

Question :- Discuss the Agile Iteration Planning?

Answer----> The primary purpose of iteration planning is for the team. The team should be a
complete set of the top-ranked product backlog items. The completion of top ranked product
backlog is a commitment in the time needed on the length of iteration and team velocity.
Question :- Who involved in the iteration planning?
Answer---->
Scrum Master: The Scrum Master is a team leader and facility provider. He helps the team
member to follow agile practices so that they can meet their commitments and customers
requirements.
Product Owner: The Product Owner deals with a complete view of the product backlog and their
acceptance criteria.
Agile Development Team: Agile delivery defines their tasks and sets the effort. The effort is to
estimate the requirements to fulfill the commitment.

Question :- What are the Prerequisites of Planning?


Answer--->
o The items in the product backlog are sized and have a relative story point assigned.
o The product owner gave the ranking to the portfolio items.
o Acceptance criteria of each portfolio item is clearly stated.

Planning Process
Iteration planning involved the following steps:
o Determines how many requirements (stories) are fit in an iteration.
o Break this requirement into tasks. Assign each task to their owners.
o Each task is set to some estimated time.
o These estimates help the team members to check how many hours for each member will
be required to iterate.
o Team members are assigned tasks by seeing their velocity or capacity. Due to this, the
team member is not overburdened.

Velocity Calculation
The agile team calculates the velocity based on the previous iterations. A velocity is an average
number of units that required finishing user stories in the iteration. Assume that, a team took
10,12,8 story points in each iteration for the previous three iterations, this shows that the team can
take 10 as velocity for the next iteration.
Planned velocity tells the team how many user requirements can be completed in the current
iteration. If the team instantly finishes the work assigned, then more user requirements can be
pulled in. Otherwise, the requirement can be moved out too to the next iteration.

Task capacity
Three factors determine the capacity of the team:
o Total number of ideal working hours in a day
o A person gives total days in each iteration
o Percentage of time a member is entirely available for the team.
Considered a team has 6 members, committed to work full time of 8 hours a day on a project. And
no member is on leave during iteration, and then the task capacity for two-week iteration will be-
6 x 8 x 10 = 480 hours

Iteration Planning Steps


o Product Owner describes the highest ranked item of the product backlog.
o Team member describes the tasks required to complete the item.
o Team members own the tasks.
o The team member estimates their own time to finish each task.
o The above steps are repeated for all the items in the iteration.
o If any member is overloaded with work, then his/her tasks distributed among other team
members.
UNIT – 4

Question :- What is Agile Product Backlog?

Answer----> The agile product backlog in Scrum is a list of prioritized features. It contains a short
description of all the functionalities desired in the product. In usual scenario, items should be
broken down into user stories. Commonly, a Scrum team and its product owner write everything
that they can think for agile backlog prioritization.

Question :- Why Product Backlog is Important?


Answer---->
o The backlog is prepared to provide an estimate of each feature.
o It helps in the planning of the product's roadmap.
o It helps in the re-ranking the features of the product by adding more value to it.
o It assists in determining the priority of the product first. The team member works first on the
higher prioritize product.

Question:- What are the Characteristics of Product Backlog?

Answer----> Each product should have its own product backlog. It can be a set of large to very
large features.
Multiple team members can work on a single product backlog.
Ranking of product is based on the technical value, business value, risk management, or strategic
fitness.
Highest priorities items are decomposed into smaller stories during release planning. This is
because they can be completed in future iterations.

Question:- What are the Product Backlog comprises the following different types
of items:?
Answer---->
o Features
o Bugs
o Technical work
o Knowledge acquisition
Question :- What is Agile Tools?

Answer----> In agile development, leading as project management is not the easiest job. Jumping
between your daily scrums to your next sprint, it causes hard to focus on the work. The agile
development tools fulfill your needs, and does it for you.
There are several agile tools available in the market. Some of them are listed below:

Question :- What is JIRA Agile?


Answer--->

Jira is a tool developed by Australian Company Atlassian. It is used for issue tracking, bug
tracking, and project management. The bugs and issues are related to your software and
Mobile apps. The Jira dashboard consists of many useful functions and features. This function and
features make secure handling of issues.
Agile Software Features:
o Issue tracking
o Bug tracking
o Boards
o Epics
o Custom fields
Question :- What is ClickUp?
Answer---->

ClickUp is one of the ultimate agile management tools. It is used for anyone who uses agile
methodology. It is the only project management tool whose goal is "to move quickly and easily".
CuickUp is in the hand of some of the most famous agile team, including Google and Apple! It is
a free forever plan, so, the team can get their hand of ClickUp.
Agile Software Features:
o Create epics
o Use story points
o Analyze sprint performance
o Time estimates
o Start and due dates
o Time tracking

Github
Github is one of the largest hosted Git serve where the developers can store all of their codes for
a vast number of projects there. The Github provides such a facility of record edits across an
entire team in real time.
Github is also integrated with many other tools so, many people such as developer and product
owner can work on the same code at the same time.
The project manager can make the Github work for their team. It includes lots of project
management tools which help him to inspect what the development team is working on.

Question :- Discuss the Agile Software Features?


Answer---->
o Issue tracking
o Mentions
o Labels
o Link issues and pull requests

Question :- What is LeanKit?


Answer---->
LeanKit is the ultimate management tool for a Kanban board on the agile progress for your
sprints. It uses cards to represent the work items and live statuses of team member. It work
perfect for the remote employees to ensure everyone can see the Kanban board in real time. It
prevents the same task to complete twice and make sure the whole team remains on the same
page.
LeanKit work well for cross-functional team which is benefit for Scrum or Kanban boards.
Agile Software Features:
o Board view templates
o Track issues and bugs
o Manage project portfolios
o Lean metrics and reporting

Question :- What is Planbox?


Answer--->

Planbox is a tool that tracks the process of burndown charts. Using this everyone knows how far
you are from the Sprint?s completion/goal. Burndown charts are most important part of the agile
cycle. Planbox also integrates the customer bug reports, and fixes, making it useful for a wide
range of users.
It has an advance reporting features which make it easy to review the status and areas where
improvement is needed at Daily Scrum.
Question :- Discuss the Agile Testing?

Answer----> Agile Development is team-centric and developers and testers take part in all the
project and development activities. The Teamwork maximizes success of testing in Agile projects.
A Tester in Agile team has to participate and contribute to all the project activities and at the same
time has to leverage the expertise in testing.

An Agile tester should have traditional testing skills. In addition, Agile tester needs −
• Good interpersonal skills.
• Ability to act positive and solution-oriented with team members and stakeholders.
• Ability to display critical, quality-oriented, skeptical thinking about the product.
• Aptitude to be pro-active to actively acquire information from the stakeholders.
• Skills to work effectively with customers and stakeholders in defining testable User Stories,
the Acceptance Criteria.
• Talent to be a good team member working with developers in producing quality code.
• Usability of testing skills to have the right test cases at the right time and at the right level
and executing them well within the duration of the sprint.
• Ability to evaluate and report test results, test progress and the product quality.
• Openness to respond to changes quickly, including changing, adding or improving test
cases.
• Potential to self-organize work.
• Enthusiasm to continuous skill growth.
• Competency in Test Automation, Test-driven Development (TDD), Acceptance Test-driven
Development (ATDD), Behavior Driven Development (BDD) and experience based Testing.

Question :- What are the Role of Tester in Agile Team?

Answer----> Tester in Agile Team participates in all the project and development activities to
contribute the best of the testing expertise.
Agile Tester Activities include −
• Ensuring proper use of testing tools.
• Configuring, using and managing the test environments and the test data.
• Mentoring other team members in relevant aspects of testing.
• Ensuring that appropriate testing tasks are scheduled during the release and sprint
planning.
• Understanding, implementing and updating test strategy.
• Collaborating with developers, customer and stakeholders in clarifying requirements, in
terms of testability, consistency and completeness.
• Performing the right tests at the right time and at right test levels.
• Reporting defects and working with the team in resolving them.
• Measuring and reporting test coverage across all applicable coverage dimensions.
• Participating in sprint retrospectives, proactively suggesting and implementing
improvements.

In the Agile Lifecycle, a tester plays a significant Role in −


• Teamwork
• Test Planning
• Sprint Zero
• Integration
• Agile Testing Practices

Question :- Discuss the Teamwork in Agile?


Answer---->
In Agile Development, teamwork is fundamental and hence requires the following −
• Collaborative Approach − Working with cross-functional team members on Test Strategy,
Test Planning, Test Specification, Test Execution, Test Evaluation, and Test Results
Reporting. Contributing the testing expertise in conjunction with other team activities.
• Self-organizing − Planning and organizing well within the sprints to achieve the targets of
testing by amalgamating expertise from other team members as well.
• Empowerment − Making appropriate technical decisions in achieving the team’s goals.
• Commitment − Committing to understanding and evaluating the product’s behavior and
characteristics as required by the customers and stakeholders.
• Transparent − Open, Communicating and Accountable.
• Credibility − Ensuring the credibility of the test strategy, its implementation, and execution.
Keeping the customers and stakeholders informed on the test strategy.
• Open to Feedback − Participating in sprint retrospectives to learn from both successes and
failures. Seeking customer feedback and acting quickly and appropriately to ensure quality
deliverables.
• Resilient − Responding to changes.

Question :- Discuss the Test Planning?

Answer----> Test Planning should start during the release planning and update during each sprint.
Test planning should cover the following tasks −
• Defining test scope, extent of testing, test and sprint goals.
• Deciding on the test environment, test tools, test data and configurations.
• Assigning testing of features and characteristics.
• Scheduling test tasks and defining frequency of tests.
• Identifying test methods, techniques, tools and test data.
• Ascertaining prerequisites such as predecessor tasks, expertise and training.
• Identifying dependencies such as functions, code, system components, vendor, technology,
tools, activities, tasks, teams, test types, test levels and constraints.
• Setting priorities considering the customer/user importance and dependencies.
• Arriving at the time duration and effort required to test.
• Identifying tasks at each sprint planning.

Question :- What is Sprint Zero?

Answer----> Sprint Zero involves preparation activities before the first sprint. A tester needs to
collaborate with the team on the following activities −
• Identifying scope
• Dividing user stories into sprints
• Creating system architecture
• Planning, acquiring and installing tools (including testing tools)
• Creating the initial test strategy for all the test levels
• Defining test metrics
• Specifying the acceptance criteria, also called the definition of “Done”
• Defining exit criteria
• Creating Scrum board
• Setting the direction for testing throughout the sprints

Question :- What is Integration?

Answer----> In Agile, a quality working product should be ready for release at any point of time in
the development lifecycle. This implies continuous integration as a part of development. An Agile
tester needs to support continuous integration with continuous testing.
To accomplish this, a tester needs to −
• Understand the integration strategy.
• Identify all dependencies between functions and features.

Agile Testing Practices


An Agile tester needs to adapt Agile practices for testing in an agile project.

• Pairing − Two team members work together at the same keyboard. As one of them tests,
the other reviews/analyzes testing. The two team members can be
o One tester and one developer
o One tester and one business analyst
o Two testers

• Incremental Test Design − Test cases are built from user stories, starting with simple tests
and moving to more complex tests.

• Mind Mapping − A mind map is a diagram to organize the information visually. Mind
mapping can be used as an effective tool in Agile testing, using which information regarding
the necessary test sessions, test strategies and test data can be organized.
UNIT – 5

Question :- What is Agile Testing?


Answer---->
Test Status can be communicated −
• During daily stand-up meetings
• Using standard test management tools
• Via messengers
Test status determined by test passing status is crucial in deciding the whether the task is “Done”.
Done means all the tests for the task pass.

Question :- Discuss the Test Progress?


Answer---->
Test Progress can be tracked using −
• Scrum Boards (Agile Task Boards)
• Burndown Charts
• Automated Test Results

Test Progress also has a direct impact on development progress. This is because a User Story
can be moved to Done status only after the Acceptance Criteria is reached. This, in turn, is
decided by Test Status as the Acceptance Criteria is judged by a Test Status.
If there are any delays or blockages in test progress, the entire team discusses and works
collaboratively to resolve the same.
In Agile Projects, changes take place quite often. When many changes take place, we can expect
that the Test Status, Test Progress and Product Quality to evolve constantly.
The Agile testers need to get that information to the team so that the appropriate decisions can be
made at the right time to stay on track for successful completion of each iteration.
When changes happen, they can affect existing features from previous iterations. In such cases,
manual and automated tests must be updated to deal effectively with regression risk. Regression
testing is also needed.

Question :- Discuss the Product Quality?


Answer---->
Product Quality Metrics include −
• Tests Pass / Fail
• Defects Found / Fixed
• Test Coverage
• Test Pass/Fail Rates
• Defect Discovery Rates
• Defect Density

Automating the gathering and reporting of product quality metrics helps in −


• Maintaining transparency.
• Gathering all the relevant and required metrics at the right time.
• Immediate reporting without communication delays.
• Allowing testers to focus on testing.
• Filtering misuse of metrics.

To secure overall product quality, the Agile team needs to obtain customer feedback on whether
the product meets customer expectations. This needs to be carried out at the end of each
iteration, and the feedback will be an input for subsequent iterations.

Question :- What are the Key Success Factors?

Answer----> In Agile projects, quality products can be delivered if Agile testing is successful.
The following points need to be considered for the success of Agile testing −
• Agile testing is based on test first and continuous testing approaches. Hence, the traditional
testing tools, which are built on test-last approach, may not be suitable. Hence, while
choosing the Testing Tools in Agile projects, the alignment to Agile testing needs to be
verified.
• Reduce total testing time by automating tests earlier in the development lifecycle.
• Agile testers need to maintain their pace to align to the development release schedule.
Hence, proper planning, tracking, and re-planning of the testing activities need to be done
on the fly with product quality as the goal.
• Manual testing accounts to 80% of the testing in the projects. Hence, testers with expertise
are need to be part of the Agile team.
• Participation of these testers with expertise throughout the development lifecycle makes the
entire team focus on quality product meeting customer expectations.
o Defining user stories emphasizing product behavior expected by the end users.
o Identifying Acceptance Criteria at user story level / task level as per customer
expectations.
o Effort and duration estimation for testing activities.
o Planning testing activities.
o Aligning with the development team to ensure production of code that meets the
requirements with an upfront test design.
o Test first and continuous testing to ensure that done status is reached meeting the
acceptance criteria at the expected time.
o Ensuring testing at all levels within the sprint.
o Regression testing at the end of each sprint.
o Collecting and analyzing product metrics that are useful for the success of the
project.
o Analyzing defects to identify which need to be fixed in the current Sprint and which
can be delayed to subsequent Sprints.
o Focusing on what is important from the Customer’s point of view.

Lisa Crispin has defined seven key Factors for Agile Testing Success −
• Whole Team approach − In this kind of approach, the developers train the testers and the
testers train other team members. This helps everyone to understand every task in the
project, thereby collaboration and contribution will have maximum benefit. Collaboration of
testers with customers is also an important factor to set their expectations right at the
beginning and translating the acceptance criteria to the required to pass the test.
• Agile Testing Mindset − The testers are proactive in continually improving the quality and
collaborating constantly with the rest of the team.
• Automate Regression Testing − Design for testability and drive development with tests.
Start simple and allow the team to choose the tools. Be ready to provide advice.
• Provide and Obtain Feedback − As this is a core Agile value, the entire team should be
open for feedback. As the testers are expert feedback providers, need to focus on relevant
and necessary information. In return, on obtaining feedback should accommodate test case
changes and testing.
• Build a Foundation of Core Agile Practices − Focus on testing alongside coding,
continuous integration, collaborative test environments, working incrementally, acceptance
for changes, maintaining synergy.
• Collaborate with Customers − Elicit examples, understanding, and checking the
requirements mapping to the product behavior, setting up Acceptance Criteria, obtaining
feedback.
• Look at the Big Picture − Drive development with business-facing tests and examples
using real world test data and thinking about impacts on other areas.

Question :- Discuss the Significant Attributes of Agile Testing ?


Answer---->
some significant attributes of Agile Testing are-
Agile Testing Benefits

The benefits of Agile testing are −


• Customer satisfaction by quick, continuous completely tested product and seeking
customer feedback.
• Customers, developers, and testers continuously interact with one another, thereby
reducing the cycle time.
• Agile testers participate in defining requirements contributing their testing expertise to focus
on what is workable.
• Agile testers participate in estimation assessing testing effort and time.
• Early test design reflecting Acceptance Criteria.
• Testing requirements consolidated by the whole team, avoiding drawbacks.
• Constant focus on quality of the product by the entire team.
• Definition of Done status reflecting tests pass ensures that the requirement is met.
• Continuous feedback on delays or blockages so that resolution can be made immediately
with effort from the whole team.
• Quick responses to changing requirements and accommodating them soon.
• Continuous integration driven regression testing.
• No time delays between development and testing. test first, continuous testing approaches
are followed.
• Automation testing implemented early in the development lifecycle, thereby reducing total
testing time and effort.
Question :- Discuss the Best Practices in Agile Testing?
Answer---->
Follow the best practices given below −
• Inclusion of testers with expertise in all types of testing at all levels.
• Testers participating in the definition of requirements, collaborating with customers on the
expected behavior of the product.
• Testers sharing feedback continuously with the developers and customer.
• Test first and continuous testing approaches to align to the development work.
• Tracking test status and test progress promptly and constantly with focus on delivering
quality product.
• Automation testing early in the development lifecycle to reduce cycle time.
• To perform Regression Testing leverage Automation Testing as an effective way.

Question :- What are the Challenges in Agile Testing?


Answer---->
The following challenges exist in Agile testing −
• Failure to understand the Agile approach and its limitations by the Business and
Management can lead to unachievable expectations.
• Agile follows whole-Team approach, but not everyone knows the essentials of Testing
Practices. Testers are advised to coach the others, but in real scenario can be
impracticable with time-boxed Sprints (Iterations).
• Test First Approach requires Developers to base the coding on Tester Feedback, but in real
scenarios Developers are more accustomed to base the coding on the Requirements
coming from Customer or Business.
• Accountability for the Quality Product is with the entire Agile Team, but in initial stages the
Developers may not Focus on Quality as they are more into the implementation mode.
• Continuous Integration calls for Regression Testing that requires considerable effort, even if
it has to be automated.
• Testers can be adaptable to changes with the Agile mind-set, but accommodating the
resulting Test Changes and Testing can be impracticable to target to finish during the
Sprint.
• Early Automation is advised so that Manual Testing Effort and Time can be reduced. But, in
the real scenario, arriving at the Tests that can be automated and automating them require
Time and Effort.
Question :- What are the Agile Testing Guidelines?
Answer---->
Use the following guidelines while performing Agile Testing.
• Participate in Release Planning to identify the required Testing activities and come up with
the initial version of test plan.
• Participate in estimation session to arrive at testing effort and duration so that testing
activities are accommodated in the iterations.
• Participate in User Story Definition to arrive at Acceptance Test Cases.
• Participate in every Sprint Planning Meeting to understand the scope and update Test Plan.
• Continuously collaborate with the Development Team during the Sprint to make Testing
and Coding a success well within the Sprint.
• Participate in Daily Stand-up Meetings and convey Test Delays or Blockages if any, to
receive immediate resolution.
• Track and Report Test Status, Test Progress and Product Quality regularly.
• Be ready to accommodate changes, responding with modifications to Test Cases, Test
Data.
• Participate in Sprint Retrospectives to understand and contribute the Best Practices and
Lessons Learned.
• Collaborate in obtaining Customer Feedback at each Sprint.

Question :- What is Agile Testing Quadrants?


Answer--->
As in the case of Traditional Testing, Agile Testing also need to cover all the Test Levels.
• Unit Testing
• Integration Testing
• System Testing
• User Acceptance Testing

Question :- Explain the Unit Testing?


Answer---->
• Done along with Coding, by Developer
• Supported by Tester who writes Test Cases ensuring 100% Design Coverage
• Unit Test Cases and Unit Testing results need to be reviewed
• Unresolved major defects (as per priority and severity) are not left
• All Unit Tests are automated

Question :- Explain the Integration Testing?


Answer---->
• Done along with Continuous Integration as the Sprints progress
• Done at the end after all the Sprints are completed
• All Functional Requirements are tested
• All Interfaces between Units are tested
• All the Defects are Reported
• Tests are automated where possible

Question :- Explain the System Testing?


Answer---->
• Done as the Development progresses
• Users Stories, Features and Functions are Tested
• Testing done in Production Environment
• Quality Tests are executed (Performance, Reliability, etc.)
• Defects are reported
• Tests are automated where possible

Question :- Explain the User Acceptance Testing?


Answer---->
• Done at the end of each Sprint and at the end of the project
• Done by the Customer. Feedback is taken by the Team
• Feedback will be an input to subsequent Sprints
• User Stories in a Sprint are pre-verified to be testable and are with defined Acceptance
Criteria
Test Types
• Component Tests (Unit Tests)
• Functional Tests (User Stories Tests)
• Non-functional Tests (Performance, Load, Stress, etc.)
• Acceptance Tests
Tests can be fully Manual, fully Automated, Combination of Manual and Automated or Manual
supported by Tools.

Question :- What is Support Programming and Critique Product Tests?

Answer----> Tests can be for −


• Supporting Development (Support Programming) − Support Programming Tests are
used by the Programmers.
o To decide on what code they need to write to accomplish a certain behavior of a
System
o What Tests need to be run after Coding to ensure the new Code does not hamper
the rest of the behaviors of the System

• Verification only (Critique Product) − Critique Product Tests are used for discovering
inadequacies in the finished Product

Question :- Discuss Business Facing and Technology Facing Tests?


Answer---->
To decide on what tests to be performed when, you need to determine whether a test is −
• Business Facing, or
• Technology Facing

Business Facing Tests


A Test is a business-facing test if it answers the questions framed with words from business
domain. These are understood by the business experts and would interest them so that behavior
of the system can be explained in the real time scenario.
Technology Facing Tests
A Test is a technology-facing test if it answers the questions framed with words from technology
domain. The programmers understand what needs to be implemented based on the clarifications
on technology.
These two aspects of test types can be viewed using the Agile Testing Quadrants defined by Brian
Marick.

Question :- What is Agile Testing Quadrants?

Answer-----> Combining the two aspects of Testing Types, the following Agile Testing
Quadrants are derived by Brian Marick −

The Agile Testing Quadrants provide a helpful taxonomy to help teams identify, plan and execute
the testing needed.
• Quadrant Q1 − Unit Level, Technology Facing, and supports the developers. Unit tests
belong to this Quadrant. These tests can be Automated tests.
• Quadrant Q2 − System level, business facing, and conform product behavior. Functional
tests belong to this quadrant. These tests are either manual or automated.
• Quadrant Q3 − System or User Acceptance Level, Business Facing and focus on real time
scenarios. User Acceptance Tests belong to this quadrant. These tests are manual.
• Quadrant Q4 − System or Operational Acceptance Level, Technology Facing and Focus
on Performance, Load, Stress, Maintainability, Scalability Tests. Special tools can be used
for these tests along with automation testing.
Combining these, the Agile Testing Quadrants that reflect What-Testing-When can be
visualized as follows −

Question :- Discuss the Agile Testing Work products?

Answer----> Test Plan is prepared at the time of Release Planning and is revised at every Sprint
Planning. Test Plan acts as a guide to the testing process in order to have the complete test
coverage.

Typical Contents of a Test Plan are −


• Test Strategy
• Test Environment
• Test Coverage
• Scope of Testing
• Test Effort and Schedule
• Testing Tools
In Agile Projects, all the Team Members are accountable for the quality of the product. Hence,
everyone participates in test planning as well.
A testers’ responsibility is to provide necessary direction and mentor the rest of the team with their
testing expertise.
User Stories
User Stories are not testing work products in principle. However, in Agile Projects, the testers
participate in the User Stories Creation. Testers write User Stories that bring value to the customer
and cover different possible behaviors of the system.
Testers also ensure that all the User Stories are testable and ensure the Acceptance Criteria.

Manual and Automated Tests


During the first run of Testing, Manual Tests are used. They include −
• Unit Tests
• Integration Tests
• Functional Tests
• Non-Functional Tests
• Acceptance Tests

The Tests are then automated for subsequent runs.


In Test Driven Development, Unit Tests are written first to fail, Code is developed and tested to
ensure the Tests pass.
In Acceptance Test Driven Development, Acceptance Tests are written first to fail, Code is
developed and tested to ensure the Tests pass.
In other Development methods, the Testers collaborate with the rest of the Team to ensure Test
Coverage.
In all the types of methods, Continuous integration takes place, which includes continuous
integration testing.
The team can decide when and what tests are to be automated. Even if automation of the tests
requires effort and time, the resulting automated tests significantly reduce the repetitive testing
effort and time during the iterations of the Agile Project. This in turn facilitates the team to pay
more attention to the other required activities, such as new User Stories, Changes, etc.
In Scrum, the iterations are time-boxed. Hence, if a User Story testing cannot be completed in a
particular Sprint, the tester can report in the daily standup meeting that the user story cannot reach
the Done Status within that Sprint and hence needs to be kept pending to the next Sprint.

Question :- What is Test Results?


Answer----> As most of the Testing in Agile Projects is automated, the Tools generate the
necessary Test Results Logs. Testers review the Test Results Logs. The test results need to be
maintained for each sprint / release.

A Test Summary can also be prepared that contains −


• Testing Scope (What was tested and what was not tested)
• Defect Analysis along with Root Cause Analysis if possible
• Regression Testing Status after Defect Fixes
• Issues and the corresponding Resolution
• Pending Issues, if any
• Any modifications required in Test Strategy
• Test Metrics

Test Metrics Reports


In Agile Projects, the Test Metrics include the following for each Sprint −
• Test Effort
• Test Estimation Accuracy
• Test Coverage
• Automated Test Coverage
• No. of Defects
• Defect Rate (No. of Defects per User Story Point)
• Defect Severity
• Time to Fix a Defect in the same Sprint (It costs 24x as much to fix a bug that escapes the
current sprint)
• No. of Defects fixed in the same Sprint
• Completion of Acceptance Testing by Customer within the Sprint

Sprint Review and Retrospective Reports


Testers also contribute to the Sprint Review and Retrospective Reports. The typical contents are −
• Test Metrics
• Test Result Logs review results
• What went right and what can be improved from Testing Point of View
• Best Practices
• Lessons Learned
• Issues
• Customer Feedback

Question :- Discuss the Agile Testing Kanban?

Answer----> Agile Testing activities can be managed effectively using Kanban concepts. The
following ensure testing to be completed in time within an iteration / sprint and thus focus on the
delivery of quality product.
• User Stories that are testable and effectively sized result in development and testing within
the specified time limits.
• WIP (Work-In-Progress) limit allows to focus on a limited number of user stories at a time.
• Kanban board that represents the workflow visually, helps to track the testing activities and
bottlenecks, if any.
• Kanban team collaboration concept lets resolution of bottlenecks as they are identified,
without wait time.
• Preparation of Test Cases upfront, maintaining the test suite as the development
progresses and obtaining Customer Feedback helps in eliminating Defects within the
iteration / sprint.
• Definition of Done (DoD) is said to be Done-Done in the sense that a Story reaches a
completion state only after the testing is also complete.

Question :- Explain the Testing Activities in Product Development?

Answer----> In Product development, the releases can be tracked with feature Kanban board.
Features for a particular release are assigned to the Feature Kanban board that tracks the feature
development status visually.
The Features in a release are broken into stories and developed within the release using agile
approach.
The following Agile Testing activities ensure quality delivery in every release and at the end of all
releases as well −
• Testers participate in User Story Creation and thus ensure –
o All the possible Behaviors of the System are captured by means of User Stories and
the Non-functional Requirements that are part of the User Stories.
o User Stories are Testable.
o Size of the User Stories allow Development and Testing to be complete (DoneDone)
within the Iteration.

• Visual Task Kanban Board −


o Depicts the status and progress of the Tasks
o Bottlenecks are identified immediately as they occur
o Facilitates to measure the cycle time which can then be optimized

• Team Collaboration helps in −


o Accountability of the entire Team for Quality product
o Resolution of bottlenecks as and when they occur, saving on wait time
o Contribution of every expertise in all the activities

• Continuous Integration that focuses on Continuous Integration Testing


• Automation of Tests to save on Testing Effort and Time
• Defect Prevention with Test Cases written earlier to Development and mentoring the
Developers on what is anticipated by different behaviors of the System −
o WIP Limit to focus on a limited number of User Stories at a Time

• Continuous Testing as the Development progresses, to ensure Defect Fixes within


the Iteration −
o Ensure Test Coverage
o Keep the Open Defects Count Low

Question :- What is Story Exploration?

Answer----> Story Exploration is the communication within an Agile team to explore Story
understanding when the product owner passes a story for acceptance for development.
The product owner comes up with the story based on the functionality expected by the system.
The developers do more exploring on each story before they mark it ready for acceptance. Testers
also participate in the communication from testing perspective to make it as testable as possible.
Finalization of the Story is based on constant and continuous communication among the Product
Owner, Developers and Testers.

Estimation
Estimation happens in Release Planning and each Iteration Planning.
In Release Planning, the testers provide −
• Information on what testing activities are required
• Effort Estimation for the same
In Iteration planning, the testers contribute to deciding on what and how many stories can be
included in an iteration. The decision depends on the Test Effort and Test Schedule Estimation.
The Story Estimation reflects the test estimation as well.
In Kanban, Done-Done is accomplished only when a story is developed and tested and marked as
complete without defects.
Hence, Test Estimation plays a major Role in story estimation.

Question :- What is Story Planning?

Answer---> Story Planning begins after a Story has been estimated and assigned to current
Iteration.
Story Planning includes the following test tasks −
• Prepare Test Data
• Extend Acceptance Tests
• Execute Manual Tests
• Conduct Exploratory Testing sessions
• Automate Continuous Integration Tests

In addition to these Testing Tasks, other tasks also may be required, such as −
• Performance Testing
• Regression Testing
• Updates of related Continuous Integration Tests
Question :- What is Story Progression?

Answer----> Story Progression uncovers additional tests that are required resulted by continuous
communication between the developers and testers. In situations where the developers need
more clarity on implementation, testers perform exploratory testing.
Continuous Testing is performed during Story Progression and includes Continuous Integration
Testing. The entire team participates in the testing activities.

Question :- What is Story Acceptance?

Answer----> Story Acceptance occurs when the story reaches the Done-Done state. i.e., the story
is developed and tested and signaled as complete.
Story testing is said to be completed when all the tests relevant to the story pass or level of test
automation is met.

Question :- What is Agile Definition of Done?

Answer----> Agile Definition of done is defined into three different stages called User Story
(Requirement), Iteration, and product Release. These are given below:

Question :- What is User Story (requirement)?

Answer----> A user story is a requirement which is formulated into few sentences. The user
requirement is the everyday language of user. This user story should be completed within
iteration. The user story is done when
o All the related code and documentation have been checked-in.
o The product passed all the processes of unit test.
o All the processes of the acceptance test case have been moved.
o The product owner must have accepted the story.
o The help text (documentation) is written.

Question :- What is Iteration?


Answer----> An iteration is a time-based collection of a user story. It works on the defected
product and accepted within the release of a product. Iteration is defined at the time of the iteration
planning meeting and completed within the iteration demo and review meeting. The iteration is
also known as a sprint.
The repetition is required when:
o Performance of the product has been tested.
o Product backup is complete.
o User requirement has been accepted or moved for the next iteration.
o Defected product has been fixed or postponed for the next iteration.

Question :- Discuss Release?

Answer---->The product release is a major occasion that represents an internal and external
delivery of work. It also tests the version of the product or system.
The product release is done when:
o The system is stress tested.
o Performance is high.
o Contain the security validation in the product.
o Disaster recovery plan is tested.
IMPORTANT QUESTIONS AND ANSWERS

Question:-1) What is an agile or agile methodology?

Answer----> Agile is an iterative approach of software development methodology using short


iterations of 1 to 4 weeks. Due to the agile methodology, the development process is aligned to
deliver the changing business requirement.

Question:- 2) What are some quality strategies of agile?


Answer--->
Some quality strategies of agile are:
o Iteration
o Re-factoring
o Dynamic code analysis
o Short feedback cycles
o Reviews and inspection
o Standards and guidelines
o Milestone reviews

Question:- 3) What are an agile manifesto and its principle?

Answer----> Agile manifesto uncovers the better way of developing software by doing it and
helping others to do it. Agile has 4 manifesto and 12 principles which defines:
o Individuals and interactions, i.e., self-motivating and self-organized should be encouraged.
o Demonstrate the working software at regular intervals with comprehensive documentation.
o Customers are collaboration over contact negotiation.
o Responding to change over following a plan.

The principles of agile manifesto are-


1. Customer Satisfaction: Manifesto provides high priority to satisfy the costumer's
requirements. Customer satisfaction is done through early and continuous delivery of
valuable software.
2. Welcome Change: Making change during software development is common and
inevitable. Every changing requirement should be welcome, even in the late development
phase. Agile process is used to increase the customer's competitive advantage.

3. Deliver the Working Software: Deliver the working software frequently, ranging from a few
weeks to a few months with considering the shortest period.

Question:- 4) Is there any disadvantage of the agile model (SDLC)?


Answer--->
Disadvantages of Agile SDLC:
1. The development team should be highly professional and client-oriented.
2. New requirement may be a conflict with the existing architecture.
3. With further correction and change, there may be chances that the project will cross the
expected time.
4. There may be difficult to estimate the final coast of the project due to constant iteration.
5. A defined requirement is absent.

Question:- 5) What are the burn-up and burn-down chart?

Answer---> The burn-up chart depicts the amount of work done in the project, whereas the burn-
down chart illustrates the amount of work remaining in the project. Thus, the burn-up and burn-
down are used to describe the progress report of the project.

Question :- 6) What do you understand by Daily Stand-Up?

Answer----> The daily stand-up is the day-to-day meeting (mostly in the morning) in which the
whole team meets around 15 minutes to find the answer for the following three questions:
o What was done yesterday?
o What is your plan for today?
o Is there any obstacle that restricts you to complete your task?

Question :- 7) What do you understand about Scrum?


Answer----> Scrum is a framework that helps agile teams work together to develop, deliver, and
sustain the complex product in the shortest time. The product provides by scrum team in this
shortest period is known as a sprint.

Question:- 8) What are the different roles in Scrum?

Answer----> There are three different roles in scrum. These are the Scrum Master, Product
Owner, Agile Development Team:

o Scrum Master: The Scrum Master is a team leader and facility provider who help the team
member to follow agile practices so that they can meet their commitments and customers
requirements.
o Product Owner: The Product Owner is one who runs the product from a business
perspective. He defines the requirements and prioritizes their values.
o Agile Development Team: Agile development team provides the judgment on the
technical feasibilities or any dependencies.

Question:- 9) What are the responsibilities of the Scrum Master?


Answer---->
The critical responsibility of Scrum Master includes:
o Tracking and monitoring project development.
o Understanding the user requirement correctly.
o Work to obtain the project properly.
o Improving the performance of the team.
o Organized meetings and resolve issues.
o Communicate and report to the customer and development team.

Question:- 10) What are different ceremonies and their importance in Scrum?

Answer----> To clearly express the Scrum planning, Scrum review, Scrum Daily stand up, and
scrum retrospective is the purpose of the ceremony. The importance of these ceremonies is to use
sprint as per your project.
Question:- 11) What do you know about Scrum ban?

Answer---> Scrum-ban is a Scrum and Kanban-based model for software development. This
model is used in the project that needs continuous maintenance, various programming error, or
some sudden changes.

Question:- 12) What do you understand by the term agile testing?

Answer----> The agile testing is the software testing process which is fully based on the principle
of agile software development. It is the iterative approach where the user story becomes the
output of the collaboration between the product owner and the development team.

Question:- 13) What are the major principles of agile testing?


Answer---->
Some of the essential principles of agile testing are:
o Customer satisfaction
o Face to face communication
o Sustainable development
o Continuous feedback
o Quick respond to changes
o Successive improvement
o Self-organized
o Focus on essence
o Error-free clean node
o Collective work

Question :- 14) What are the skills of a good agile tester?

Answer----> The agile tester is one who implements the principle of agile software development
principles for software testing. An excellent agile tester has the following skills:
o He must be familiar with the principles and concept of agile.
o He must be excellent communication skill to communicate with the team and the clients.
o He can set the priority of a task according to customer requirements.
o He should able to understand the customer requirement properly.
o He should understand the project risk due to changing demand.

Question:- 15) Name the agile frameworks.?


Answer---->
Some of the agile frameworks are:
o Scrum
o Kanban
o Feature Driven Development
o Test Driven Development

Question:- 16) Is it ever suggested to use waterfall over Scrum? If yes, explain when.?

Answer----> Yes, sometimes we use waterfall module over scrum. This is because when the client
requirement is simple, small, well-defined, fully understood, predictable, and the subject does not
change until the project complete.

Question:- 17) Name some methodologies and development where you have used the agile
model.?

Answer----> While answering this type of question, keep in mind to mention those methodologies
from which you are familiar whit.
Some of the methodologies where agile is used are:
o Crystal methodologies
o Lean software development
o Dynamic development
o Feature-driven development

Question:- 18) What was the length of sprints/iterations in your project?


It is a common question for experienced people. The idea behind is to judge in which kind of
environment you have worked? There will be follow up of the question that the length fixed in the
beginning and never changed? Did you try with less than this length or more than that?

Question:- 19) What is the difference between the agile & traditional way of working?

Answer-----> The traditional way of development is that which follow the sequential where design -
> development -> testing etc. is performed whereas, in agile development, all of this is done in
every iteration/sprint.

Question :- 20) Why does Scrum encourage the use of automated testing for projects?

Answer----> Due to faster possible delivery of the project, the Scrum development encourages to
use automated (automated performance or automated regression) testing. While answering this
question, you should explain some tools that you have used for automated testing.

You might also like