The Psychology of Computer Programming 10
The Psychology of Computer Programming (Silver Anniversary Edition) | |
author | Gerald M. Weinberg |
pages | |
publisher | Dorset House |
rating | 7/10 |
reviewer | Jason Bennett |
ISBN | 0-932633-42-0 |
summary |
In many ways, this is the book that started the "meta" trend in computer science. Most books that discuss the mental side of CS have their roots here. Unfortunately, that also means that you've heard it all before.
Background
Long time, no talk! Unfortunately, my reading schedule didn't exactly go as planned (for various and sundry reasons, like slackness), and thus my reviews have not been coming as fast and furious as before. It's good to be back in the saddle again, however, dispensing syrup and vitriol as required.
What's the book about?
The original preface to POCP says it best: "to trigger the beginning of a new field of study: computer programming as a human activity...." Before the original edition, most books viewed programming in a mechanical fashion, in terms of how better to turn a crank. Weinberg, however, deliberately took a different approach: programming is done by people, as part of a thought process, and should be studied as any other thought process. This book focuses on the people aspects of programming, and how people think about doing programming. It discusses how to study programming, how people work together on programming projects, how people program alone, and what tools people use to get their work done. In short, it discusses how people program, not how code is best churned out.
What's Good?
Even though this is the original book on programming psychology, Weinberg managed to hit most of the important facets of the subject. Now, 25 years and many books later, he has come back to the subject. The book itself consists of all of the original work, annotated with chapter-ending notes and reflections. In other words, you read the original chapter, and then Weinberg's thoughts on it. This is not unlike the anniversary edition of Mythical Man-Month, although there is much less new material here. As with most meta-books, the ideas have aged well. People don't change much over 25 years, even though their surroundings do. Egoless programming, the passing around of code for peer analysis, was pioneered in the original work, proven over the years, and still needs to be implemented in more ways. Generally, Weinberg introduces the entire field of computer psychology, laying the groundwork for an entire area of research.
What's Bad?
Well, to be perfectly honest, I didn't enjoy the book that much, at least in terms of enjoying the reading. I feel that I learned some things, but I don't think the book has aged well in certain areas, and additionally I felt that much of the material was covered elsewhere. MMM taught me things that I had never thought of before, and in fact have not been well covered elsewhere since then. Plus, there was a huge section analyzing the entire book. TPOCP, on the other hand, has pages and pages devoted to annoying PL/I details, while adding only a few blurbs here and there. Note that the ideas themselves are still important, there's just a lot to wade through to get to them. In addition, I think this material has been well covered by books such as Peopleware and others. The book is enough of a classic that nothing can be said to be "bad," but I question if it hasn't been superceded.
What's In It For Us?
It's always important to look at we do on a metaphysical level. Computer science and software engineering are some of the most non-physical work areas known, and because of that can be difficult to analyze. Whether you choose this book, or one of the others mentioned above, do read up on how people deal with programming. It's just as important, if not more so, than language syntax or new IDE's.
Purchase the book over at Computer Literacy.
Preface to the Silver Anniversary Edition
Original
Preface
Comments on the Original Preface
Suggestions for
Course Use
Part 1: Programming as Human Performance
- Reading Programs
- What Makes a Good Program?
- How Can We Study Programming?
Part 2: Programming as a Social Activity - The Programming Group
- The Programming Team
- The Programming Project
Part 3: Programming as an Individual Activity - Variations in the Programming Task
- Personality Factors
- Intelligence, or Problem-Solving Ability
- Motivation, Training, and Experience
Part 4: Programming Tools - Programming Languages
- Some Principles for Programming Language Design
- Other Programming Tools
Part 5: Epilogue
Index
No Subject Given (Score:1)
Weinberg's writing is deceptively simple (Score:1)
He writes so well that his points often seem deceptively obvious and simple. But often, when things haven't gone well, I think back to a point from one of his books and realized that I'm suffering because I hadn't absorbed one of his "obvious" lessons well enough to act on it.
This anonymous coward is Tom Morrisette, eiffelpgmr@nni.com.
Starting points (Score:1)
Whether you're working solo or on a mega-project "Becoming a Technical Leader" is a good start if you're looking for practical advice on how you can be more effective.
Jerry's "Quality Software Management" series (four volumes) is a treatise on the inner game of projects. You'll come away with a deeper understanding of why things happen the way they do, and where the leverage points to make things happen differently.
Jerry also runs some outstanding
workshops on Technical Leadership.
There is more info on his web site, http://www.geraldmweinberg.com
Dave Smith
dws@best.com
Good bibliography: Code Complete (Score:1)
Despite the irony of being published by Microsoft, this really is quite a solid book. It's the best of the three titles produced by McConnell (others are Rapid Development and Software Project Survival Guide). McConnell maintains related information at his web site [construx.com].
Egoless programming is evil. (Score:1)
Egoless programming is possibly the stupidest thing I've ever heard of. Sure, it gets rid of the problem of people being offended when 'their' code goes wrong, but it also removes all the pride in a job well done, (Hubris, one of Larry Wall's three cardinal properties of good programmers.)
If it's not my code, I don't feel as obligated to get it done right, since it's not my pride on the line.
Still relevant (Score:2)
Look at most IDEs -- they're focused on getting clickable GUI controls on the screen. Testing? HAH! Testing is for those "ivory tower academics", right? No one cares if the code works.
It also doesn't help that most managers haven't heard of titles like TPOCP, MMM, and Peopleware. They are under the impression that managing a team of programmers is like managing a McDonald's.
[Bitter? Me? No!]
This Book is great! Glad its back in print (Score:1)
I thought when I took programming courses in college that TPOCP would be a core text, but no such luck.
The profs must not have thought psychology was relevant to software devlopment.
Or maybe (irony alert) they thought teaching the concepts in TPOCP was a waste of time.
Now that I am out in the real world, I find that very few computer "professionals" and even fewer manager types have even heard of TPOCP.
That's a shame because it contains ideas that, if taken to heart, usually lead to faster development, better code and fewer bruised egos.
I have been shocked to see local libraries and used book stores selling copies of TPOCP for $.10 or throwing/giving it away.
I scarf them up and give them away to friends and anyone who complains about the difficulty of collaboration with others.
Hurray for the publisher that decided to take a chance and put TPOCP back into print.
Now if I could just get the guy in the next cube to read it...
Still relevant (Score:2)
The software industry still has very little understanding of how software is actually created. That contributes to the constant schedule slipping and buggy releases.
This book could have helped to solve the problem. Unfortunately, it turned out to be just a voice in the wilderness. Perhaps this new edition will help remind people that the problems of 25 years ago are still with us today.