|Perl Monk, Perl Meditation|
If you have actually succeeded in “breaking the work down into small tasks,” it doesn’t really matter “who does what.” The real issue, neatly avoided by all this quasi-sports talk, comes down to exactly two things:
Imagine, if you will, the task of shooting arrows at a target in a tornado. Most of the arrows that you shoot are going to fly off course: it doesn’t matter at all if, or how, you “track” those arrows. Either the arrows were mis-aimed, or the target moved, or you somehow just wound-up with an arrow in your butt (but don’t quite know just how it got there...), or some combination of the three.
Or maybe you have a “magic arrow” that will zip this way and that, gradually “homing in” on that moving-target. But, how long was the course taken by that arrow, and how many trees and other obstacles did it have to blast its way through on its magical, determined effort to “finally hit the target?”
An experienced marksman would wait for the tornado to pass. She would size up the situation carefully, place herself at the position she had chosen, and fire one shot. Only one. And she would not walk up to the target to see if her arrow had done its job.
I say (and not without experience to back me up...) that, when you are actually ready to write software code, writing the code is easy. After all, “the code” is simply an expression of the design ... the most-rigid and inflexible expression, but comprehensible to a digital computer. This should be the last incarnation that your completed design will take, and you should delay putting it into that form as long as possible.
But of course, people who are paying a dreadful amount of money for something want to see “progress.” And people who are working on that something, want to “progress.” Building meticulous blueprints doesn’t feel like “building a house.” And, Home Depot didn’t get to be a big, fat company by selling materials to people who draw blueprints.
(I don’t say this to be persnickety. I say this as someone who has written more than three quarters of a million lines of source-code in about twenty programming languages... while silver-bullets came and went, and were in their turn discarded.)