您的位置:首页 > 运维架构

The Philosophy of Scrum

2009-09-14 10:00 302 查看
The core of the Scrum approach is
the belief that most systems development has the wrong philosophical basis.
The stated, accepted philosophy is that systems development process is a well
understood approach that can be planned, estimated, and successfully completed.

The failed projects, inappropriate
systems, and ineffective productivity tools are seen as proof that the development
process needs more rigor, that if we can get those unruly developers to actually
follow it, these maladies will go away.

Scrum states that the systems development
process is an unpredictable, complicated process that can only be roughly described
as an overall progression. Cookbook, step-by-step approaches do not work because
they aren't adequately defined and don't cope with the unpredictability of systems
development.

Scrum defines the systems development
process as a loose set of activities that combines known, workable tools and
techniques with the best that a development team can devise to build systems.
Since these activities are loose, controls to manage the process and inherent
risk are used.

The following maladies occur as a
result applying the wrong philosophy and techniques to systems development:

By the time the system is delivered,
it is often irrelevant or requires significant change. This occurs because
environmental inputs are used only during planning.

Management actually believes
that it can predict the cost, delivery schedule, and functionality that
will be delivered.

Developers and project managers
are forced to live a lie...they have to pretend that they can plan, predict
and deliver, and then work the best way that they know how to deliver a
system. They build one way, pretend that they build another way, and are
without controls.

Scrum is applicable to internal IS
Organizations. Scrum will relieve IS Organizations of these terrible symptoms.

The approach is called Scrum. It
starts with the acceptance that this is a complicated, unpredictable world and
development environment. It also starts with the premise that you can't predict
or definitively plan what you will deliver, when you will deliver it, and what
the quality and cost will be. It starts with the assumption that you can estimate
these, and then negotiate them according to various risks as you proceed. It
is understood at the start, that you will deliver the best possible software
given the circumstances, and that following any cookbook approach won't improve
the definition of "best", and will only hinder appropriate responsiveness to
the complexity and unpredictability.

The reaction of many IS organizations
to this approach includes "we can't do that, everything will be out of control..."
and "our board of directors will never approve funding to build an undefined
product." However, that is exactly the way it is right now: out of control because
of the inability to respond to unpredictability, and the funding is for products
whose definition changes from the first day of the project.

As the divergence between those who
are succeeding with a Scrum-like development process and those who are failing
with SEI-CMM type processes increases, the heat of the argument is rising.

ADM and VMark have formalized the
Scrum process, based on packaged software vendor experiences, because they feel
that OO will suffer and possibly fail using the current development philosophy.

Scrum is applicable to new or existing
systems that use clean interface or objects and components. Scrum enables component
based development. Scrum tolerates on the job learning. As a matter of fact,
Scrum is a knowledge creating process, where tacit knowledge is created and
shared as work progresses. Collaborative teamwork ensures knowledge sharing
and creation.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: