Review:Rise & Resurrection of the American Programmer
Decline and Fall
In the beginning of this decade, Edward Yourdon wrote Decline and Fall of the American Programmer, a pessimistic assessment of the American software industry in the global marketplace. I haven't read that book, but Ed conveniently summarizes it in the first chapter of this book.
His premise was simple: North American programmers are more expensive, less productive, and produce lower quality software than programmers elsewhere in the world. Therefore, he argued, competitive forces will drive them into extinction. He backed this up with a battery of data, figures, case studies, and anecdotal evidence.
This was apparently a wake-up call. After all, Ed wasn't merely an ignorant consultant. Rather, with 35 years in the industry, he had programmed mainframes and helped to invent structure design methodology. People listened to him.
Rise and Resurrection
But something happened during the first half of this decade. Not all of Ed's predictions came true; not all software development migrated to Bangalore, India; not all American programmers fell off the evolutionary ladder.
This book, Rise and Resurrection of the American Programmer, was written mid-decade to reexamine the situation then. Remember 1995? The web was just taking off, Microsoft Windows 95 was just released, Java was just beta, and Linux was just a hacker's toy.
Now the decade is closing, Ed is focusing on Y2K issues, and I've just finished reading this book. Some of Ed's views have dated, and some remain relevant. I'll try to enumerate a few of them here.
Java and the Internet
Ed stressed the importance of corporations embracing the internet. After all, he argued, competitors will. This has turned out to be correct. He also was extremely enthusiastic about Java, which wasn't even shipping when he wrote the book. Although most of the chapter explains the language and environment, and ends up sounding like a Sun white paper, one interesting nugget is Ed's suggestion that Microsoft may simply "embrace and assimilate" Java for themselves.
The Microsoft Paradigm
Let's be frank; Microsoft is quite successful, and does some things right. Ed dissects the corporation and comes to several conclusions. With section headings such as "The Dark Side of the Force" and "Into the Belly of the Beast," this chapter acknowledges public sentiment and should interest most Slashdot readers. But Ed concludes that Microsoft's hackers are growing up, and the corporation's powerful position will be difficult to assault.
Linux and Open Source Software
Ed pretty much missed this one. I didn't see any mention of Linux, hardly a blip on the radar when this book was written. Curiously, I also didn't see any mention of open source software, a wider concept that has been around for decades.
The closest hint I saw of the rising phenomenon was regarding Java's ability to change the economics of paying for software. Ed suggested that downloadable applets and web interaction make it possible to sell a "one-time usage" of software components, which could threaten existing software vendors with monolithic products.
An Enjoyable Read
At just over 300 pages, this book covers quite a few topics. I thought the chapters on peopleware and good-enough software were quite well done. Other chapters spurred me to learn more about the Capability Maturity Model and Personal Software Practices.
Ed is a frank and readable writer, and the book is quite digestible. It's fun to read recent predictions and analyze where they went wrong, and right (remember, hindsight's 20/20!). The book is almost a time capsule of the mid-nineties, which coincidentally being when I started working with computers in earnest was a refreshing read for myself. I think it will be for you as well.
Ed's web site is at www.yourdon.com.
Buy this book here.
TABLE OF CONTENTS
Preface
Trademark Acknowledgements
Part One: Decline & Fall Reexamined
1. The Original Premise
2. Peopleware
3. The Other Silver Bullets
Part Two: Repaving Cowpaths
4. System Dynamics
5. Personal Software Practices
6. Best Practices
7. Good-Enough Software
Part Three: The Brave New World
8. Service Systems
9. The Internet
10. Java and the New Programming Paradigm
11. The Microsoft Paradigm
12. Embedded Systems and Brave New Worlds
13. Past, Present, and Future
Appendix: An Updated Programmer's Bookshelf
Index
Being one, and having been trained with others, I can say that many of the newly graduating programmers are ill equipped. Too many people are taking up programming with an eye solely on money. That's all I ever heard classmates talk about before class... "I'm gonna make 60K / I'm gonna make 100K / This guy I know makes $x / etc." They learn enough to pass their classes (make a small database and a card game, or something), and get hired by people who know less than them. Apathy does not make good code, nor does an eye on your next raise.
Obviously, there are some damn good American programmers, but the rest of us could be better. I imagine that anyone reading this is pretty good (or at least trying), as it shows the personal initiative of reading information on your field, but how many others just toe the line for a check? If those "programmers" end up losing out to better foreign programmers, that's their own fault. Would you rather have the air traffic control software for your flight be programmed by a shoddy textbook American or a foreigner who takes great pride in his work? Regardless of nationality, we all need to constantly assess ourselves. It's our skills that make us valuable, not our nationality.
Predictions of massive loss of American jobs to foreign programmers reminds me of people constantly saying how America's poor educational system was going to cause us to fall behind competitors in Japan and Europe, whose students dramatically outperform US students in international comparisons. But guess what, the US is holding its own just find with Europe and Japan, despite an entire generating of people growing up in our supposedly third rate education system.
What I think these analyses fail to take into account is how American culture makes up for a lot of things. Americans have a more anti-establishment, anti-authoritarian outlook than people in most other countries. I think this tends to lead to more questioning of the current ways of doing things and thus a lot of innovation (Java being a great example from this book). Americans have certainly been heavily involved in most major software innovations. Additionally, America is very socially mobile, and has a culture that encourages people to take risks by starting busiesses, or jumping to a startup in the hopes of long hours and quick bucks. America is also fixated on freedom and rights so it should surprise no one that the "free software" movement had much of its genesis in America. In short, people in some other countries might be able to reguritate facts on an exam better than we can, but we've got a few qualities of our own that can make up (in some cases more than make up) for that.
The above paragraph is not meant to suggest that other countries are filled with sheep satisfied with their lot in life and with no ambition or mobility. I'm only saying that the elements I highlighted are more prevalent in America than elsewhere (which is something that many promient scholars agree with, BTW).
Well, Yourdon is always right. Actually he says that in his book, with examples. Prediction is a hard thing.
A lot of the book isn't about prediction. It's about bettering yourself and your company. For example, by using best practices, or reading books on your own if your company won't train you.
The book is a light and interesting read, even if it gets somethings wrong. Even in the opinion section, I don't agree with it all. And it is several years old, so has more historic than practical value right now.
Personally, having only entered this industry in the mid-nineties, I missed the whole IBM/COBOL/decline thing in favour of the Linux/Java/resurrection thing. And I'm not even American.
Actually, the more I think about it I'd give it a 7/10, simply because I don't think it rates as highly as More Effective C++ and wish to be internally consistent with my ratings.
--
Marc A. Lepage
Software Developer
I dont see a need to distinguish between American and ,say, Finish programmers. When you become a programmer, you enter a culture that trancends the globe. You might be a citizen of country X or country Y, but if you program, your culture is one culture. Why do you think Linux is so good, because this culture has come together in one of its first collective, cross national efforts. Linux demonstrates the strength of these ties, despite great distances, and language barriers. Lets face it, when you program, you speak a common language. Granted, you might speak a dilect like C or Fortran, or whatever, but the roots of the language are the same. Programming is the tie that binds :)
-Master Switch, one more element in the machine