Agile Interview

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

What is Agile?

Agile is an iterative approach to project management and software development that helps
teams deliver value to their customers faster

What is Agile Methodology?


Agile Methodology is a practice that involves a continuous integration of development and
testing throughout the SDLC (Software development life cycle). In the agile process, both
development and testing take place simultaneously.

Pros and Cons of Agile Methodology?


Pros: More flexible: It is more flexible because it adapts to changes more rapidly than other
product management approaches.
The product gets to market faster: It focuses more on working deliverables, not on perfect
deliverables.
Better Communication: It ensures better communication between customers and developers.

Cons: Poor resource planning: In most cases, developers don't know what their end result will
be, it's hard to determine the cost of the product at the start of SDLC.
Limited documentation: Generally, in agile methodology documentation becomes less detailed
and often falls to the back burner.
Trickier decision-making: It requires an expert to make crucial decisions.

Major Agile Components?


TDD:
Continuous Deployment:
Pair Programming:

Class Responsibilities
Collaborators Card
Daily stand-up meetings

Agile Manifesto:
Agile Four Values:
● individuals and interactions over processes and tools;
● working software over comprehensive documentation;
● customer collaboration over contract negotiation; and.
● responding to change over following a plan.
Agile 12 Principles: CWFDPFCSESS
1. Customer satisfaction through early and continuous delivery of useful software
Customer satisfaction is obtained through early delivery of products to customers for testing and
feedback, through continuous delivery to let customers know the progress and through delivery
of values to the customers by fulfilling the top priority requirements first. The output of each
iteration is working code that can be used to evaluate and respond to changing and evolving
user requirements.

2. Welcome changing requirements, even late in development


This places emphasis on responsiveness to change as opposed to tight alignment to
approved plans. The change control process is simplified and no formal documentation and
approval required. This is harness change for the customer’s competitive advantage because it
allow fast response to latest changes in the external environment to enhance competitive
advantage to emerging opportunities.

3. Frequently Delivered Software(weeks rather than months)


This provides immediate values to the customers by delivering working features. Each iteration
or Sprint should lead to a release of a product. The teams make sure that each feature is fully
developed, tested, styled, and accepted by the product owner before counting it as delivered.
The project team activities can be better structured with the fixed delivery timeframe to focus on
delivery of value.

4. Daily cooperation between business people and developers


Agile development principles include keeping requirements and documentation
lightweight, and acknowledging that change is a normal and acceptable reality in software
development. This makes close collaboration particularly important to clarify requirements
just-in-time and to keep all team members ‘on the same page’ throughout the development.

5. Projects are built around motivated individuals, who should be trusted


Projects are built around motivated individuals who are given the environment and
support they need, and trusted to get the job done. Team members choose the jobs they are
most interested in through self-organization and not through external management influence.
Micromanagement and top-down approach to management are shunned.

6. Face-to-face conversation is the best form of communication


Obtain direct feedback by going to the source of problem or confusion and use oral
communication at the workplace for the benefit of osmotic communication. Virtual team
conversations are facilitated via video conferencing.

7. Collocation and pair programming


This principle is practiced via colocation and pair programming. Collocation involves collocating
a number of teams in the same open area and pair programming, which entails two
programmers sharing a single workstation (one screen, keyboard and mouse). The programmer
at the keyboard is usually called the "driver", the other, also actively involved in the
programming task but focusing more on overall direction is the "navigator"; it is expected that
the programmers swap roles every few minutes or so.
This leads to increase in code quality because "programming out loud" leads to clearer
articulation of the complexities and hidden details in coding tasks, reducing the risk of error or
going down blind alleys. It also yields better diffusion of knowledge among the team. Other
benefits include better transfer of skills, large reduction in coordination efforts, and improved
resiliency of a pair to interruptions.

8. Sustainable development, able to maintain a constant pace


Agile methodologies seek work-life balance among the team members and promote happiness
by avoiding burnout or exhaustion. Through close collaboration and by being alert and creative,
these methodologies avoid long nights and weekends, during which people try to undo the
errors of unresponsive planning. The sponsors, developers, and users are able to maintain a
constant pace indefinitely.

9. Excellence through Reflection


The best architectures, requirements, and designs emerge from self-organizing teams. At
regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly. These retrospective meetings ensure that the lessons learned during the
project are put back into the next iteration.

10. Simplicity—the art of maximizing the amount of work not done—is essential
The Pareto principle or the 80/20 rule is applied. It means that typically 80% of your
results may actually come from only 20% of your efforts! The idea is to focus on the important
20% of effort that gets the majority of the results. If you have control over the scope, and if
speed-to-market is of primary importance, why not seek to deliver the important 80% of your
product in just 20% of the time?
Focus on what are essential to create value to the project and customer not on
distractors that do not add values like components, process, etc.

11. Self-organizing teams


The team is utterly self-managing under the Scrum methodology. It has autonomy and
responsibility to meet the goals of the sprint and is responsible for determining how it will
accomplish the work to be completed. The basic principle is that the team knows best how to
carry out the work, not the project manager or human resources department.

12. Regular adaptation to changing circumstance


This is in contrast to capturing all known requirements and baseline the scope so that any other
changes are subject to change control. Agile Development holds that that requirements emerge
and evolve, and that however much analysis and design you do, this will always be the case
because you cannot really know for sure what you want until you see and use the software. And
in the time you would have spent analyzing and reviewing requirements and designing a
solution, external conditions could also have changed.
What is the difference between Scrum and Extreme Programming?
Scrum: In the scrum framework, the iterations are usually 1-2 Months long.
It emphasizes self-organization.
In scrum, teams can change the priority order of tasks.
Extreme Programming:In extreme programming, teamworks for 1-2 weeks only.
It emphasizes engineering practices.
A team can’t change the priority order of tasks, they have to follow a predefined priority order

What is the difference between Agile and Scrum?


The main difference between Scrum and Agile is that Agile is a style of project management,
and Scrum is one of several different methods used to implement that style.

What is Pair programming? Explain its advantages. Pair programming, as the name
suggests, is a software development practice where one programmer writes the code and the
other one reviews it. There are many advantages of pair programming, some of them are -

Fewer mistakes & bugs


Increased code quality
Faster training.
Coordination among team members increases

Difference between Product Backlog and Sprint Backlog?


Product Backlog:
It is owned by the Project owner.
It contains all the features and the requirements of the end product.
It is more specific to the end goal of the product.
Sprint Backlog:
It is owned by the development team.
It only contains the features and the requirements of a particular sprint.
It is more specific to the sprint goal of a particular sprint.

What are the Artifacts of the Scrum Process?


Product Backlog: It is a list that consists of new features, changes to features, bug fixes,
changes to the infrastructure, and other activities to ensure a particular output can be obtained.
Sprint Backlog: It is a subset of the product backlog that contains tasks focused on by the
team to satisfy the sprint goal. Teams first identify the tasks to be completed from the product
backlog. These are then added to the sprint backlog.
Product Increment: It is a combination of all product backlog items completed in a sprint and
the value of previous sprints' increments. The output must be in usable condition, even if the
product owner doesn’t release it

Mentions Few Agile Frameworks?


Scrum Framework- Scrum is perhaps the most popular Agile framework.
It is a team-centric framework, utilising clearly defined team roles and responsibilities to
implement the responsive style of Agile project management.

Focus: Team-led projects

Kanban- Kanban is similar to Scrum, in that it aims to support teams working at top-level
efficiency together.

It zooms in on the workflow aspect of a project, streamlining what is in progress and avoiding
bottlenecks in productivity. Kanban usually involves use of a Kanban board or flowchart.

Focus: Streamlining workflow

XP or Extreme Programming - is popular in the software development sector due to its goal of
frequent releases.

This approach is ideal for projects where continuous value delivery is a high priority.

Focus: Value Delivery

The XP values: communication, simplicity, feedback, courage, and respect.

Principles of extreme programming:


Most researchers denote 5 XP principles as:

Rapid feedback. Team members understand the given feedback and react to it right away.
Assumed simplicity. Developers need to focus on the job that is important at the moment and
follow YAGNI (You Ain’t Gonna Need It) and DRY (Don’t Repeat Yourself) principles.
Incremental changes. Small changes made to a product step by step work better than big
ones made at once.
Embracing change. If a client thinks a product needs to be changed, programmers should
support this decision and plan how to implement new requirements.
Quality work. A team that works well, makes a valuable product and feels proud of it.

FDD - Feature-Driven Development is not a million miles from XP. It also seeks to deliver value
to clients regularly throughout the lifecycle of a project.

This particular framework is client-centric, paying particular attention to stakeholder


engagement.

Focus: Stakeholder Management


Crystal
This is a family of Agile methodologies which includes variants such as Crystal Clear (up to an
8-person team), Crystal Yellow (up to a 10 to 20-person team), Crystal Orange (up to a 20 to
50-person team) and Crystal Red (for big teams with 50 to 1000 people). Crystal focuses on
principles such as People, Interactions, Community, Skills, Talent and Communication, aiming to
deliver the best possible software development process. The core of this development process
is interaction and symbiosis, which have to exist between the people allocated to the projects
and processes in order to bring efficiency to the development.

According to its founder, Alistair Cockburn, “Crystal is a family of software development


methodologies, which works with the power invested by people, and is extremely light and
stretch-to-fit”. Basically, Cockburn believes that the talent and the way team members interact
brings benefits for the whole project

When should we use waterfall over Scrum?


Usually, waterfall is used when the requirements are simple, fully defined, predictable, and
understood, and will not change.

What is the Scrum of scrums?


● Suppose seven teams are working on a Project and each team has seven members.
● Each team leads its particular scrum meeting
● To coordinate among distinct teams, separate meeting has to be organized, that meeting
is called Scrum of Scrums
● An Ambassador represents its team in the scrum of scrums.
● Primary points discussed in the meetings are:
○ Team Progress after the last meeting
○ The Task to be done before the next meeting.
○ The hindrance that the team faces while completing the last task

Test-driven development (TDD) is a software development process relying on software


requirements being converted to test cases before software is fully developed, and tracking all
software development by repeatedly testing the software against all test cases
Five Steps in TDD :
● Add a test
● Run all tests, and see if the new one fails
● Write some code
● Run tests
● Refactor code
Behavior-driven development: In software engineering, behavior-driven development is an
agile software development process that encourages collaboration among developers, quality
assurance testers, and customer representatives in a software project.
● Shifting from thinking in "tests" to thinking in "behavior"
● Collaboration between Business stakeholders, Business Analysts, QA Team and
developers
● Ubiquitous language, it is easy to describe

Define Epic, User Stories, Task?


Epic: A software feature defined by a customer and itemized in the product backlog is known as
epic. The subdivisions of Epics are known as Stories.
A customer described software feature that is itemized in the product backlog is known as epic

User Stories: User stories are prepared according to the client’s perspective such as project or
business functions, and delivered in a particular sprint.

Task: The user stories further broken down into various tasks.

Velocity in Agile is a simple calculation measuring units of work completed in a given


timeframe. Units of work can be measured in several ways, including engineer hours, user
stories, or story points.
Velocity is the total effort estimates associated with user stories that were
completed during an iteration.

A story point in Scrum is the unit for the estimation of total efforts that are required to perform
or complete a particular task.

Relative Estimation: Let say we have three glass of water and all three contains different
amount of water so it is very difficult for us to calculate the quantity of water in absolute terms
but what we can do we can use relative sizing like first glass is just half of the second and
second glass is just ¼ of third.

What is Empirical Process Control in Scrum?


Empiricism refers to work that’s based on facts, experiences, evidence, observations, and
experimentation. It is established and followed in Scrum to ensure project progress and
interpretation is based on facts of observations.
It relies on transparency, observation, and adaption.The mindset of the team and the
shift in thought process and culture are essential to achieve the agility required by the
organization.
How is Estimation Done in a Scrum Project?
The estimation of user stories is done based on their difficulty
A particular scale is used to assess the difficulty of the user stories. Some type of scales are:
Numeric Sizing (1 - 10)
T-shirt Sizes (S, M, L, XL…)
Fibonacci Series (1, 2, 3, 5, 8…)
Dog breeds (Great Dane, Chihuahua…)

How does a Scrum Master track Sprint progress?


Daily Scrum meetings -
Scrum retrospectives -
Sprint planning -
Escaped defects - Escaped defects is a simple metric that counts the defects for a given
release that were found after the release date. Such defects have been found by the customer
as opposed to the Agile development team
Defect density - It is the ratio of defects found in the software and the size of the software
Note: Defects are the confirmed deficiency in the software.
Let say there are 50 confirmed defects in 10,000 lines of code then defect density is 5 KLOC.
Sprint burndown
Team velocity

How to deal with Score Creep?


Score creep refers to a change that’s uncontrolled and added without checking its impact on
scope, time, cost, etc.

To handle it, Here’s what needs to be done:

● Close monitoring of work being done on a day-to-day basis.


● Understanding and communicating the vision to the team and ensuring they’re aligned.
● Capturing, reviewing the project requirements regularly (against what is delivered), to
emphasize to the team & customer about the requirements signed off.
● Ensuring that any changes introduced go through change control & are implemented
based on the approval for change request.
● Avoid gold plating.

A release note refers to the technical documentation produced and distributed alongside the
launch of a new software product or a product update (e.g., recent changes, feature
enhancements, or bug fixes). It very briefly describes a new product or succinctly details specific
changes included in a product update

Definition of Done (DoD) refers to the collection of deliverables, which includes written codes,
comments on coding, unit tests, integration testing, design documents, release notes, etc. This
adds verifiable and demonstrable values to project development. DoD is very helpful to scrum
while identifying the deliverables to achieve the objective of the projects
Benefits of Planning Poker Estimation
Planning poker combines three methods of estimation -

Expert Opinion : In an Expert Opinion based Estimation approach, an expert is asked how long
something will take or how big it will be. The expert provides an estimate relying on his or her
experience or intuition or gut feel.

Expert Opinion Estimation usually doesn’t take much time and is more accurate compared to
some of the analytical methods.

Analogy : Analogy Estimation uses comparison of User Stories. The User Story under
Estimation is compared with similar User Stories implemented earlier. This results in accurate
results as the estimation is based on proven data.

Disaggregation : Disaggregation Estimation is done by splitting a User Story into smaller,


easier-to-estimate User Stories. The user stories to be included in a Sprint are normally in the
range of two to five days to develop. Hence, the User Stories that possibly take longer duration
need to be split into smaller Use Cases. This approach also ensures that there would be many
stories that are comparable.
Challenges involved in Agile Software development includes:
● It requires more testing and customers involvement
● It impacts management more than developers
● Each feature needs to be completed before moving on to the next
● All the code has to work fine to ensure application is in working state
● More planning is required

Acceptance criteria is a metric/statement/list of done definitions the product owner uses to


confirm the user story has been implemented to his satisfaction.

Before using Agile methodology, you must ask following questions


● Is functionality splitable
● Is customer available
● Are requirements flexible
● Is it really time constrained
● Is team skilled enough

Differentiate between Incremental and Iterative development?


Iterative method: It is a continuous software development process where the software
development process where the software development cycles (Sprint and Releases)until the
final product is achieved
Release 1: Sprint 1, 2,..n
Release 2: Sprint 1,2,...n

Incremental Development: It segregates the functionality of the system into increments or


portions. In each increment, the functionality segments are delivered through cross- discipline
Work, from the requirement to the deployment
Also see
https://medium.com/@ashutoshagrawal1010/agile-methodology-incremental-and-iterative-way-
of-development-a6614116ae68

What do you mean by scrum poker technique or planning poker?


The cad-based estimation technique is based on a general agreement, which is known as
scrum poker or planning poker
Feature are:
● The first step is to story of the agile user is read by the client. Then the estimator
understands the features.
● There are various planning cards with a different number for each estimator. The
different numbers are the story points.
● Until a general agreement is reached, this process is repeated
Discuss the principles of agile testing
There are some major points regarding agile testing and they are discussed below.
● Satisfaction of customer
● A big free clean mode
● Customers welcome changes
● The business people and the developers work together as a team
● It focusses in essence rather than lengthy documentation.
● Face to Face conversation is appreciated.
● Promotion of sustainable development

Impediments in Scrum:
Resource missing or sick team member
Technical, operational, organizational problems
Lack of management supportive system
Business problems
External issues such as weather, war etc
Lack of skill or knowledge

What is increment?
An increment is the total of all the product backlogs items completed during a sprint. Each
increment includes all the previous sprint increment values as it is cumulative. It must be in the
available mode in the subsequent release as it is a step to reach your goal.

The build-breaker is a situation that arises when there is a bug in the software. Due to this
sudden unexpected bug, compilation process stops or execution fails or a warning is generated.
The responsibility of the tester is then to get the software back to the normal working stage
removing the bug.

What do you understand by Daily Stand-Up?


Answer: You may surely get an interview question about daily stand-up. So, what should be the
answer to this question? The daily stand-up is an everyday meeting (most preferably held in the
morning) in which the whole team meets for almost 15 minutes to find answer to the following
three questions –

● What was done yesterday?


● What is your plan for today?
● Is there any impediment or block that restricts you from completing your task

What do you know about Scrum ban?


Scrum-ban is a Scrum and Kanban-based model for the software development. This model is
specifically used for the projects that need continuous maintenance, have various programming
errors or have some sudden changes. This model promotes the completion of a project in
minimum time for a programming error or user story.

State some of the Agile quality strategies.


Answer: Some of the Agile quality strategies are –
● Iteration
● Re-factoring
● Dynamic code analysis
● Short feedback cycles
● Reviews and inspection
● Standards and guidelines
● Milestone reviews

Is there any drawback of the Agile model? If yes, explain.


Answer: Yes, there are some drawbacks of the Agile model, some of them are as follows –

It is not easy to make a prediction about the effort required to complete a task. It becomes more
problematic in case of large projects as it becomes difficult to get an idea of the total effort
required.
At sometimes, it’s not possible to properly focus on the design and documentation of the project
In case the requirements of the client are not understood properly, the final project will not meet
the customer requirements. Thus, it will lead to the customer dissatisfaction.
Only the leader who has considerable experience in Agile methodologies is capable to take
important decisions. The team members with little or no experience are not involved in
decision-making, thus they don’t get chance to advance their knowledge.

What is the use of burn-up and burn-down charts?


Answer: The burn-up chart illustrates the amount of completed work in a project whereas the
burn-down chart depicts the amount of work remained to complete a project. Thus, the burn-up
and burn-down charts are used to trace the progress of a project.

Define Zero Sprint and Spike in Agile.


Answer: To answer this question, describe Zero Sprint and Agile in detail, as follows –

Zero sprint – Zero Sprint can be defined as the preparation step of the first sprint in Agile.
There are some activities that are required to be done before actually starting the project. These
activities are considered as the Zero sprint; the examples of such activities are – setting the
environment for development, preparation of backlogs etc.

Spike – Spike is the type of story that can be taken between the sprints. Spikes are commonly
used for the activities related to the design or technical issues such as research, design,
prototyping, and exploration. There are two types of spikes – functional spikes and technical
spikes.
What is the role of the Scrum Master?

The scrum master is the leader as well as coach of the Scrum team. The scrum master is
responsible to serve and protect his team from any kind of distractions that could affect their
performance. The main role of the scrum master is to motivate his team to achieve the sprint
goal. He is focused to build a self-organized and motivated team where each member is familiar
with the implementation of Agile and Scrum principles and applications. The scrum master
keeps a proper check on the scrum team if they are executing committed tasks properly. He is
also responsible to increase the efficiency and productivity of the team so that they can achieve
the sprint goal effectively.

Sashimi in Scrum methodology?


Sashimi plays an important role in Scrum methodology. Sashimi is a technique used by Scrum
to check the completion of all the functions created by the developers. Using this technique, all
the requirements such as analysis, designing, coding, testing and documentation that are used
in the constitution of a product are checked and only after that the product is displayed.

What are the different roles in Scrum?


The three scrum roles i.e. Scrum Master, Product Owner and Team should be explained with the
details of few primary responsibilities of each role. You can add more details as mentioned
below for a particular depending on the role you are getting interviewed for.

Product owner(Product Leadership) – A product owner is actually the stakeholder of the


project. He represents the project requirements before the team. He is responsible to have a
vision of what to build and convey his detailed vision to the team. He is the starting point of an
agile scrum software development project.
Prioritizing features into a list, what needs to be focused on the upcoming sprint much
more.

Scrum master(Process Leadership) – Scrum master is the leader and the coach for the scrum
team who checks whether the scrum team is executing committed tasks properly. He is also
responsible to increase the efficiency and productivity of the team so that they can achieve the
sprint goal effectively.
The scrum master removes impediments, shields the team from distractions, and
enables them to adopt agile practices.

Scrum team – Scrum team is formed by the collective contribution of individuals who perform
for the accomplishment of a particular project. The team is bound to work for the timely delivery
of the requested product.

What are the responsibilities of a Scrum Master?


Key responsibilities of a Scrum Master involves:

Tracking and monitoring


Understanding requirements properly
Work to reach the project goal
Process checking master and quality master
Protect the team from detachments
Improving the performance of the team
Lead the meetings and resolve issues
Resolution of conflicts and impediments
Communication and reporting

What are different ceremonies and their importance in Scrum?


Scrum planning, Scrum – Daily stand up, Scrum review & scrum retrospective ceremonies
should be clearly expressed with the purpose of the ceremony. It’s important to remember the
time-boxing of the ceremonies for a standard 4 weeks of Sprint or as per the Sprint you have
used in your projects.

State some major principles of Agile testing.


Customer satisfaction, Face to face communication, Sustainable development, Quick respond
to changes, Continuous feedback, Successive improvement, Self-organized, Focus on essence
Error-free clean node, Collective work

What are the skills of a good Agile Tester? An agile tester is one who implements agile
software development principles for software testing. Followings are the skills of a good agile
tester –
Required to be familiar with the concepts and principles of Agile
Should have an excellent communication to communicate with the team and the clients
Ability to set priority for the tasks according to the requirements
Should be able to understand the requirements properly
Understanding of the risks involved with a project due to changing requirements

Explain some common metrics for Agile. You may definitely come across agile scrum
interview questions regarding agile metrics. The question may be related to a particular agile
matric or explaining all the metrics. So, the detailed description of some common metrics for
Agile is as follows:

Velocity – Velocity is the average number of points from last 3-4 sprints. It is measured by the
summation of the all approved estimates of the stories. It gives an idea of the capacity, progress
etc.
Cumulative Flow Diagram – With the help of a cumulative flow diagram, an inspection is done
over the uniform workflow. In this diagram/graph, the x-axis represents time whereas the y-axis
represents the number of efforts.

Work Category Allocation – Work category allocation is an important factor that gives a quick
information of the time investment i.e. where the time is being invested and which task should
be given priority as a factor of time.

Time Coverage – It is the time that is given to a code during testing. It is calculated in
percentage as a factor of the number of lines of code called by the test suite and the total
number of relative lines of code.

Business Value Delivered – It is a term which denotes the working efficiency of the team. The
business objectives are assigned numerical values 1,2,3.. and so on, as per the level of priority,
complexity, and ROI.

Defect Removal Awareness – It is the factor that helps the team to deliver a quality product.
The identification of an active number of defects, their awareness, and removal plays an
important role in delivering a high-quality product.

Defect Resolution Time – It is a procedure through which the team members detect the
defects (bugs) and set a priority for the defect resolution. The procedure of fixing errors/bugs or
defect resolution comprises of multiple processes such as clearing the picture of defect,
schedule defect fixation, completing defect fixation, generation, and handling of resolution
report.

Sprint Burn Down Matric – The sprint burndown chart is a graph to represent the number of
non-implemented or implemented sprints during as Scrum cycle. This matric helps to track the
work completed with the sprint

What do you know about “Planning Poker” technique? Planning poker, also known as
Scrum Poker, is a card-based agile technique that is used for planning and estimation. To start a
session of planning poker technique, the agile user story is read by the product owner. The
steps performed in the poker planning technique are –
Each estimator has a deck of poker cards with the values such as 0, 1, 2, 3, 5, and so
on, to denote story points, ideal days or something else that the team uses for estimation.
Each estimator has a discussion with the product owner and then privately selects a card on the
basis of their independent estimation.
If the cards with same value are selected by all estimators, it is considered as an
estimate. If not, the estimator discusses the high and low value of their estimates.
Then again, each estimator privately selects a card and reveals. This process of poker planning
is repeated to reach a general agreement.

Questions

● How do you define a user-story?


● How do you estimate a user-story?
● How to write User-Requirement Document?
● Agile Principles?
● Agile daily activities?
● Sprint Planning,
● Agile Framework?
● Jira?
● Confluence?
● How do you
● Iterative incremental?
● Team Velocity
● Burn Down charts
● Burn Up charts

You might also like