Ken Schwaber
Position Statement
With all deference to Dr. Boehm, I don’t find the assertions posed for the workshop to be either correct or very interesting. Since the assertions are being used tos set the stage for the workshop, I question whether the workshop is of interest to me or the agile community.
The questions stated are:
·
Size - Agile development works
better for smaller teams and is more difficult for larger teams, e.g.
refactoring can be done only for small systems and great developers.
·
Architecture – Agile’s emphasis is on designing
for current needs, not for future ones. Therefore agile methods work best when
the future is unknown, and are less than optimal for projects in which future
requirements are known, e.g. Barry asserts that when requirements vary by less
than 1% per month, a plan-driven methodology might be a better choice over an
agile methodology.
·
Application area - Agile methods fit
applications that can be built quickly and don’t require extensive quality
assurance. Agile methods work may not be a prudent choice for critical,
reliable, and safe systems.
I find all of these assertions to demonstrate an
ignorance of agile processes and how they have been applied over the last eight
to ten years.
Questions much more interesting to me are:
Why do people persist in using defined methods
to try to build complicated systems and products? Despite every effort to
increase the level of definition to a point where successes increase, increased
definition has resulted in stifling creativity instead. Agile processes spring
from a completely different theoretical model in process control theory than
such traditional processes as waterfall, spiral, and even RAD. They employ
empirical processes based on frequent inspections, increments of product,
emergence, and self-organization. Agile is a paradigm shift.
Why does emergence work? Over and over again,
for large and small, user oriented and life-critical FDA systems, emergence of
requirements, architecture and design has worked, even when employed by normal
people. Why is this, and what role does complex adaptive system theory have to
do with it?
How do we get the business people and customers
to take over the system and product development process. We’ve made it so
complicated over the last twenty years that they don’t want to touch it. Agile
processes allow them to closely control and manage systems development. Yet
agile is a radical change to the way business is conducted now and will require
massive organizational change. How do we go about educating people and
fostering this change?