"This book is written from a powerfully felt, personal perspective: that software construction is primarily a problem-solving activity; that all problem-solving requires creativity; that software problem-solving is deeply complex, perhaps more deeply complex than any other activity; and that, therefore, software problem-solving requires the ultimate in creativity." --Robert L. Glass, from the Preface In Software Creativity 2.0
acclaimed author Robert L. Glass explores a critical, yet strangely neglected, question: What is the role of creativity in software engineering and computer programming? With his trademark easy-to-read style and practical approach, backed by research and personal experience, Glass takes on a wide range of related angles and implications. To name only a few:
* Are discipline and formality at odds with flexibility and agility? * When are control-driven vs. experimentation-driven approaches most effective? * Can we "make creativity happen" in a software organization? * Which is more important, process or product? * How do theory and practice interact in the software field? Can practitioners and academe complement each other more effectively? * Is there a missing link between creativity and software design? * What is the balance of "intellectual" and "clerical" tasks in software work? * Can we still find a place for plain old fun?
Revised, updated, and expanded, Software Creativity 2.0 also features a new Foreword by Tom DeMarco, author of Peopleware, and a new Preface by author Robert L. Glass.
Has some very good material. Unfortunately a lot of repetitions, and too much focus on the same stuff. After part I and half of part II it gets tedious to read, this book just gets less interesting after the first part.
Too often pragmatic concepts in software fall victim to zealot practitioners whose ideology includes panacean promises of one-click programming and ideas that good process guarantees a good product regardless of personnel. Too many people still promote their ideas and methodologies as cure-alls. These people treat software as a franchise with a factory-line assembly and replaceable parts. It is anathema for many to think of software as a creative endeavor. However, this idea that software development lives and breathes with creativity is what software curmudgeon Robert Glass takes on in his sagacious book on software. This book is a newer version of his original 1995 "Software Creativity" which has been unavailable (cheaply) for many years.
This book is divided into four parts. The first part (and I feel the most important of the book) is the exploration of software creativity. Here he takes on nine dichotomous subjects (discipline vs. flexibility, formal methods vs. heuristics, optimizing vs. satisficing, quantitative vs. qualitative, process vs. product, intellectual vs. clerical, theory vs. practice and industry vs. academe, fun vs. serious) and explores the advocates on both sides and tries to find definitive answers (or at least raise more questions).
What I found fascinating about several of these chapters like quantitative vs. qualitative and industry vs. academe is that they can apply to many different industries and not just software. How many times has quantitative reasoning been used in business only to fail miserably in the hands of MBAs? How can academe differ so much from practice (like getting your Juris Doctorate compared to really practicing law)? These chapters are a plethora of interesting ideas that many of these chapters can be discussed at length (imagine the length of the review if we tried) and one fault (that has already been mentioned by several reviewers) is that some of the topics need more discussion.
The second part deals with making creativity happen. I feel this is such a difficult thing to do in large organizations since it involves a paradigm shift in thinking, but it is a must for small companies. The third part deals with creativity in other fields and the fourth is the conclusion. And to give away the ending his thoughts can be summed up as "...is that our one-size-fits-all approach is wrong. No, it is worse than that. It is WRONG!" The one question that remains is how do you change a practitioner's mind that already has all the answers?
I never read the original book; I did not get into Glass's writing until I received as a gift Glass's Facts and Fallacies of Software Engineering and became enthralled with his pragmatic point of view. That laconic work got me interested in his writings and when d.* brought out this book I bought it immediately. Software Creativity is not as well known as Frederick Brook Jr's masterpiece "Mythical Man Month" or Edward Yourdon's "Death March" (and many others) but it is such a great read that anyone involved in software can benefit from this book. I am biased though. After years of "software development" I have found it to be a very challenging and rewarding endeavor that does benefit from structured creativity. Apparently Robert Glass feels this way too.
At times a bit too repeaty (seemingly due to the essays being written separately and so an introduction may briefly summarise the concepts just talked about in depth), abstract, humble, and open ended (e.g. to paraphrase: "here's a dichotomy, I don't know how to solve it and I'm not sure anyone else will soon find out either"). Also, I found some of the dichotomies presented to be false ones. Most notably the way process vs product was presented made it more about this particular process vs product. On the other hand a lot of interesting literature and research was covered and talked about. And I hope my mind is now better primed to deal with the inevitable facing of at least one of the conflicting pairs presented in the book. Even if not consciously aware of it.
Very interesting look into the art & craft of software development. Should be required reading for the junior level develop who wants to transcend the divide and become a much better developer. Has great insights into the 'why' & 'what' of developing software, something most software books (and developers) frequently miss.
Software Creativity 2.0, by Robert L. Glass. Lots of insight into the dilemma of free-wheeling vs. disciplined development processes. Some excess padding, but a good read for IT programmers, managers, and directors.