Agile Guidebook Part 1 - Agile Basics

You might also like

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

AGILE INTRO

WHAT IS AGILE?
While there are many definitions of Agile, the easiest way to understand it is by looking at so-
called waterfall process - how the traditional production and manufacturing works.

We start by identifying requirements, creating the design, implementing, testing and then
delivering to the customer. Each stage is clearly defined, we can only move to the next stage
once we have completed the previous one and it is impossible (or very expensive) to move to the
previous stage.

Agile is a mindset
It allows us to embrace change throughout the
process and adapt to the change so that we can
deliver the product that the customer really
wants and incorporate the new learnings into
product design as quickly as we can.

Waterfall is not bad


There are situations when we must follow the waterfall-like processes:
- construction (impossible to make adjustments once the construction work starts
- mass production (we need to have the design finalized before launching the production line)
- no right for mistake (e.g. software for medical equipment or nuclear plant)

ADAPTING TO CHANGING REQUIREMENTS


The world is changing faster and faster. Products fade away and become long forgotten if they
fail to respond to changing world. So in order to be successful, it is important to embrace the
change, be ready for it and welcome changing requirements.

(c) Masha Ostroumova 2020


What makes waterfall fail?
Self-fulfilling prophecy:
1) we know that the change will be expensive and we're scared of it
2) we try to avoid change by all means
3) we gather requirements at the point where our knowledge about the product (also market
and customers) is at its lowest point
4) since we didn't have all the knowledge in the beginning, we are very likely to miss something
and the change will be required during the later stages (when it becomes very expensive)

AGILE PRINCIPLES AND VALUES


Agile is usually defined by 4 values and 12
principles which were formulated by 17
software engineers in 2001 in Utah and can
now be found on https://agilemanifesto.org/
with translations on multiple languages.

While a lot of those principles and values refer


to software development, they can be applied
to other industries as well with small
adjustments.

(c) Masha Ostroumova 2020


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

Note that items on the right are not denied, but are simply valued less than items on the left.

12 principles of Agile
1. Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile
12 principles
processes of Agile change for the customer's competitive
harness
advantage.
1. Our highest priority is to satisfy the customer through early and continuous delivery of
3. valuable
Deliver working software frequently, from a couple of weeks to a
software. 12
principles of
couple of months, with a preference to the shorter timescale.
2. Welcome changing requirements, even late in development. Agile processes harness change Agile

4. for
Business people and
the customer's developersadvantage.
competitive must work together daily
throughout
3. Deliver the project.
working software frequently, from a couple of weeks to a couple of months, with a
5. Build projects
preference around
to the motivated
shorter individuals. Give them the
timescale.
environment
4. Business andand
people support they need,
developers mustand trust
work them to
together getthroughout
daily the job the project.
done.projects around motivated individuals. Give them the environment and support they
5. Build
6. The most
need, andefficient andtoeffective
trust them method
get the job done.of conveying information
6. to
Theand within
most a development
efficient team
and effective is face-to-face
method conversation.
of conveying information to and within a
development
Delivering team is
incremental face-to-face
value conversation.
to the customer
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.

(c) Masha Ostroumova 2020


IS AGILE FOR SOFTWARE DEVELOPMENT ONLY?
While Agile values and principles were originally developed for the software development, they
are widely applied in many different domains and industries, with some adjustments.

For products/manufacturing
Since it is quite often impossible to iterate because of large-scale production, it is important to
do a thorough user research and prototype before starting the mass production.
Whenever possible, it is better to release smaller batches of product in order to learn from the
user feedback and make adjustments.
Any product development would benefit greatly from cross-functional self-organizing teams.
People from different background would bring different perspective and contribute to the
product improvement.

For services
It is usually easier to make adjustments to the services and service packages, so it is important to
constantly learn from the customer feedback and iterate. Cross-functional teams are another
important aspect of agile that would help to improve the services.

Some concept that might sound like they are software development-specific, might be applied
to both services and product. For example "tech debt" (not allowing the short-term wins impact
the long-term quality) would be relevant for non-software industries as well.

WHAT IS SCRUM?
Scrum is one of Agile frameworks which became really popular and is quite often wrongly
opposed to Agile. Agile is a mindset/philosophy, while Scrum is one of many ways to apply Agile
principles in real life.

why is it not enough to only learn scrum/get scrum-certified?


Scrum is often represented like one-size-fits-all solution, while in reality there are cases
where it cannot be applied as is
The reasons (mindset) behind certain Scrum processes and tools are not always explained
well. An Agile coach needs to understand the "why" to be able to explain it to the team
Scrum is not always the best framework and certain products and teams might need a
different solution.

(c) Masha Ostroumova 2020


FRAMEWORK VS. MINDSET
While there are many different frameworks apart from Scrum, it is very important to understand
well the difference between the framework and mindset. You might be tempted to find the most
innovative solution (framework) and apply it to the team hoping that it will solve all the
problems and work magic, but without the good understanding and willingness to change
(mindset) the team will not change.

An Agile coach often acts like a team's therapist or personal trainer. You need to walk the team
through recognition and acceptance of the problem and you need to make them want to
change. Once they are ready for a change, you will discuss with them the solutions.

WHAT'S THE ROLE OF AN AGILE COACH?


Scrum framework suggests that every team needs a full-time
Scrum master - a person who would organize the processes,
coach the team, keep the balance and help the team to
constantly improve. As an Agile coach, I believe my job is done
when the team no longer needs a full-time coach or Scrum
master.

Things I do when I work with a team


Observing and understanding the team and the product
Analyzing the metrics and processes, finding the gaps
Discussing the issues with the team and guiding them towards solutions
Coaching the team on how to implement frameworks, processes and tools
Making them the owners of the processes and product

Skills and knowledge an agile coach needs


Understanding of the product development process and the product
Analytical & problem-solving skills
Knowledge about psychology (Agile coach acts as a "team's therapist)
Leadership skills and readiness to step back once the team starts owning the processes and
product

(c) Masha Ostroumova 2020


WORKING WITH A TEAM
You will be working with a team as an Agile coach and it is very important to understand the
team structure, team dynamics and know what to pay attention to. An Agile coach is not a team
member, but rather an outsider who joins the team for a relatively short period of time, so it is
also important to be humble and respectful as you learn about the team. Observe them and
make an effort to understand them before you start giving them recommendations and making
any changes.

common roles in software development teams


Product owner ("CEO of the product")/product manager
("executor")
Engineers (full stack or specialized, e.g. backend engineers)
Quality assurance engineers (manual testers, QA
automation engineers)
UX designers (also UX writers, UX researchers etc)
Marketing specialists, Data scientists, Data analysts,
Business analysts etc
Scrum Master

Things to pay attention to:


Roles and responsibilities on the team
Power dynamics (closed poses vs. power poses, who talks more often and who never says
anything)
Facial expressions and micro expressions - learn more by visiting Dr. Paul Ekman's site

WORK IN PROGRESS
Little's LAW
Based on Little's law we can see that the less work the team has in
progress at any given moment, the faster it will be delivering value L - work in progress
even if the overall output doesn't change. Agile coach pays special λ - throughput rate
attention to the amount of work in progress and helps team to W - cycle time
reduce it.

Less work in progress also means less context switching and more
L = λW
attention to blockers.
(c) Masha Ostroumova 2020

You might also like