Book Image

Understanding Software

By : Max Kanat-Alexander
Book Image

Understanding Software

By: Max Kanat-Alexander

Overview of this book

In Understanding Software, Max Kanat-Alexander, Technical Lead for Code Health at Google, shows you how to bring simplicity back to computer programming. Max explains to you why programmers suck, and how to suck less as a programmer. There’s just too much complex stuff in the world. Complex stuff can’t be used, and it breaks too easily. Complexity is stupid. Simplicity is smart. Understanding Software covers many areas of programming, from how to write simple code to profound insights into programming, and then how to suck less at what you do! You'll discover the problems with software complexity, the root of its causes, and how to use simplicity to create great software. You'll examine debugging like you've never done before, and how to get a handle on being happy while working in teams. Max brings a selection of carefully crafted essays, thoughts, and advice about working and succeeding in the software industry, from his legendary blog Code Simplicity. Max has crafted forty-three essays which have the power to help you avoid complexity and embrace simplicity, so you can be a happier and more successful developer. Max's technical knowledge, insight, and kindness, has earned him code guru status, and his ideas will inspire you and help refresh your approach to the challenges of being a developer.
Table of Contents (50 chapters)
Understanding Software
Credits
About the Author
www.PacktPub.com
Customer Feedback
Foreword
2
The Engineer Attitude
3
The Singular Secret of the Rockstar Programmer
4
Software Design, in Two Sentences
5
Clues to Complexity
6
Ways To Create Complexity: Break Your API
7
When Is Backwards-Compatibility Not Worth It?
8
Complexity is a Prison
10
The Accuracy of Future Predictions
11
Simplicity and Strictness
12
Two is Too Many
14
What is a Bug?
24
What is a Computer?
25
The Components of Software: Structure, Action, and Results
27
Software as Knowledge
30
Simplicity and Security
34
How We Figured Out What Sucked
36
Why Programmers Suck
38
Developer Hubris
39
"Consistency" Does Not Mean "Uniformity"
42
Success Comes from Execution, Not Innovation
Index

Chapter 33. The Secret of Success: Suck Less

When I started working on Bugzilla (http://www.bugzilla.org) in 2004, it was a difficult time for the whole project. There were tremendous problems with the code, we hadn't gotten a major release out in two years, and a lot of the main developers had left to go do paid work.

But eventually, thanks to a bunch of new members in the Bugzilla community, we released Bugzilla 2.18. Hooray! Bells rang, birds sang, and there was much rejoicing.

However, in the space between Bugzilla 2.16 (which was before my time) and Bugzilla 2.18 (which was the first release that I helped get out), something very strange happened – we developed serious competition.

All of the sudden there were a bunch of new and competing bug-tracking systems, some of them open-source and some of them not, that people were actually using.

At first it wasn't too worrisome. Bugzilla was pretty dominant in its field, and it's hard to lose that kind of position. But as time went on, there was...