Collective Wisdom from the Experts 19
So how do these teams spend their day? Solving the problems they’ve created
by substituting the untested code they built themselves for the fully functional
software tools usually available to them for free. When they write their own
database layer, they spend the days tracking down obscure performance bugs
and caching issues. Handling the edge cases† ends up consuming more time
than they ever would have spent learning, or even modifying, existing tools.
The reason less “special” (but more successful) teams use existing tools is
because the problems they’re setting out to solve are hard problems. They need
reliable tools so their attention is focused on the solution to their software
project, not on trying to refill an already brimming toolbox.
What does this have to do with effective software project management? Don’t
let your programmers reinvent the wheel. When they come to you explaining
how special their problems are, point out that their mothers may have stretched
things when they made that “you’re special” assessment. Be knowledgeable
about what’s available and guide your team toward high-quality open source
or commercial tools.
The “not invented here” syndrome derails so many great teams. Don’t let it
derail yours.
† Edge case: A problem or situation that only occurs at the extremes (for example, fastest or slowest
speed, highest or lowest volume of data, or with the oldest or newest browser interface). Often
it means focusing on trivial things that drain time while important programming throughput is
ignored.