Agile Attitudes- The Essence of Agile - Empirical Process vs. Defined Process

agileattitudes at agilerules.com agileattitudes at agilerules.com
Mon Jul 25 22:09:26 EDT 2005


Agile Attitudes
Volume 2, Issue 08                                    July 25, 2005
                 A free bi-weekly email newsletter
                        Brought to you by
                     Agile Rules consulting
                       www.agilerules.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Welcome to Agile Attitudes, a newsletter of ideas, insights and
technical tips that help people find better ways to develop
software. Feel free to share this with anyone - just be sure you
send or print the whole thing, including the copyright notice.

Directions for managing your subscription are below.

                         O><O><O><O><O><O
Agile Rules will be presenting a tutorial on TDD for Embedded
Software development at the upcoming Agile 2005 Conference in Denver
tomorrow on July 26.

We presented a short version of this tutorial at the last
Agile Bazaar meeting on July 14 at Tufts. 

Agile related meetings and other events in the Boston area are
discussed on the Agile Bazaar email list. For info see:
http://groups.yahoo.com/group/AgileBazaar/

                         O><O><O><O><O><O
If you would like to receive an email as soon as we know of
an event in the Boston area of interest to the agile software
community, you can sign up for the announcements list at
http://www.agilerules.com/mailman/listinfo/agileannounce

                         O><O><O><O><O><O

The Essence of Agile - Empirical Process vs. Defined Process

                by Nancy Van Schooenderwoert

In software development there are two choices: either you plan your
project thoroughly or you just "wing it". Right? I used to think so, but
not any more. There is a third alternative.


In the world of industrial process control there are two major
approaches to controlling any process " the "defined" process control
model and the "empirical" model. The defined model is what you are using
when you attempt to thoroughly plan a software project. "Winging it" is
just another word for chaos. So that leaves the empirical process
control model " what is that?


Empirical process control is the essence of all agile methodologies. It
expects the unexpected. In defined process control, every piece of work
must be completely understood. Given a well-defined set of inputs, the
same outputs are generated every time. Given clear, stable requirements
and well-understood technologies, a software project can be predicted.
But when do we ever see those preconditions?


Empirical process control is used in situations where the inputs are
varying, and the process is too complex to produce repeatable outputs.
Frequent inspection and adaptation is used to control such processes.


In his book "Agile Software Development with Scrum", Ken Schwaber
describes how he tried using defined software process methods in his
software company with very unsatisfactory results. He met a group of
leading process theory experts at DuPont, and described his problem to
them. As Ken tells it: "They inspected the systems development processes
I had brought them. I have rarely provided a group with so much
laughter. They were amazed and appalled that my industry, systems
development, was trying to do its work using a completely inappropriate
process control model. They said systems development had so much
complexity and unpredictability that it had to be managed by a process
control model they called 'empirical'. They said this was nothing new,
and all complex processes that weren't completely understood required
the empirical model."


This was a turning point for Ken. He realized what was so wrong in the
software industry " "we were wasting our time trying to control our work
by thinking we had an assembly line when the only proper control was
frequent and first-hand inspection, followed by immediate adjustments."


On first hearing about agile software practices, many people wrongly
assume that it's just a form of "winging it" since it certainly is
different from the defined process control method. Nothing could be
further from the truth. Empirical control is a completely legitimate,
disciplined way to control a complex process like software development.
When you use a defined approach to control software development, you go
too far on assumptions in an attempt to plan sufficiently. You get a
false sense of security. Now you know what we meant last time when we 
said that your "plan" will build nothing but a house of cards.


                         O><O><O><O><O><O
More articles on Agile software topics at http://www.agilerules.com
Within our company we have a sub-specialty in embedded systems.
Our site has articles on embedded XP and we support a discussion
list focused on the use of agile methods for building embedded
software. The list signup info is at
http://www.agilerules.com/mailinglists.phtml

                         O><O><O><O><O><O
To help you get started with in-depth research into Agile Attitudes
topics, we have added a Library section to our web site at
http://www.agilerules.com/library.phtml
Order using our links and receive discounts up to 30%!

                         O><O><O><O><O><O
If you enjoyed this issue or found it useful, forward it to a
friend! Help spread the word about better ways to build software.
Invite your friends and colleagues to join our growing reader
community at http://www.agilerules.com/mailinglists.phtml

                         O><O><O><O><O><O
Looking for a speaker for your next corporate or society meeting?
We present dynamic, informative programs on topics of interest
to managers and technical staff in their transition to more
flexible, robust ways to create software.

                         O><O><O><O><O><O
Want to reprint this issue in your company or society newsletter?
For permission to reprint any of the articles, contact us at
info at agilerules.com.

                         O><O><O><O><O><O

Your feedback is welcome! Send feedback to info at agilerules.com

To manage your subscription:
http://www.agilerules.com/mailman/listinfo/agileattitudes

                         O><O><O><O><O><O
            Brought to you by Agile Rules consulting
              162 Marrett Road, Lexington MA 02421

              Copyright (c) 2004, 2005 Agile Rules
                       info at agilerules.com

                         O><O><O><O><O><O
Privacy notice: We will not release a subscriber's address to any
third party for any reason. This is a strictly opt-in newsletter.
No one is ever subscribed without their explicit request.



More information about the AgileAttitudes mailing list