Design From The Start

August 15, 2008
8
I don’t know if this has become clear to everybody yet, but you really need to design from the start. You need to be working on simplicity and the other Laws of Software Design from the very beginning of your project. My policy on projects that I control is that we never add a feature unless the design can support…

Sane Software Design

August 11, 2008
2
I have come up with an analogy that should make the basic principles of software design understandable to everybody. The great thing about this analogy is that it covers basically everything there is to know about software design.…

Slides From My Talk

July 24, 2008
So, I just had my talk, Code Simplicity: Software Design In Open Source Projects at OSCON 2008. It went really well! Here’s the slides from my talk (also available in PDF Format). -Max…

Talking at OSCON

July 22, 2008
I’m going to be talking at FOSSCoach, a free series of lectures at OSCON. You don’t need a session pass to attend, but you do need to register (for free). I’ll be talking on Thursday, July 24, at 3:25pm, in either room E143 or E144 at the Oregon Convention Center. I’ll tell you basically everything I know and have learned…

The Source of Bugs

July 21, 2008
9
Bugs most commonly come from somebody’s failure to reduce complexity. Less commonly, they come from the programmer’s misunderstanding of something that was actually simple. Other than typos, I’m pretty sure that those two things are the source of all bugs, though I haven’t yet done extensive research to prove it. When something is complex, it’s far too easy to misuse…

What Is A Bug?

July 18, 2008
9
Okay, most programmers know the story—way back when, somebody found an actual insect inside a computer that was causing a problem. (Actually, apparently engineers have been calling problems “bugs” since earlier than that, but that story is fun.) But really, when we say “bug” what exactly do we mean? Here’s the precise definition of what constitutes a bug. Either: The…

Creating Complexity: Lock-In To Bad Technologies

July 16, 2008
4
In The Never-Shipping Product, I mentioned seven ways to add complexity, and one of them was “Lock-In To Bad Technologies.” But what’s a “bad” technology? Is it all just based on opinion? Should we throw our hands up in the air and give in to the whims of our junior developer who thinks writing the application in BASIC is a…

Unforseeable Consequences: Why We Have Principles

July 14, 2008
5
One of the most important things to know about any kind of engineering is: There are some things about the future that you do not know. Obviously it’d be ideal if we were all-knowing and could perfectly predict every consequence of every decision we’ll ever make. But that’s impossible. In fact, it’s so far from possible that if you predict…

FOSSCoach 2008

July 1, 2008
If you’re going to be in Portland, Oregon or attending OSCON and you want to hear me talk, I’ve proposed a session for FOSSCoach called Code Simplicity: Software Design In Open Source Projects. Registration for FOSSCoach is free, but is limited to 100 people, so sign up if you want to come. -Max…

The Never-Shipping Product

June 2, 2008
1
When you work as a professional programmer, you almost always know somebody (or are somebody) who’s going through one of the most common development horror stories in the book: “We started working on this project five years ago, and the technology we were using/making was modern then, but it’s obsolete now. Things keep getting more and more complex with this…
1 4 5 6 7 8 9
Go toTop