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