This book drove me nuts. What I wanted was a technically-minded overview of SSAS; what I got was a mash-up of management-level metaphors and step-by-s...moreThis book drove me nuts. What I wanted was a technically-minded overview of SSAS; what I got was a mash-up of management-level metaphors and step-by-step walkthroughs of the IDE for building cubes.
...Which, to be fair, is probably what I should have expected, at least in the second part. It may be that this is a perfectly enlightening book for people who aren't already DBAs. (I'll keep it around in case it comes in handy as a tutorial someday.) For others out there who are DBAs, at the moment I'd recommend the book I picked up when I gave up on this one -- it's twice as long but more than twice as engaging, and unlike this "Step by Step" book is written so that familiar sections can be easily skimmed.(less)
My first impression was "Surprisingly readable!", and that was carried through almost the entire collection. Jason Cohen wrote the bulk of the chapter...moreMy first impression was "Surprisingly readable!", and that was carried through almost the entire collection. Jason Cohen wrote the bulk of the chapters, with "Resistance to Code Review" written by Eric Brown and "The SEI Perspective" written by Steven Teleki. Jason Cohen is the founder of Smart Bear Software, the company that provides this book for free.
Actually, let me digress for a moment here. This book has three very clear, very up-front goals: to persuade readers that code review is valuable, to persuade readers that informal code review is as well or better suited to modern coding practices than formal code review, and to persuade readers to purchase and use the code review software written by Smart Bear Software. I think it's to the credit of the book qua book that the first two points can succeed while the third fails! (Although the Smart Bear product does sound very good and I may well recommend it at some point in the future, it doesn't fit with what I need right now. This doesn't detract at all from the usefulness to me of the rest of the book.)
I approached this book from two perspectives: as a developer working for a smallish software company that's trying to move toward agile practices in maintaining existing applications and as an advisor to an all-volunteer software group that's just starting up a flagship application and a handful of smaller projects. Much of this book is addressed to people in management capacities, and unsurprisingly I found much of it more useful for my volunteer role as semi-management advisor than for my professional role as managee.
Sadly, the chapter that should have had the most immediate impact for me as a developer, "The SEI Perspective" by Steven Teleki, was the only one which was truly terribly written! While the rest of the book was written in a chatty and engaging style, even in the rigorous "Code Review at Cisco Systems" chapter that presented data from a large case study, this chapter on how developers can begin integrating personal review segments into their coding cycles was both dry and confusing -- I had to reread it twice just to understand the extremely simple logical equations -- and has not inspired me to shift my coding practices at all.
Although the argument of this book is that both modern coding practices and modern coders are supported well by informal code reviews, it admits from the beginning and throughout that the data to back up this or any other conclusion about code review does not exist. The chapters on "Brand New Information" and "Code Review at Cisco Systems" lay out highly suggestive trends but make it clear that there have been no rigorous studies of code review done to answer the questions raised in this book. "Code Review at Cisco Systems" in particular is quite frustrating in a so-close-but-not-complete way! (The author is quite aware of this and sharing the frustration.)
Although the discussions of the social aspects of code review were often repetitive, I found this useful and not irritating; the chapters are clearly intended to be considered as separate essays and refer back and forth to each other for more details on various points. The "Five Types of Review" chapter was particularly informative and laid a good basis for the later chapters.