Agile methodology
-
Upload
tyler-rose -
Category
Leadership & Management
-
view
108 -
download
0
Transcript of Agile methodology
Agile MethodologyQuick and Dirty
Based off of “Agile In A Nutshell” @ www.agilenutshell.com
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.
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.
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 EstimationTechniques, 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.
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.
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.
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.
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.
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.
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.
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.