The Singular Secret of the Rockstar Programmer

November 10, 2009
Before all the laws of software, before the purpose of software, before the science of software design itself, there is a singular fact that determines the success or failure of a software developer. This fact makes the difference between the senior engineer who can seem to pick up new languages in a day and the junior developer who struggles for…

The Engineer Attitude

August 20, 2009
The attitude that every engineer should have, in every field of engineering, is: I can solve this problem the right way.…

The Secret of Success: Suck Less

August 11, 2009
When I started working on Bugzilla 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…

“Consistency” Does Not Mean “Uniformity”

May 14, 2009
7
In a user interface, similar things should look the same. But different things should look different. Why do over 75% of Facebook’s users think that the new Facebook UI is bad? Because it makes different things look similar to each other. Nobody can tell if they’re updating their status or writing on somebody else’s wall, because even though the text…

Features, Simplicity, and the Purpose of Software

December 12, 2008
5
One of the best ways to keep an app simple is, of course, to limit how many features you implement. Twitter, for example, has very few features, but is enormously successful. The limited number of features of Twitter make it really easy to keep the application simple, which lets the developers focus a lot on the quality of the system,…

(I)SAR Clarified

December 1, 2008
4
In my previous post, I said that there are three major parts to any computer program: Structure, Action, and Results. Also, a program has Input, which could be considered a fourth part of the program, although usually it’s not the programmer who’s creating the input, but the user. So we can either abbreviate this as SAR or ISAR, depending on…

Structure, Action, and Results

November 1, 2008
There’s a very popular model for designing software that we’ve all heard of if we’re web developers, and probably most desktop developers have heard of too: our old friend MVC. This works well because it reflects the basic nature of a computer program: a series of actions taken on a structure of data to produce a result. Programs also take…

Simplicity and Security

October 17, 2008
A big part of writing secure software (probably the biggest part) is simplicity. When we think about software security, the first question that we ask is, “How many different ways could this program possibly be attacked?” That is, how many “ways in” are there? It’s a bit like asking “How many doors and windows are there on this building?” If…

What Is A Computer?

October 10, 2008
What is a computer? You’d think that would be a fairly simple question. After all, I’m using one to type this up, I ought to know what it is, right? I mean obviously, it’s a…computer! I mean, it’s got a keyboard, and a monitor, and there’s that box down there… But what is it that makes all that stuff a…
1 3 4 5 6 7 9
Go toTop