![]() |
Site Archive (Complete) | |||
|
ABOUT US |
CONTACT |
ADVERTISE |
SUBSCRIBE |
SOURCE CODE |
CURRENT PRINT ISSUE |
NEWSLETTERS
|
RESOURCES
|
BLOGS
|
PODCASTS
|
CAREERS
|
||||
April 01, 2006
Emergency Exit BooksWarren Keuffel
Suppose your office caught on fire and you only had time to grab three books from your technical library? Which three would you choose?
Software Development Suppose your office caught on fire and you only had time to grab three books from your technical library? Which three would you choose? This is the question I recently posed to some of my colleagues.
Proving that great minds think alike, a similar question was submitted to members of the Association of Computing Machinery (ACM), but which specified that nominated books must be out of print. Although winners of the ACM poll are still being tabulated, the scope of that poll revealed a vast breadth of definitions for "classic." Submissions ranged from universal classics such as Knuth's multivolume Art of Computer Programming to reference manuals for the Commodore 64 and the Burroughs B5500, underscoring once again that one person's trash is another's treasure. All in all, the ACM members submitted 403 out-of-print nominations and 171 titles that were disqualified because they are still in print. My mini-survey, while more modest in size, may prove to be more valuable in its focus.
SD contributing editor Larry O'Brien chose books that, "are ones that I use on those fortunately rare occasions when an argument devolves into an appeal to authority." On his list are the Gang of Four's Design Patterns (Erich Gamma et al., Addison-Wesley, 1995); Marciniak's Encyclopedia of Software Engineering (Wiley, 2002); and DeMarco and Lister's Peopleware: Productive Projects and Teams (Dorset House, 1999.)
While I haven't often had to reference the Encyclopedia, I was profoundly impacted by the simple truths found in Peopleware, which are so often ignored by the cubicle police of corporate America. Larry's choice is mine as well, so it becomes the first of my selections.
Data modeling and enterprise architecture guru Dave Hay, president of Essential Strategies, lists Ashby's Introduction to Cybernetics (Routledge, Kegan, and Paul, 1964); Beer's The Heart of Enterprise (Wiley, 1979); and Gane and Sarson's Structured Systems Analysis (Mcdonnell Douglas Information, 1977). The first two were new to me. Ashby was one of the founders of Systems Thinking, and although it is out of print, a free e-book version is available from the Principia Cybernetica Project (http:// pespmc1.vub.ac.be). Beer focuses on organizational behavior.
Although Hay would choose Gane and Sarson for his emergency kit, I would move up a level and choose McMenamin and Palmer's Essential Systems Analysis (Yourdon Press/ Prentice Hall, 1984) as my second choice. Building on the prior work of Constantine, Yourdon, DeMarco, and others (including Gane and Sarson), McMenamin and Palmer refined structured analysis techniques to help you define the essence, the core requirements, of a system by first building a system model using "perfect technology." Once those requirements are captured, the real-world limitations of imperfect technology can be introduced in the system's incarnation. It's fashionable among the object-oriented crowd to dismiss structured analysis, but if you're capturing requirements, you ignore McMenamin and Palmer's insights at your peril.
Larry Bernstein, author and professor at New Jersey's Stevens Institute of Technology, wants us to never forget that Fred Brooks' The Mythical Man-Month (Addison-Wesley, 1995) "lays out the fundamentals of software project management in a delightful and readable way." In addition to Boehm's Software Engineering Economics (Prentice Hall, 1981), he also recommends Practical Strategies for Developing Large Software Systems (Addison-Wesley, 1975). Bernstein considers this work, edited by Ellis Horowitz, to be "the seminal software engineering book" that anticipates model-based software development.
Rick Wayne, SD's New and Noteworthy Editor, would first grab Thomas and Hansson's Agile Web Development with Rails (Pragmatic Bookshelf, 2005), followed by one of the "seminal agile development texts," such as Martin's Agile Software Development: Principles, Patterns and Practices (Prentice Hall, 2002) or Highsmith's Adaptive Software Development: A Collaborative Approach to Managing Complex Systems (Dorset House, 1999.) DeMarco and Lister's writings have fundamentally affected Rick, as well, although his choice for the emergency kit is their Waltzing With Bears: Managing Risk on Software Projects (Dorset House, 2003) because it "forever changed my view of risk management from 'excuses for wimps' to 'strategy for the courageous'."
Next month, I'll conclude this survey of books for your emergency kit. Write me at warren@warrenkeuffel.com, and if you're interested in reading more about the topics I discuss in this column, visit www.warrenkeuffel.com.
|
|
||||||||||||||||||||||||||
|
|