hello I'm mark I help organizations
write software more efficiently and
often this means helping teams
understand what it means to develop in
an agile way in this video we're going
to answer the question what is agile and
just as important we'll discuss what
agile is not many things get called
agile especially by people who are
trying to sell you something if you ask
the makers of paper products they will
tell you that to be agile you need to
write your user stories on the sticky
note cards that they just happen to sell
if you ask a consultant you'll likely
hear that it's a methodology for
developing software that your
organization can learn if you buy their
services and if you talk to the makers
of orthopedic shoes you'll be told that
the key to being agile is meetings where
everyone stands up so the more
comfortable your shoes the more agile
your team the actual definition of agile
is found in the agile manifesto the
manifesto makes it clear that agile
isn't a methodology it isn't a specific
way of doing software development it
isn't a framework or a process in fact
most of the things that are marketed as
agile tend to miss the point of what
agile actually is agile is a set of
values and principles much of the
discussion around agile has to do with
following different practices using
various methodologies and even
developing with specific tools while
these things might help a team that's
trying to follow agile they are agile in
and of themselves for example while a
team may find that having a daily
stand-up meeting is helpful the stand-up
is only agile to the extent that it is
the result of a team following the agile
principles and values when you
understand this it's easy to see the
agile is really a collection of beliefs
that teams can use for making
decisions about how to do the work of
developing software well this means the
term agile gets subjected to a great
deal of abuse when people claim that
this or that is the way to be agile it
also means that if you truly understand
what agile is it's surprisingly flexible
agile doesn't make decisions for you
instead it gives you a foundation that
teams can use to make decisions that
result in better software development
the agile manifesto is only 68 words and
very simply says that we can develop
software better by valuing the items on
the left side of the list more than the
items on the right side the agile
manifesto says we are uncovering better
ways of developing software by doing it
and helping others do it through this
work we have come to value individuals
and interactions over processes and
tools working software over
comprehensive documentation customer
collaboration over contract negotiation
responding to change over following a
plan that is while there is value in the
items on the right we value the items on
the Left more in addition to the values
of the manifesto there are 12 principles
that support the values once again the
principles are very general and are less
about telling you what to do then they
are about giving you the ability to make
a good decision in a particular
situation the 12 principles are number
one our highest priority is to satisfy
the customer through early and
continuous delivery of valuable software
number two welcomed changing
requirements even late in development
agile processes harness change for the
customers competitive
number three deliver working
software frequently from a couple of
weeks to a couple of months with a
preference for the shorter timescale
number four business people and
developers must work together daily
throughout the project number five build
projects around motivated individuals
give them the environment and support
they need and trust them to get the job
done number six the most efficient and
effective method of conveying
information to and within the
development team is face-to-face
conversations number seven working
software is the primary measure of
progress
number eight agile processes promote
sustainable development the sponsors
developers and users should be able to
maintain a constant pace indefinitely
number nine continuous attention to
technical excellence and good design
enhances agility number 10 simplicity
the art of maximizing the amount of work
not done is essential number eleven the
best architectures requirements and
designs emerge from self-organizing
teams number twelve at regular intervals
the team reflects on how to become more
effective then Tunes and adjusts its
behavior accordingly since agile is a
collection of values and principles it's
real utility is in giving people a
common foundation for making decisions
about the best way to develop software
for example consider a new project
that is in discussion on how to get
requirements from the business owner the
suggested approach is to require that
the business owner write down all the
requirements and sign off on them before
beginning the work a team that is
following agile would say while that
might work isn't that inconsistent with
our belief that we should value customer
collaboration over contract negotiation
and doesn't it violate our principle
that says the developers should be
working with the business owners every
day how can we make this decision in a
way that is consistent with our values
and the principles we follow or consider
a developer who's working on
implementing a feature for the business
owner the developer realizes he needs a
database to make the feature work the
first idea that comes to mind is to stop
work on the feature and build out a
robust database layer that will handle
the needs of the feature and provide
support for other development that will
be needed later if the developer
believes in the agile values and is
trying to follow the agile principles
they would think but building out this
layer means I would have to delay
delivering what the customer can see as
valuable software they can use if I can
find a way to build just what is
necessary to deliver this feature it
will better align with my principles
when you have a team that is following
agile they will be making hundreds of
decisions each week in the way described
that is what it means to be agile making
each decision based on the principles
and values that the team has decided to
follow the decision-making process
matters you can't try to short-circuit
things by taking decisions made by
another team and just blindly doing what
they decided to do another team may make
decisions based on the agile principles
and values that end up with a particular
way of doing their work simply trying to
mimic another team's actions and
practices
won't make your team agile after world
war two Melanesian islanders were
observed trying to bring cargo planes
and their supplies from the sky by
mimicking the practices they had seen
performed during the war this included
clearing the forest to make a landing
strip complete with full-size planes
made out of straw they also created
structures that mimicked a control tower
out of bamboo and had someone sit in it
wearing headphones fashioned from
coconuts it's easy to fall into similar
type of cargo cult mentality when it
comes to agile the things that are easy
to notice in a highly functional agile
team are the practices they are using
but the practices a team uses are the
result of following agile principles and
values it's less important what
practices a team happens to be using
then why they are using it in fact as
time goes by a good agile team is
probably going to change and refine
their practices that they use a team
might start with scrum and later find
that Kanban is a better fit for
delivering value to their customers a
team might begin standing up on daily
meetings and later decide it works
better for everyone to stay sitting down
another team might start out using
planning poker to estimate story size
and later do away with story points and
simply split stories to be approximately
the same size that isn't to say it's
useless to look at practices being used
by teams that are performing well but
you can't go looking for practices to
make you agile your principles and
values are what will make you agile you
have to look for practices that support
your principles and values the way you
select your practices is what determines
whether you are being agile or not if a
practice is being selected because it
looks like a good way to follow agile
principles it's probably a good place to
start
the same practice can work poorly for a
team if it's selected for the wrong
reasons
so what is agile agile is a set of
values and principles how does a team
become agile they make their decisions
based on agile values and principles the
decision-making process is how a team
becomes agile the values and principles
have enough flexibility to allow teams
in a wide variety of organizations to
develop software in the way that works
best for their particular situation
while providing enough direction to help
a team continually move toward their
full potential