For those who are familiar with Jeff Foxworthy, you’ll know his signature joke format: If you <insert stupidity here>, you might be a redneck! In that vein, I am starting a series of posts in the format: If you <insert anti-pattern here>, you’re <emphasis statement> doing it wrong! The emphasis statement may be emphatic (“You’re doing it wrong!”) or something like “You’re probably doing it wrong!” or “There’s a high probability that you’re doing it wrong!” When it’s not ridiculously obvious, I’ll try to follow each with suggestions on how to do it right — or at least how to suck less.
So for my first entry:
YDIW#1: “If you’re actively coding and haven’t checked-in in the last 24 hours, you’re doing it wrong.”
There’s a couple foundational corollaries behind this one:
YDIW#2: “If you’re not using source control, you’re doing it wrong!”
Use source control — for EVERYTHING. JUST DO IT! Check-ins should be task based and contain explanatory information like comments and work item links. These linked artifacts provide real value — code is only half the picture. Treat changeset/commit comments and work items as deliverables. If your system supports rules requiring comments and work item links, turn them on now.
YDIW#3: “If your task takes more than a business day, you’re probably doing it wrong.”
To be predictable in software development, you must estimate small tasks. I’m terrible at estimation — ALL software developers are terrible at estimation, because we are generally idealists. If you’re a Product Owner or Scrum Master and your dev tells you it will take 3 days (or anything greater than 1 day) make them break it down further.
“Aim small, miss small.” – The Patriot
That is to say, if you aim at a small detail of your target, you might miss that detail, but you’ll still hit your target.
As you can probably tell, this series is going to opinionated. Deal with it. 😉