Rating: Summary: Rereading Weinberg Review: I bought this book in 1972 (it set me back almost ten bucks!) and read it cover to cover in a single night.Weinberg spoke to the human situation of programming and as a very young programmer I found the book excellent. However, I have seen his ideas systematically distorted in practice. The idea of programmer "humility" is all very well: but our society does not reward the humble, and the notion that one must be humble has transformed software developers from the uppity hippies of the early 1970s to a class of neo-monks, laboring to illuminate the sacred texts of a society that is obsessed, not with humility, but with power and control. As Weinberg was well aware and retails in his book, "structured programming" has a definite mathematical meaning that was proven by two Italians in the 1960s: the result was that you can write any conceivable program using a surprisingly small set of logical patterns. However, the phrase "structured programming" has in fact been generalized by both programmers and their managers. "That's not structured" means in practice "I don't understand it." It has been inappropriately generalized to apply to programmers and has been used as a term of art by those who would discriminate on the basis of age. In the artistic arena, deliberate introduction of new paradigms is usually benign. The Dutch artist Piet Mondrian gained great power in his art by limiting himself to what be considered "structured painting", for in his mature style, Mondrian refused to use other than lines at right angles and primary colors. In the purely scientific arena, parsimony is also benign. Donald Knuth, in commenting on the Dutchman Edsger Dijkstra's advocacy of structured programming, made a fascinating comparision to the intuitionist mathematics of the Dutch Brouwer, which refuses to use the law of excluded middle. (Who let all these Hollanders in here, one might well ask. While Amsterdam is a byword for freedom among flaming youth in America, Dutch parsimony is a more attractive characteristic. Their national anthem itself (William of Nassau) celebrates William the Silent's refusal to renounce vassal status to the King of Spain, and his stand for ancient feudal rights. The Dutch are an interesting bunch of people.) But in the political arena, parsimony in particular and the deliberate, forced introduction of a paradigm shift becomes ideology which as Eagleton and Barthes have shown can become myth. The most famous example is Marxism which over a period of about 130 years morphed from science to ideology to Stalinist religion to (perhaps) the scrap heap. In 1974, as a programmer, I was reminded by the early debates of how to program in structured Cobol of both my art school mates and my political confederates in the late 1960s. When parsimony and paradigm shifts become commercial methodologies, as did structured programming under Ed Yourdon and others, the open question becomes, is the result benign (as in the minor debates between Mondrian and Theo Van Doesburg, another Dutch artist, over diagonal lines) or closer to Stalinism? Unfortunately, the latter is true. In somewhat the same way Marx was deliberately misread, the mathematical results of structured programming were used so loosely by data processing apparatchiks that the science became a science of surveillance and control.
Rating: Summary: I was disappointed Review: I've read dozens of books in this area; I was disappointed with this book. A lot of the material is dated (and I'm not interested in learning PL/1 and JCL). The author has some interesting ideas, but not a lot of hard data (he does have some hard data, just not a lot of it). Peopleware and Mythical Man Month are a better books in this area. This book goes on my give-away list.
Rating: Summary: Still great after all these years Review: If you need to inspire creative, independent people to work together, you'll learn a lot from this book. Smart, sensible, and non-obvious desc riptions of what makes a good team.
Rating: Summary: I was disappointed Review: Not quite a review. Hope this isn't too badly out of place. The original edition of this book is still high on my list of professional references. Though the hardware is dated early in the mainframe era, the personal situations are as true today as they were then. I have cited Weinberg's examples on countless occasions during the past 25 years--the new kid on the programming team who knew better than the plodding old folks, the guy who patched into another part of the code and rewrote it his way because he thought he could do it better than the person who had gotten that part of the job, the value of still having somebody around who remembered what was happening back when the original work was performed, many more ... . Can't wait to read this new edition!
Rating: Summary: A hopeful preview Review: Not quite a review. Hope this isn't too badly out of place. The original edition of this book is still high on my list of professional references. Though the hardware is dated early in the mainframe era, the personal situations are as true today as they were then. I have cited Weinberg's examples on countless occasions during the past 25 years--the new kid on the programming team who knew better than the plodding old folks, the guy who patched into another part of the code and rewrote it his way because he thought he could do it better than the person who had gotten that part of the job, the value of still having somebody around who remembered what was happening back when the original work was performed, many more ... . Can't wait to read this new edition!
Rating: Summary: A timeless way to build software Review: One of the growing movements in software development is the use of patterns. Based on the work of Christopher Alexander as described in his books, A Pattern Language, Oxford University Press, 1977 and The Timeless Way of Building, Oxford University Press, 1979, it entered the computing field with the publication of the classic book Design Patterns by Gamma et. al., Addison-Wesley, 1994. A design pattern is a reusable meta-design that can be applied in many different contexts. The timeless adjective can also be applied to this book by Weinberg. Originally written in 1971, the only parts that are dated are the descriptions of the hardware. All points dealing with the human elements of software creation are just as valid today as they were twenty five years ago. Furthermore, as long as the human psyche stays as it is, they will continue to be valid. Despite all of our technical and physical advances, there is no reason to believe that human nature has changed in the last three thousand years. As so many writers point out, the high failure rate of software projects is not due to technical factors but human ones. Weinberg deals with many of these points and offers simple advice on how to solve the psychological problems of software development. In many ways, his solutions can be considered patterns as well. I listed this book as one of the best books of the year in my annual column published in the September, 1999 issue of Journal of Object-Oriented Programming and could probably do so again in an other twenty five years.
Rating: Summary: How to understand your friend the programmer Review: Recently I was working with a group of professors who were rethinking the programming curriculum for Japanese computer science students. They knew what they wanted their students to learn, but they struggled in knowing just how to accomplish the skill instruction. I understood their problem, but only minimally. They should have recommended Weinberg's book because it really captures the tensions that are played out for teachers, students involved with programming, and it would have helped me make more informed colleague. As one interested in education and designing learning environments, I learned a whole lot about the complexity of studying/developing programming and programmers, and Weinberg increased my empathy for my computer science colleagues and their students. This book gives a view from a experienced programmer and instructor and depicts the challenges that programmers face. Chapter 12 on the principles for programming language design would have been helpful for our group; and this book covers many other related areas like group work, the variation of challenges, problem solving, instruction and more. Weinberg's great contribution however, is to highlight how the human factors such as personality and intelligence influence how programmers go about their tasks. I was turned on to this book through Gause and Weinberg's other book, "Are you lights on!" Both books are highly recommended. I have come to understand my programming friends a whole lot more because of reading this book, and am able to be more sensitive to my colleagues and engineering students are struggling with master this skill. When programming instructors, friends or students have bad days writing code, or keeping their sanity, I can suspend judgment, knowing a bit more of the problems he/she is working with. I recommend it for these reasons.
Rating: Summary: A must for every professional Review: Some younger programmers may get impatient with the Weinberg's references to obsolete activities, such as keypunching and submitting a debugging run, but they shouldn't stop reading. Nearly every page of this book conveys valuable insights into the nature of programming. The book is readable and entertaining, a professional book you'll read for pleasure and re-read. Weinberg adds no new chapters, nor does he edit obsolete content. Even the pagination is the same as in the original. Instead the Silver Anniversary Edition appends to each chapter a "Comments on the chapter" section in which the author relates the content you've just read to the world of today.
Rating: Summary: A must for every professional Review: Some younger programmers may get impatient with the Weinberg's references to obsolete activities, such as keypunching and submitting a debugging run, but they shouldn't stop reading. Nearly every page of this book conveys valuable insights into the nature of programming. The book is readable and entertaining, a professional book you'll read for pleasure and re-read. Weinberg adds no new chapters, nor does he edit obsolete content. Even the pagination is the same as in the original. Instead the Silver Anniversary Edition appends to each chapter a "Comments on the chapter" section in which the author relates the content you've just read to the world of today.
Rating: Summary: Timeless Insight into the Mind of the Programmer Review: The book's present-day relevance was amazing. The similarities in the behavior and interaction of the programmers of today and the programmers of old provides a unique perspective. This perspective highlights what makes some individual programmers and programming teams succeed regardless of the techology or decade they're working in. Because of my background in psychology and my more recently acquired expertise in programming, this book quickly found a special resonance with me. Weinberg's grasp on both programmer attitudes and the psychological framework make this book one-of-a-kind.
|