Page 78 - DCAP405_SOFTWARE_ENGINEERING
P. 78
Unit 5: An Agile View of Process
Are there organizations practicing adaptive development? I would offer Microsoft as an example Notes
of a company that excels because its management style exemplifies adaptive development.
Notes For all the techniques and practices discussed in books like Microsoft Secrets, we
believe Microsoft prospers because at the core of these practices lies the abandonment of
determinism and an embrace of the messiness of speculation — collaboration — learning.
Through the Lens of Adaptive Software Development
The lens of ASD offers a different perspective on software management practices. The following
is a brief examination of two of these, quality and RAD, both of which have ramifications for
gathering requirements.
Do it Wrong the First Time
Using our new lens, let us look at the current state of software quality management practices
epitomized by the phrase “Do it right the first time.” In a complex environment, “Do it right the
first time” is a recipe for failure.
First, how can we predict what right means? In the early stages, if the delivery time horizon isn’t
too far out, we may be able to speculate on what the generally correct direction is, but defining
“right” borders on fantasy. Even if we could define right, doing it the first time makes no sense
for other than trivial products. The first time assumes we understand the cause and effect, the
specific algorithm of getting to the final product from our initial starting position, and the needs
of all stakeholders — it says we know it all.
RAD Practices: A Step in the Right Direction
RAD practices generally involve some combination of the following:
Evolutionary life cycle
Customer focus groups, JAD sessions, technical reviews
Timeboxed project management
Continuous software engineering
Dedicated teams with war rooms
Most RAD projects I’ve been associated with over the last five years have had an adaptive,
emergent flavor. More recently, as my practice has focused on speculating and establishing
collaborative environments, emergent characteristics have become even more pronounced.
RAD is an anathema to many IT organizations. It works, but many would prefer it did not. Their
defense is to label RAD as “hacking” and/or to relegate it to small (and by implication relatively
unimportant) development projects. But Microsoft and others have produced incredibly large
and complex software using techniques comparable to RAD. RAD is scary to traditional
organizations because it raises questions about their fundamental world view.
Example: RAD practices and the Microsoft process are both examples of adaptive
development in action. Giving them a label (i.e., adaptive development) and realizing there is
a growing body of scientific knowledge (i.e., CAS theory) that begins to help explain why they
work should provide a basis for more extensive use of these practices.
LOVELY PROFESSIONAL UNIVERSITY 71