http://www.dmst.aueb.gr/dds/pubs/Breview/2007-IEEESW-CodeCraft/html/Spi07m.htm This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:
|
Software Engineering for the Rest of Us
Diomidis Spinellis
Pete Goodlife, Code Craft: The Practice of Writing Excellent Code. No Starch Press, San Francisco, 2007.
Most software engineering books are written as textbooks. Geared at hapless students who typically don’t have a saying over their course’s content, they are often dry lists of term definitions and methodologies. Pete Goodlife’s “Code Craft” claims on the back cover to be “a survival guide for the software factory”. That it is, but it is also a brilliant software engineering book.
Software engineering is not an abstract academic topic. It is the body of knowledge that every developer should be familiar with and apply day in day out. Goodman starts his work from the point where rubber hits the road: code. He presents defensive programming, discusses presentation and naming, commenting, and error handling. He then moves on to what he calls the code’s secret life: tools, testing, debugging, build management, performance, and security. Only then does he discuss factors affecting the code’s shape: design, architecture, growth, and maintenance. The last three parts of the book cover less tangible and no less practical topics: programmer characteristics, teamwork, source control, specifications, code reviews, estimation techniques, methodologies, and specialized programming disciplines.
“Code Craft” is an ideal introduction to software engineering for both students and budding practitioners. Through its emphasis on coding, the activity that at the start of our career monopolizes our time and interest, it succeeds at imparting practical hands-on advice that we can immediately apply next time we’re in front of a keyboard. More advanced topics follow naturally, as issues that we inevitably stumble upon as we advance through our careers.
Academics looking for detailed references for every topic discussed won’t find them here. On the other hand, readers are guaranteed to understand every single paragraph, and will also get almost 100 pages answering the exercises appearing at the end of each chapter. If you’re asked to recommend a single book to a developer, “Code Craft” is a perfect candidate.