mlbright's shared items

M-L's occasional ramblings.

Wednesday, September 12, 2007

wise lessons learned from software development

Greg Wilson, from the University of Toronto, compiled the following list of maxims accumulated from years of experience writing software. I recently found them stuffed in the confines of my archive folders and I thought I'd post them here. Just so I don't get accused of plagiarism or some other IP violation, I emphasize that this is his compilation, not mine.  When I was still in school (years ago), I remember him going over the fine points of some of these ideas. What he had to say was very enlightening: he was the first professor that stressed to me the importance of the more practical aspects of software development. The following is worth more than any clever algorithm or mathematical technique. I include them here because they apply to more than just software development. Also, you may find yourself editing some code at some point in your life.  (Did you ever think you would need to use Excel? Look where you are now.)

  • A week of hard work can sometimes save you an hour of thought.

  • Anything worth repeating is worth automating.

  • Anything repeated in two or more places will eventually be wrong in at least one.

  • The three chief virtues of a programmer are laziness, impatience, and hubris.

  • It's not what you know, it's what you can.

  • The deadline isn't when you're supposed to finish; the deadline is when it starts to be late.

  • Never debug standing up.

  • Tools are signposts, not destinations.

  • Not everything worth doing is worth doing well.

  • Code unto others as you would have others code unto you.

  • Every complex file format eventually turns into a badly-designed programming language.

  • Tools are amplifiers: they allow good programmers to be better, and bad ones to be worse.

  • They call it computer science because it's experimental.

  • Programs come and go; data is forever.

  • There's no such thing as one program.

  • Discipline matters more than genius; reality matters more than rulebooks.