Datasheet

Telling Stories
11
Now, as the pace of software development continues to speed up, the rig
ors of Structured Analysis are often considered too time‑consuming. Various
ways of developing software have evolved to keep up with how software is
really being developed. These include Rapid Development, Agile, Extreme
Programming, and others. To be fair, most credible developers recommend
these less‑structured methodologies only when developers can work very
closely with their users and freely collaborate. Unfortunately, many projects
throw out Structured Analysis (and all analysis, really) without meeting these
conditions.
Most new methodologies include goodfaith efforts to gather and document
requirements. They describe various kinds of meetings or workshops that
produce nonnarrative artifacts representing requirements: charts, diagrams,
even Postits. These artifacts are all perfectly clear to everyone in the room
during the requirements meeting (except the guy who went to get snacks at
a crucial moment). The downfall of thesedocumentationlite” approaches
is that they assume everyone can understand the artifacts produced by the
minimal requirements‑writing process and also that the consequences of
building something that doesnt meet requirements can be easily rectified.
If you weren’t in the room when the consensus was reached (and perhaps
even if you were) you may not have the exact same understanding of what
is to be done as everyone else, and the artifacts may not communicate with
enough precision to resolve the ambiguity. Three years later when everyone
who worked on the last version has left the company (except the guy who
went to get snacks during the requirements meeting), there is no intelligible
record of what happened.
As software development becomes a global, commoditized process, require
ments documents are again becoming more critical. In today’s scattered work
place, teams are often separated by oceans. As outsourcing becomes the norm,
engineers are unhappily far away from their users and the close collabora
tion upon which many modern methodologies depend is often not possible.
Increasingly, people who need software have to write requirements documents
and send them to far‑off engineering groups.
The speed of analysis has not kept up with the speed of development, and
while programmers have been trained in legions around the world, we have
not developed an equivalent population with the skills required to analyze
and write requirements. Today we have an enormous need for this work, and
few people who can do it. Often the job is imposed on development managers
and project managers who lack training in analysis and communication. They
37001c01.indd 11 1/29/09 10:50:41 PM