Agile Guidebook Part 1 - Agile Basics
Agile Guidebook Part 1 - Agile Basics
Agile Guidebook Part 1 - Agile Basics
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.
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.
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.
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.
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