Lire et relire

2 views
Skip to first unread message

pfa...@gmail.com

unread,
Jun 11, 2007, 4:49:20 AM6/11/07
to J2EE 5
What is Scrum?

A variation on Sashimi, an "all-at-once" approach to software
engineering. Both Scrum and Sashimi are suited best to new product
development rather than extended
development. Sashimi originated with the Japanese and their
experiences with the Waterfall model. They had the same problems with
the Waterfall model as everybody
else, so they adapted it to suit their own style. Realizing that speed
and flexibility are as important as high quality and low cost they
reduced the number of phases to four --
requirements, design, prototype, and acceptance -- without removing
any activities, which resulted in overlap of the Waterfall phases.
Then they made the four phases
overlap. (Sashimi is a way of presenting sliced raw fish where each
slice rests partially on the slice before it). Other companies took
Sashimi one step further, reducing
the phases to one and calling it Scrum. (A scrum is a team pack in
Rugby, everybody in the pack acts together with everyone else to move
the ball down the field).

Applying Scrum

For each Waterfall phase there are a pool of experienced people
available, form a team by selecting one person from each pool. Call a
team meeting and tell them that they have been selected to do an
important project. Describe the project, include how long it's
estimated to take, how much it is estimated to cost, how it is
expected to perform,
etc. Now tell them that their job is to do it in half the time, with
half the cost, twice the performance, etc. Tell them how it's done is
up to them and explain that your job is to
support them with resources. Now leave.
Stand by, give advice if it's requested, and wait. Don't be surprised
if a team member thinks the whole thing is insane and leaves. You'll
get regular reports, but mostly
you'll just wait. At somewhere around the expected time, the team will
produce the system with the expected performance and cost.

How does Scrum work?

The first thing that happens is the initial leader will become
primarily a reporter. The leadership role will bounce around within
the team based on the task at hand. Soon
QA developers will be learning how requirements are done and will be
actively contributing, and requirements people will be seeing things
from a QA point of view. As work
is done in each of the phases, all the team learns and contributes, no
work is done alone, the team is behind everything. From the initial
meeting, the finished product is
being developed. Someone can be writing code, working on functional
specifications, and designing during the same day, i.e. "all-at-once".
Don't be surprised if the team
cleans the slate numerous times, many new ways will be picked up and
many old ways discarded. The team will become autonomous, and will
tend to transcend the initial
goals, striving for excellence. The people on the team will become
committed to accomplish the goal and some members may experience
emotional pain when the project
is completed.

Why does Scrum Work?

The basic premise is that if you are committed to the team and the
project, and if your boss really trusts you, then you can spend time
being productive instead of justifying
your work. This reduces the need for meetings, reporting and
authorization. There is control, but it is subtle and mostly indirect.
It is exercised by selecting the right
people, creating an open work environment, encouraging feedback,
establishing an evaluation and reward program based on group
performance, managing the tendency to
go off in different directions early on, and tolerating mistakes.
Every person on the team starts with an understanding of the problem,
associates it with a range of solutions
experienced and studied, then using skill, intelligence, and
experience, will narrow the range to one or a few options.
Keep in mind that it can be difficult to give up the control that it
takes to support the Scrum methodology. The approach is risky, there
is no guarantee that the team will not
run up against real limits, which could kill the project. The
disappointment of the failure could adversely affect the team members
because of the high levels of personal
commitment involved. Each person on the team is required to understand
all of the problem and all of the steps in developing a system to
solve it, this may limit the size of
the system developed using the methodology.

Reply all
Reply to author
Forward
0 new messages