I wrote a book.
Max Kanat-Alexander
mkanat at bugzilla.org
Wed Mar 28 19:05:43 UTC 2012
Hey Bugzilla developers. You may have noticed that I haven't been
around quite as much as I used to be. Well, it's true that part of that
is because I got this great job at Google which I really love, and I've
been working a lot there. But also, I've been spending a lot of my time
*not* at work on something completely different: I wrote a book.
During my years on the Bugzilla Project, many (or perhaps all) of you
may have noticed that I'm very intense when it comes to code quality--I
really care a lot about the architecture of a system, and I have some
pretty strong ideas about code complexity. I've spent perhaps more time
refactoring Bugzilla (and helping others refactor) than any other work
I've done on it. Well, for many of the years I was doing this, what I
was also doing was testing and refining a series of principles about
software development as a whole. I could try out an idea, apply it to
the Bugzilla codebase, and see how things went over time in an actual
software project that was broadly-used but needed a lot of code
improvements. I learned what works and what doesn't. Then I took these
ideas out for broader testing in numerous ways, and what I eventually
came up with was a series of laws for software development.
I compiled these laws and a series of other software development
guidelines into a book that I called "Code Simplicity: The Science of
Software Development." One of the hardest parts was finding a simple
logical sequence to explain everything in, simplifying all the
information so that it could be understood easily, and determining the
exact phrasing for each piece of critical text in the book. All told,
that process took almost three years.
Then I looked around and wondered, "Has anybody written this book
already?" After all, had there been some other work in the field that
was equivalent, I would have just gotten behind that and promoted it,
instead. But much to my surprise, nothing equivalent already existed.
There are some books that give some good tips on development or about
specific languages, but *nothing* that covered the basic principles of
software development as a whole.
Then, last Fall, we shopped the book around to various publishers, and
much to my excitement, O'Reilly said that they were highly interested
and would love to publish my book. Several months later, and here we
are--the book has been published and is available for all e-readers and
in print form from most major online book retailers. In fact, if you
want to get it, it's on sale until April 4 at oreilly.com for 50% off,
which is a hugely good deal:
http://shop.oreilly.com/product/0636920022251.do
So why am I writing to the Bugzilla developers about this? Well, first,
because I want to thank you. In fact, you're one of the few groups of
people explicitly thanked in the Acknowledgments section of the book,
because your contributions to Bugzilla and your discussions with me over
the years really helped me shape the content of first my blog and then
the book as it is today. But also, I wrote the book because I wanted to
be able to pass on a series of principles, the ideas that I was
operating off of when I was helping to improve the quality of the
Bugzilla codebase. I want to see these sorts of improvements happen
everywhere and have them be driven by everybody. I want to give back to
the Bugzilla community as a whole, not just with short snippets of
emails, a few Wiki pages here and there, or some blog posts, but with
complete work of all the fundamental ideas.
So here you have it. If I had numerous free copies, I would actually
send one to many of you. But I don't, and so the best that I can do is
to let you guys know about the existence of the book while it's on sale
at such a hugely good price. It is my dear hope that it helps you in
some way not just as individual programmers, but as the Bugzilla
community as a whole.
-Max
--
Max Kanat-Alexander
Chief Architect, Community Lead, and Release Manager
Bugzilla Project
http://www.bugzilla.org/
More information about the developers
mailing list