Page 202 -
P. 202

Chapter 6  •  agile Modeling and prototyping     169


                      Strategies for Improving          Implementation Using         Implementation Using
                    Efficiency in Knowledge Work       Structured Methodologies       Agile Methodologies

                   Reduce interface time and errors  Adopting organizational standards  Adopting pair
                                                   for coding, naming, etc.; using forms  programming

                   Reduce process learning time and  Managing when updates are released  Ad hoc prototyping and
                   dual processing losses          so the user does not have to learn and  rapid development
                                                   use software at the same time

                   Reduce time and effort to structure  Using CASE tools and diagrams; using  Encouraging short
                   tasks and format outputs        code written by other programmers  releases

                   Reduce nonproductive expansion  Managing project; establishing    Limiting scope in each
                   of work                         deadlines                         release
                   Reduce data and knowledge search  Using structured data gathering  Allowing for an onsite
                   and storage time and costs      techniques, such as interviews,   customer
                                                   observation, sampling
                   Reduce communication and        Separating projects into smaller  Timeboxing
                   coordination time and costs     tasks; establishing barriers
                   Reduce losses from human        Applying filtering techniques to  Sticking to a 40-hour
                   information overload            shield analysts and programmers   workweek


                                                                                                Figure 6.8
                 Systems developers also need to quickly access a program, enter the required information, and   How Davis and Naumann’s
                 retrieve it when it is needed again.                                           strategies for improving efficiency
                     Structured approaches encourage adopting standards for everything. Rules set forth include   can be implemented using two
                 items such as “Google Chrome will be the default on office desktops for browsing rather than   different development approaches.
                 Firefox.” They may be more detailed instructions to ensure clean data, such as “Always use M
                 for Male and F for Female,” thereby ensuring that analysts do not unthinkingly choose codes of
                 their own, such as 0 for Male and 1 for Female. These rules then become part of the data reposi-
                 tory. Forms are also useful, requiring all personnel to document their procedures so that another
                 programmer might be able to take over if necessary.
                     In an agile approach, forms and procedures work well too, but another element is added.
                 The additional practice of pair programming ensures that one programmer will check the
                 work of another, thereby reducing the number of errors. Pair programming means that own-
                 ership of the design or software itself is shared in a partnership. Both partners (typically one
                 a programmer, often a senior one) will say they chose a programming partner who desired
                 to have a quality product that is error free. Since two people work on the same design and
                 code, interface time is not an issue; it is an integral part of the process. Davis and Naumann
                 have noted that programmers are quite emotional when the topic of pair programming is
                 broached.

                 REDUCING THE PROCESS LEARNING TIME AND DUAL PROCESSING LOSSES.  Analysts and
                 programmers learn specific techniques and software languages required for the completion of a
                 current project. Inefficiencies often result when some analysts and programmers already know the
                 products used while others still need to learn them. Unfortunately, companies often ask systems
                 developers to learn new applications at the same time they are using these apps to build the system.
                 This on-the-job training slows down the entire systems development project considerably.
                     A traditional, structured project requires more learning. If CASE tools were used, an analyst
                 may need to learn the proprietary CASE tools used in the organization. The same applies to the
                 use of a specific computer language. Documentation is also a concern.
                     Using an agile philosophy, the ability to launch projects without using CASE tools and
                 detailed documentation allows analysts and programmers to spend most of their time on system
                 development rather than on learning specific tools.

                 REDUCING THE TIME AND EFFORT TO STRUCTURE TASKS AND FORMAT OUTPUTS.  Whenever a
                 project is started, a developer needs to determine the boundaries. In other words, the developers
   197   198   199   200   201   202   203   204   205   206   207