Page 195 -
P. 195

162     part 2  •  inforMation requireMents analysis

                                             The agile philosophy, however, allows an analyst to adjust the quality resource and per-
                                         haps put less effort into maintaining quality than otherwise would be expected. Quality can be
                                         adjusted both internally and externally. Internal quality involves testing software for factors such
                                         as functionality (Does a program do what it is supposed to do?) and conformance (Does the
                                         software meet certain conformance standards, and is it maintainable?). It usually doesn’t pay to
                                         tinker with internal quality.
                                             That leaves us with external quality, or how the customer perceives the system. The cus-
                                         tomer is interested in performance. Some of the questions a customer may ask are: Does the pro-
                                         gram act reliably (or do software bugs still exist)? Is the output effective? Does the output reach
                                         me on time? Does the software run effortlessly? Is the user interface easy to understand and use?
                                             The extreme philosophy of agile development allows some of the external quality issues to
                                         be sacrificed. In order for a system to be released on time, the customer may have to contend with
                                         some software bugs. If we want to meet our deadline, the user interface may not be perfect. We
                                         can make it better in a follow-up version.
                                             Commercial off-the-shelf software manufacturers do sacrifice quality, and it is debatable
                                         whether this is a good approach. Developers may be using extreme programming as one of their
                                         agile practices, so don’t be surprised when your PC software applications (not to mention your
                                         operating system and Web browser) are updated often.
                                         SCOPE.  Finally, there is scope. In the agile approach, scope is determined by listening to
                                         customers and getting them to write down their stories. Then the stories are examined to see
                                         how much can be done in a given time to satisfy the customer. Stories should be brief and
                                         easy to grasp. Stories will be described in more detail later in this chapter, but here is a brief
                                         example showing four short stories from an online air travel system. Each story is shown in
                                         bold type:
                                         Display alternative flights.
                                             Prepare a list of the five cheapest flights.
                                         Offer cheaper alternatives.
                                             Suggest to customers that they travel on other days, make weekend stays, take special pro-
                                             motions, or use alternate airports.
                                         Purchase a ticket.
                                             Allow the customer to purchase a ticket directly using a credit card (check validity).
                                         Allow the customer to choose his or her seat.
                                             Direct the customer to a visual display of the airplane and ask the customer to select
                                             a seat.

                                             Ideally, the analyst would be able to determine how much time and money is needed to
                                         complete each of these stories and would be able to set the level of quality for them as well. It
                                         is obvious that this system must not sacrifice quality, or credit card purchases may be invalid or
                                         customers may show up at the airport without reservations.
                                             Once again, agile practices allow extreme measures, so in order to maintain quality, manage
                                         cost, and complete a project on time, an agile analyst may want to adjust the scope of the project.
                                         This can be accomplished by agreeing with the customer that one or more of the stories can be
                                         delayed until the next version of the software. For example, maybe the functionality of allowing
                                         customers to choose their own seats can be put off for another time.
                                             In summary, an agile analyst can control any of the four resource variables of time, cost,
                                         quality, and scope. Agility calls for extreme measures and places a great deal of importance on
                                         completing a project on time. In doing so, sacrifices must be made and the agile analyst will find
                                         out that the trade-offs available involve difficult decisions.
                                         FOUR CORE AGILE PRACTICES.  Four core practices markedly distinguish the agile approach from
                                         other approaches: short releases, the 40-hour workweek, hosting an on-site customer, and using
                                         pair programming:

                                           1. Short releases means that the development team compresses the time between releases
                                             of the product. Rather than release a full-blown version in a year, using the short release
   190   191   192   193   194   195   196   197   198   199   200