I’ve been leading small software development teams on big projects since 2004. Painful experiences taught me some simples rules to make it less painful. Here they are, presented in order of discovery:
-
-
- If it can be null, it will be null
- The clipboard is a cruel mistress
- Size really does matter
- Inside every small problem is a larger one, struggling to get free
- Every bug you fix creates 2 more
- The law of the motorcycle shop is non-negotiable (whoever touched it last is who broke it)
- Cleverness is the mother of regret
- Just in time requirements are neither
- Don’t solve problems you don’t have yet, Nostradamus
- Later == never, temporary == forever, shipped > not shipped
- Only change 1 thing at a time
- Always redo, never fix
- Finish the most important feature first
- Tomorrow you hates the code you write today, so don’t plan too far ahead
- Character data is nvarchar(max) until you can prove otherwise (see rule 2)
- Schrodinger’s Spec – you can know what the client wants, or what will be best for them, just not at the same time
- Solve the toughest problem first
- Legacy == proven. Try out the newest thing on your own time and dime.
- Naming stuff is hard
- You’re not going to reuse that
- Process: never fix, always redo. Code: never rewrite, always fix
- Fix problems upstream
- Never use a black box when a text file will do
- Normalize until it hurts, denormalize until it works
- The original sin of code is writing it
- An unbound task is the Devil’s workshop
- Developer time is vastly more expensive than CPU time
-
Pingback: The Lair of Leaky Abstractions
Pingback: Rule 14 in the wild | The Lair of Leaky Abstractions
Pingback: The Eternal Optimism of the Spotless Repository | The Lair of Leaky Abstractions