- The very first principle in the Agile manifesto
is that our highest priority is to satisfy the customer
through early and continuous delivery of valuable software.
The key thing to think about with this principle,
are the words, priority and valuable.
So what does it mean to prioritize high value software?
Strangely enough, one of the answers to this question,
starts in the 19th century with an Italian economist
named Vilfredo Pareto.
When he was in his garden, harvesting peas,
he noticed that 20% of his pea pods,
produced 80% of his peas.
He was an economist so he compared this ratio
to the wealth distribution in Rome.
There he saw that 20% of the population
owned 80% of the city's land.
So this 80:20 ratio is now known as the 80:20 rule
or the Pareto Principle.
80% of the effects comes from 20% of the causes.
Now, if you're fast forward to the 1990s,
a consulting company called the Standish Group
published a report that said
that a majority of software projects were failing.
That's because they spent too much time
working on software features that no one will use.
Think of it this way,
if you use a program like Microsoft Word,
you might really be using only a small set of the features.
Maybe you use spell check, print or copy and paste,
but you might never use mail merge
or any of the hundreds of language packs.
That's true with most software products.
In fact, the report showed that for most customers,
45% of the features in a software product are never used.
Then 19% are rarely used and 16% are sometimes used.
Finally 13% are often used and 7% are always used.
If you look closely, you'll see the Pareto rule.
Only 20% of the products features are often or always used.
So if you're working in an Agile team,
this 20% is the most valuable part of the software.
So you would want to start here first.
This would be part of the highest priority featured
delivered in the very first sprint.
Now this might not sound like a big deal,
but it's actually different
from how most teams develop software.
Think about if you were creating a simple website,
which submitted a contact form.
Typically a project manager might divide this up
into two milestones.
One milestone might be to create the webpage
that has all of the form fields.
And then the second milestone might be
capture those form fields in a database.
Now, imagine you were working on the same website
with an Agile team.
The first thing you would do is ask the customer,
which one of the form fields are your most valuable.
They would probably say it's the customer's first name
and email address.
So instead of a milestone
that finishes all of the form fields,
you would create a simple website
that only captures the customer's first name
and email address.
It would be a fully functional website,
but it would only include this 7% of the customer value.
Then once that's complete,
the agile team will work on the 13%.
Maybe that's the customer's last name
or their street address.
The development team will work
on the highest priority features
and then move their way down to lower priority features
until the whole product is complete.