Agile methodology

11
Agile Methodology Quick and Dirty Based off of “Agile In A Nutshell” @ www.agilenutshell.com

Transcript of Agile methodology

Page 1: Agile methodology

Agile MethodologyQuick and Dirty

Based off of “Agile In A Nutshell” @ www.agilenutshell.com

Page 2: Agile methodology

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.

Page 3: Agile methodology

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.

Page 4: Agile methodology

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.

Page 5: Agile methodology

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.

Page 6: Agile methodology

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.

Page 7: Agile methodology

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.

Page 8: Agile methodology

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.

Page 9: Agile methodology

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.

Page 10: Agile methodology

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.

Page 11: Agile methodology

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.