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
   73   74   75   76   77   78   79   80   81   82   83