Code Quality: The Open Source Perspective is aimed at the very heart and soul of the open source movement. Without code quality Open Source would be a muddied named that no one would value or deploy. This book by Diomidis Spinellis is a well written, well focused and to a high degree an eternal description of the varying types and issues that can be found in programming languages such as Java and C.
Diomidis is an associate professor at the Athens University of Economics and Business who has been working directly or indirectly with the concepts in the book since 1985. The book reeks with experience and detailed observation of the problem domain. It is obvious to me that the author has a profound insight into what makes bad software bad and thus strongly hints at how to create excellence.
The book’s cover
I must admit to a positive bias, as a developer the book resonates with my core skills. I read the book with avid attention. Not a light read, the book is stuffed full of the details of the different types of coding failures. Each failure type has a real world example attached. However, the code itself is not relevant so much as the way the code fails. The code contained in this book may become old and outdated, but bad methodology has a much longer shelf life.
The ISO 9126 quality standard permeates and structures this book. Each chapter points to specific ISO related attributes: reliability, security, time performance, space performance, portability and maintainability. You are briefly introduced as a reader to the correct mindset and then thrown head first into a series of theoretical constructs. At points in the book I felt a growing buzz as I realized that I had not known specific tools existed. I found myself randomly walking in my own head as I set the new information into the context of placing standards into my own organization. The chapter on maintainability was particularly relevant. I downloaded the lachesis eclipse plugin and scanned whole projects for failures. And—guess what?—I found some, how should I say it, really interestingly elegant code.
Code quality is a consistent fight that must never be lost
Who’s this book for?
By the authors own admittance, this book is not for managers or project leaders, but rather for the code bashers among us. However, I see this book as a must have for any second year computer science student. Buffer overflows and code density are issues potential developer’s need to keep in the back of their minds while trying to reach deadlines.
Relevance to free software
The battle for the minds and hearts of users and has many entry points; cost, ease of use, reputation, quality, peer pressure. For most large scale projects such as the Apache web server, quality is absolutely not an issue. But more for the up-and-coming next generation can quality be transiently lost due to the velocity of change in the code bases. I see this one issue as a recurring factor that can in the middle term dampen the zeal to embrace Open Source. We may collectively risk a significant back lash if the balance between quality and feature richness is not found. I have observed naive deployments biased on functional requirements alone. Code quality is a consistent fight that must never be lost. This book is a summary of where the issues may lie. Therefore, this book is almost a required read.
Managers should buy the book, and not read it, but pass it on to the code bashers in their teams
Diomidis Spinellis has written a detailed roadmap of a large subset of specific programming error types. The book will have a long shelf life due to its relevance to a large audience and the longevity of the behind the scenes ideas. I personally wished I had read this seventeen years ago and recognize my own coding signature in a couple of the ISO 9126 metrics mentioned. Yep, I need to make a couple more comments here and there and perhaps a bit more unit testing!
By its very nature Code Quality: The Open Source Perspective is densely packed with concepts. This can at times make the book tiring to read. Not a book that you can or should read alone, best served by comparing with your own code bases. Managers should buy the book, and not read it, but pass it on to the code bashers in their teams.
||Code Quality: The Open Source Perspective
|Over all score