Page 44 -
P. 44

ChaPter 1  •  SyStemS, roleS, and develoPment methodologieS     11

                     Visible Analyst (VA) is one example of a CASE tool that enables systems analysts to do
                 graphical planning, analysis, and design in order to build complex client/server applications and
                 databases. Visible Analyst and software products like Microsoft Visio or OmniGraffle allow
                 users to draw and modify diagrams easily.
                     Analysts and users alike report that CASE tools afford them a means of communication
                 about the system during its conceptualization. Through the use of automated support featuring
                 onscreen output, clients can readily see how data flows and other system concepts are depicted,
                 and they can then request corrections or changes that would have taken too much time with older
                 tools. CASE tools can also help support the modeling of an organization’s functional require-
                 ments, assist analysts and users in drawing the boundaries for a given project, and help them
                 visualize how the project meshes with other parts of the organization.


                 The Agile Approach

                 Although this text tends to focus on SDLC, the most widely used approach in practice, at
                 times an analyst will recognize that his or her organization could benefit from an alternative
                 approach. Perhaps a systems project using a structured approach has recently failed, or per-
                 haps the organizational subcultures, composed of several different user groups, seem more in
                 step with an alternative method. We cannot do justice to these methods in a small space; each
                 deserves and has inspired its own books and research. By mentioning these approaches here,
                 however, we hope to help you become aware that under certain circumstances, your organiza-
                 tion may want to consider an alternative or a supplement to structured analysis and design and
                 to the SDLC.
                     The agile approach is a software development approach based on values, principles, and
                 core practices. The four values are communication, simplicity, feedback, and courage. We rec-
                 ommend that systems analysts adopt these values in all projects they undertake, not just when
                 adopting the agile approach.
                     In order to finish a project, adjustments often need to be made in project management. In
                 Chapter 6 we will see that agile methods can ensure successful completion of a project by adjust-
                 ing the important resources of time, cost, quality, and scope. When these four control variables
                 are properly included in the planning, there is a state of balance between the resources and the
                 activities needed to complete the project.
                     Taking development practices to the extreme is most noticeable when one pursues practices
                 that are unique to agile development. In Chapter 6 we discuss four core agile practices: short
                 releases, the 40-hour workweek, hosting an onsite customer, and using pair programming. At
                 first glance these practices appear extreme, but as you will see, we can learn some important
                 lessons from incorporating many of the values and practices of the agile approach into systems
                 analysis and design projects.

                 Developmental Process for an Agile Project
                 Activities and behaviors shape the way development team members and customers act during
                 the development of an agile project. Two words that characterize a project done with an agile
                 approach are interactive and incremental. By examining Figure 1.5, we can see that there are
                 five distinct stages: exploration, planning, iterations to the first release, productionizing, and
                 maintenance. Notice that the three red arrows that loop back into the “Iterations” box symbolize
                 incremental changes created through repeated testing and feedback that eventually lead to a sta-
                 ble but evolving system. Also note that there are multiple looping arrows that feed back into the
                 productionizing phase. These symbolize that the pace of iterations is increased after a product
                 is released. The red arrow is shown leaving the maintenance stage and returning to the planning
                 stage, so that there is a continuous feedback loop involving customers and the development team
                 as they agree to alter the evolving system.

                 Exploration.  During exploration, you will explore your environment, asserting your conviction
                 that the problem can and should be approached with agile development, assemble the team, and
                 assess team member skills. This stage will take anywhere from a few weeks (if you already know
                 your team members and technology) to a few months (if everything is new). You also will be
                 actively examining potential technologies needed to build the new system. During this stage you
   39   40   41   42   43   44   45   46   47   48   49