Every once in awhile a gem appears and you are able to afford to buy it, admire it and enjoy it. Ed Yourdon's newest book, Rise & Resurrection of the American Programmer , is one of those gems, in reality a polished diamond. This book builds on his previously outstanding book, the Decline and Fall of the American Programmer,
(Prentice-Hall, 1993). In that book, Yourdon espoused a rather "gloomy" and pessimistic assessment of the competitive posture of the American software industry in the global marketplace. In that book, he also proposed several key technologies that were vital to us if we were to succeed, "Silver Bullets" that can have an aggregate impact on software productivity and quality. Some of those concepts that he felt were key included Peopleware, the SEI's CMM, Software Methodologies, CASE,
Metrics, Software QA, Software Reusability, and Software Re-engineeing. But as he states in his preface, things change and in the past four years things have changed considerably.
The first chapter of the "Rise & Resurrection" is focused on that change and how the premises and ideas of the "Decline & Fall" have either fallen or changed significantly to allow us to have a much more optimistic perspective for our future. Some of the key premises are "rapidly disappearing" such as the ten-fold salary differentials between other countries and ours. The productivity and quality of the software products in developing countries and the Pacific Rim are not uniform and the productivity differences between high-productivity shops and low-productivity shops has increased from a ratio of 4:1 to 600:1 during the past decade. He addresses what customers want and also what potentially are the least important factors to them. This sets the foundation for what is to come.
In his "Decline & Fall", Yourdon summarized the critically important concept of "Peopleware". Peopleware continues to be his most important "Silver Bullet". Again, times have changed and some of the critical issues in Peopleware have evolved also. In DeMarco's and Lister's wonderful little book on Peopleware, (Dorset House, 1987) they discuss issues such as the furniture police and teamacide. These continue to be important, but today with downsizing, rightsizing, disestablishing, etc., other issues have cropped up that have taken precedence such as the "breaking of our social contracts" with our employees, "360" reviews and the "audition process" for selecting new staff. From my perspective, Yourdon is right on the mark, "Good people develop good software." and if we want to keep our good people we have to address the "Peopleware" issues.
Chapter 3 discusses the other Silver Bullets of his "Decline and "Fall". This is not a rehash, but a true reassessment of what is important today. Again the SEI's CMM continues to be important in his eyes, but with a critical concern that process is not everything. He addresses what he feels is an exaggerated concern with getting to CMM levels and the real possibility of stifling creativity and innovation. Another real change has occurred with respect to the use of object technology. In 1993, there was only a small use and knowledge of "objects". He estimated that only 3-4% of the developers in the world were using it in 1993. However, by the mid-1995, he estimates that the market share had risen to 15-20 % level, making it important for all of us to understand this technology better. It was also interesting to see his analysis on metrics. To quote him:
"I recommended metrics as a silver bullet in Decline and Fall of the American Programmer, and I still do. But it's obvious that most IT organizations haven't done much about the concept."
Its a shame and a waste that he is right on the mark. Metrics are
a key to improvement. As Watts Humphrey's often notes,
"If you don't know where you are, a map won't help."
In the next section of the book he discusses four new ideas, System Dynamics, Personal Software Processes, Best Practices and Good-Enough Software. In chapter 4 he discusses the ideas of system dynamics and the work of Tarek Abdel-Hamid of the Naval Postgraduate School. Yourdon points out that the CMM can help you get from Level 1 to Level 3, but to go from Level 3 onward you really should address system dynamic models and you need to address these as on-going investments. As in his "Decline & Fall", in this book Yourden introduces you to new ideas and he will provide you with plenty of references of where to get additional information. You will probably find as I did, that his reference sections and his Appendix "Updated Programmers Bookshelf" will be the most used items in the book after you have read it and tasted its delicacies.
I was personally excited to see his discussion on Watts Humphrey's Personal Software Process or PSP, Chapter 5. This chapter is really a summary of Humphrey's newest text. To quote Yourdon,
"This is definitely a book that you need to understand, and whose advice and guidance you need to follow."
There is no question to the many who have listened to Watts expound on this process at the SEI, that he is right. The PSP is probably going to have the biggest impact on how we perform in the future, more so than even the original CMM. The reason can be found in the fact that "Good people build good software". Chapter 6 focuses on Best Practices. This chapter is really a fascinating exposition on the DoD Software Best Practices Initiative that comes under the Software Program Managers Network under the able leadership of Norm Brown. Yourdon follows in the footsteps of the great bible commentators and provides a homiletic approach to bringing the best practices to life. I found this section to fully explain and expound on how the best practices were selected and how they will impact our lives. Critically important is the concept that best practices are not ideas and hypotheses, but the processes that we are currently using that work best. In our field, we are too quick to pick up on a new idea and to declare it to be a best practice, far too fast and before we have any hard results. Yourdon also states that what constitutes the "best practices" in your organization depends not only on the technology, but also on the culture, leadership style and politics. Interestingly, Yourdon ends the chapter with an analysis of the "worst practices". These may not be the worst, but they are certainly worth avoiding. Chapter 7 discusses what some may say is almost apostasy for a software engineer, "Good Enough Software". Good enough software allows us to make trade-offs between schedule, functionality (or "feature richness") and quality. Yourdon notes this is never easy, but it really has to be done. Like his other chapters, he provides plenty of good references of where to go next if you need to know more.
The final section of this gem is called "The Brave New World". In this section, Yourdon discusses Service Systems, the Internet, Java and the new Internet programming paradigm, the Microsoft paradigm and embedded systems. In the earlier part of the book, Yourdon discussed the key concepts that are of value to the people who build and maintain today's systems. In this section, he discusses his view of the future.
A true gem, polished, and a very worthy successor to his "Decline and Fall". Read it, study it, do it! I think you will really enjoy it. I did!