 |
Just like a real one, it flows in one direction and is hard to go back. |
When you find yourself working in a group with a product
deadline off in the distance, there are many ways to work together as a team to
produce a shippable product. There are some strategies based on the
Waterfall model, which focuses on incremental stages of development. Each
stage of development is executed in sequence. Generally, each stage has its own
theme, like a planning, researching, testing, or development stage. While it
sounds like an orderly and efficient way of executing a project, there are many
who believe it to be quite inefficient. For example: you are half way through
the development phase of a service that assists the client in baking cookies,
but now the client suddenly changes his mind and wants to cook pies instead. Being
halfway through the project with this sudden paradigm shift will invalidate
much of the work that was accomplished during the previous stage relating to
cookie baking. This results in the waste of numerous dollars and man-hours. As
a result, this sequential strategy became less popular, and a new model known
as Agile began to gain prominence.
 |
short, sweet, and to the point. |
The Agile model was first introduced in early 2001, when a
number of software developers met and discussed ways to improve productivity.
It was there they published the
Manifesto for Agile Software Development. Agile differs from Waterfall
in one key area: instead of having a long line of different phases, the Agile
method breaks up the development cycle into numerous short work periods called
sprints, with the intention of delivering smaller, finished portions of the
project
to the client. The Agile method
is described in much more detail
here. During each sprint, there
are daily meetings called scrums.
During
these 10-20 minute meetings, the development team, the client, and a facilitator
called the scrum master gather and discuss the team’s progress on the project.
The scrum master helps direct the flow of the meeting and acts as an
intermediary between the team and the client. During each meeting the team
reports to the client three things: what they have finished, what they are
working on, and anything that is blocking their progress. These meetings allow
the client and the team to continually improve the product and quickly react to
any blocks that the team experiences, along with any shifts in the requirements
put forward by the client. This more natural development cycle both saves time
and money by catching problems early instead of halfway through the
development.
For the project I am
currently involved in, we are using what I would call Agile lite. Since we are
all students, it is very difficult to meet every day with the client, so
instead we are having Scrum meetings every other week for an hour a day. While
it does not fit the mold of Agile perfectly, I can definitely see how this
method is superior to the Waterfall method in every way.