Datasheet
would have learned how ponderous the methodology can be. No one wanted
to wade through hundreds of pages of principles, rules, and flow diagrams.
And if anyone did, they’d read about rigid systems — systems that encourage
programmers to follow fixed procedures — systems that don’t encourage
programmers to listen, to adjust, or to change.
Agility
In 2001, a group of practitioners created the Manifesto for Agile Software
Development
(www.agilemanifesto.org). The Manifesto’s signatories
turned their backs on the methodologies of the past. Instead, they favored a
nimble approach. Their principles put “individuals and interactions over
processes and tools,” and put “responding to change over following a plan.”
Best of all, they declared that “Simplicity — the art of maximizing the
amount of work not done — is essential.” According to these practitioners,
the proof of the pudding is in the result. A process that doesn’t end in a
worthwhile result is a bad process, even if it’s an orderly, well-established
process.
The Agile Manifesto’s signatories aren’t opposed to the discipline of software
engineering. On the contrary, they believe firmly in the science of software
development. But they don’t believe in unnecessary paperwork, required
checklists, and mandatory diagrams. In other words, they don’t like horse
puckey.
Databases and the World Wide Web
By 2001, many businesses faced an enormous problem. Computers were no
longer islands unto themselves. Customers visited Web sites, ordered goods,
read headlines, updated records, posted comments, and downloaded songs.
At one end was a Web browser; at the other end was a database. In between
was lots of network plumbing. The problem was to move data from the browser
to the database, and from the database to the browser. The movement must
be efficient, reliable, and secure.
Imagine millions of people working on the same problem — moving data
between a Web browser and a database. If everyone works independently,
then millions of people duplicate each others’ efforts. Instead of working
independently, why not have people build on other people’s work? Create a
software framework for connecting Web browsers to databases. Provide hooks
into the software so that people can customize the framework’s behavior.
An online order system uses the framework one way, and a social networking
site uses the framework in its own, completely different way.
12
Part I: Nuts and Bolts
05_081204 ch01.qxp 11/30/06 11:09 PM Page 12