Skip to content

Instantly share code, notes, and snippets.

@evanphx
Forked from jbarnette/think.markdown
Created December 19, 2008 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save evanphx/38113 to your computer and use it in GitHub Desktop.
Save evanphx/38113 to your computer and use it in GitHub Desktop.

Lessons Learned

Be Confident

Tests build confidence. Write 'em. They'll save your ass, and they'll let you take a chainsaw to your code without being afraid of unintended consequences.

Be Lazy

If it's happened more than twice, don't ever do it by hand again.

Be Asynchronous

If it can possibly be done outside the request/response cycle, defer it. Mailers, uploads, audit trails.

Be Stateful

If there's a lifecycle, model it as a real state machine. Beware ad hoc flags.

Be Clear

You'll write it once, but you'll read it a lot. Code accordingly. Sometimes simplicity takes a bit longer, but it'll pay off.

Be Consistent

Inconsistent file names, task names, or coding conventions hurt productivity.

Be Timely (but not too timely)

Keep frameworks, plugins, libraries, and tools up-to-date, but think twice before using a production app to play with the bleeding edge.

Be Certain

Don't speculate, get data. Act on what you know, not what you suspect. Is that code really faster? Do users really want that feature?

Be Persistent

Find the root cause. Keep asking why, even when you're tired and under the gun. The guesswork patch you write today will be a nightmare tomorrow.

Be Wrong

Dogma is for theorists. If it's not working, change it, no matter how long it took to write. Don't throw good money after bad. Admit mistakes early and often.

Be Aggressive! Be Be Aggressive!

By a cheerleader for yourself AND others on your team. A positive attitude goes a long way in making people productive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment