A fair analysis of the Agile Methodology. A quick comparison of Agile and Waterfall to clear up misconceptions about the two. Scalability is a major issue with Agile and is worth considering if you're not a large software company.
2. What is Agile?
Agile is a time boxed,
iterative approach to
software delivery that builds
software incrementally from
the start of the project,
instead of trying to deliver it
all at once near the end.
In short, Agile represents a
modular approach to
delivery.
3. What is Agile?
It works by breaking project
down into little bits of user
functionality called User
Stories, prioritizing them, and
then continuously delivering
them in short two week cycles
called iterations.
These modulus projects include
full functionality and have
utilized all functions of a
project, i.e. Analysis, Design,
Coding, and Testing.
4. How does Agile Work?
- The Process
Make A List
Sitting down with your
customer, you make a list
of features they would like
to see in their software.
This is now a list of User
Stories and they become
the To Do list for your
project.
Size Things Up
Using Agile Estimation
Techniques, you size your
stories relatively to each
other, coming up with a
guess as to how long you
think each user story will
take.
Note: The process is similar to the
practicing methods of Waterfall
techniques. The major distinctions at this
point are:
1. Each task is a fully functioning mini
project that could involve every
functional department.
2. The schedule is broken into 2 week
Sprints
Strict Waterfall techniques require one
task followed by another AFTER
completion of the previous task and often
does not allow you to revisit the previous
tasks. However, even the man credited
with developing the Waterfall techniques
acknowledged an iterative process within
each task.
5. How does Agile Work?
Set Priorities
Ask your customer to
prioritize this new list of
features so you get the
most important stuff done
first, and save the least
important stuff for last.
Start Executing
Start delivering value. You
start at the top! Work your
way to the bottom,
building, iterating, and
getting feedback from your
customer as you go
Note: The very ability to order these
features by priority, requires that there
are no, or few, dependencies on other
tasks. It suggests modular features that
are almost completely independent of one
another. This sort of project management
is not suitable for manufacturing facilities,
but then we’re talking computer software
and apps.
6. How does Agile Work?
Update the Plan as you Go!
Perhaps the most important piece of the Agile
methodology.
In software, and often other industries, the
delivery date is not very flexible
As you progress throughout your project, features
begin to take a different shape. Some features
turn to stone and must get done. Other features
become fluid and more like “wish-to-have’s”.
You adjust your scope to accommodate for tighter
schedules or tighter budgets.
If you’re lucky enough to have extra time, you can
adjust accordingly.
Note: The Waterfall approach speaks
often of the constraint triangle. Agile
thinks of the triangle as more of a Jello
substance that is poked at when necessary.
The three sides of the Triangle are Cost,
Schedule, and Scope. Change one of these
constraints affects the other two.
7. How is Agile Different?
Analysis, Design, Coding, and
Testing are Continuous
With Agile, these are (loosely)
functional departments within
a company, but not tasks on a
schedule.
Each of these functional units
are working on a piece of the
project in tandem.
Coordination and teamwork
are required to pull off each
Agile Sprint.
Note: In practice, the Waterfall (or
traditional) method never really functions
like this. The Waterfall approach focuses
on a linear model mostly because it’s
easier to visualize, manage, and control.
Agile methodologies make their project
more manageable by focusing heavily on
only two (2) week sprints and leaving the
rest of the project loosely defined.
8. How is Agile Different?
Development is iterative
Once the shell is completed and
development “rules” are defined, you can
iterate features until the full project is
completed.
Iterative means development starts with
something really simple and ads to it
incrementally over time.
Planning is adaptive
In agile, the assumption is that
scope can be changed by the
developers based on priorities set by
the customer and delivering a
product with fewer features, or
simple adaptation of the features is
acceptable.
9. How is Agile Different?
Roles Blur
When it’s done right, joining an Agile
team requires a great deal of
collaboration and teamwork between
functional units.
Everyone pitches in to successfully
complete each two (2) week sprint.
Successfully completing a sprint is more
important than a job role or title.
Scope can vary
As discussed in the previous slide, scope
can vary.
By fixing time and budget, the scope in
the constraint triangle must be flexible.
10. How is Agile Different?
- The Principle Agile Belief!
Modular Coding helps to control the
Cost of Change!
The principle belief within the
Agile methodology is that by
developing iterations like
developing a photo allows for
tweaking the scope as you go.
In a Traditional or Waterfall
approach, solid building makes it a
bit more inflexible as you go. So
the cost of a change later in the
game is perceived to be higher.
Agile challenges the waterfall
belief by making each piece of
code a separate, removable (or
alterable) part of the final product.
11. Agile Vs Waterfall
- Analysis on Agilenutshell.com
Although there are advantages to the Agile technique that are greatly valued over the
traditional (or Waterfall) techniques as they are strictly defined; few, if any, software
companies would every consider the strict definition in practice.
In practice, Waterfall, or Traditional very closely resembles the Agile methodologies and
simply changes the names of the techniques.
The “Agile vs Waterfall” section on the website “agilenutshell.com” is, therefore, very
misleading. They do not consider any similarities to the two methodologies.
They neglect acknowledging that a planning phase occurs in Agile (Analysis and Design) before
coding begins. They also overlook the need to User Acceptance Testing that usually doesn’t
occur until the final product is delivered. That almost perfectly describes the four (4) phases
they criticize in their analysis.
The website does acknowledge the difficulties of scalability in the “Myths of Agile” section,
dismissing it by saying that everything is difficult to scale. An iterative approach to waterfall
is more adept to scalability than Agile because collaborative work is more flexible and can be
done as necessary. This can cause other issues, but acknowledging the short-comings of both
approaches is wise.