Personal Manifesto

On Programmers and Developers

If you would like to know who I am, you need to understand, by my own definiton, the difference between "programmers" and "developers".

Programmers tend to go at things with a get-it-done attitude - some programmers work their quota, others put in lots of hours, your mileage may vary. Programmers tend to stick with what they know, what works, what gets the job done.

Developers are independent thinkers who thrive on knowledge, new ideas, and the satisfaction of improving and doing things "better". What the individual developer thinks is "better" tends to be a very personal issue, but the common trait is that they strive.

Some indicators to help you distinguish programmers from developers:

  1. Programmers will talk about solutions they built - developers will talk about the technology they used, or techniques they learned.
  2. Programmers will show you code samples - developers will show you libraries they created or open-source projects they contributed to.
  3. Programmers tend to solve problems the straight-forward way, using safe, proven and established technology - developers tend to solve problems by considering design patterns, maintainability, extensibility, scalability, portability, and other qualitative metrics.

The human brain does a better job when it's interested in the work it's doing - this is pure and simple physics. If you care about what you're doing, your brain won't let you stop working - you'll be working all hours of the day, at the computer or away from it; even in your sleep.

Developers aren't happy if they're not doing this. And you can't pay them enough money to make them happy - at least not long-term.

If your business is primarily a software assembly-line, be honest with yourself and your employees: hire programmers - don't hire people who call themselves developers.

It's basic economics: If you're not invested in technology, how can you expect to hang on to people who are?

I'm not going to say you can't run a business with just programmers - in fact, it's probably easier.

Programmers tend to be less emotional about their work, usually because they're not invested. That's not to say that programmers can't do a good job: good programmers deliver on time, and to your expectations - not because they care deeply about what they're doing or how it gets done, but because they care what you and the client thinks.

Developers tend to be much more invested in what they do. That's not to say that developers are always superior to programmers: even the best developers don't always deliver on time, but they strive to deliver quality and exceed expectations - not because they need a paycheck, but because they care about what they do.

I'm a developer.