Agile and Agile Development Methodologies

Agile
and Agile Development Methodologies

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. It works by breaking
projects down into little bits of user functionality called user
stories prioritizing them, and then continuously delivering them in short two
week cycles called iterations.

How does agile work?

At its core, agile does the same thing we do when faced with to
much to do and without enough time.

Step1: Make a List: Meet the customers and note down the list of
features he like to see in his software. We call these things user stories and
they become the TO DO list for your projects.

Step2: Size things up: Use Agile estimation technique, we size
our stories relatively to each other, coming up with a guess as to how long
each story will take.

Step3: Set Priorities: Like most list, there always seems to be more
to do than times allows. So we ask customers to prioritize their list so we get
the most important stuff done first, and save the least important for the
last.

Step4: Start executing: Start delivering some value. We start at the
top. Work our way to the bottom. Building, iterating, and getting feedback from
the customer.

Step5: Update the Plan: As we start delivering one or two things is
going to happen:

• We are going fast
enough. Everything’s going as planed or,

• We have too much to
do and not have enough time.

At this time we have two choices:

1. Do less and cut scope (as
recommended)

2. Push out the date and ask
for more money.

The Agile way:

The following features make agile different and unique from
other development methodologies:

•Analysis, design, coding and testing on an Agile project are
continuous activates.

•Development is iterative.ie. We starting with something very
simple and add to it incrementally over time.

•Panning is adaptive i.e. when reality disagree with our plans.
Agalists find it easier to change their plans than reality. We call it adaptive
planning.

•Roles blur: i.e. when it’s done right, joining agile team is
lot like working in a mid-size start-up. People pitch in and do whatever it
takes to make the project successful-regardless of title or role. On an agile
project, narrowly defined roles like analyst, programmer and tester don’t exist
– at least not in traditional sense.

•Scope can vary: The issue in agile is “Lots of work in less
time”. By fixing time, budget, quality and being flexing around scope. Agile
team maintain integrity of their plans, work within their means and avoid the
burn out.

•Requirements can change: Changes usually shunned on software
projects because of its high coast later. But Agile believe that the cost of
change can be relatively flat. Through a combination of modern software
engineering practices, and open and honest planning, Agilsts accept and embrace
change even later in the delivery process.

•Working software is the primary measure of success: The rate at
which team turn their customer’s wishes into working software is how Agilists
measure productivity. Project plans, test plans and analysis are all well and
good but Agilists understand they themselves are of no value to the end
customer.