- Find a problem you want to solve
- Implement solution A
- Walk away, as the problem is solved
- 6 months later, run into problem again, but in a different context
- Implement solution B, cause you're 6 months better at Perl and wince whenever you remember solution A
- Repeat 4 or 5 times, wincing less and less cause solution E is only marginally better than solution D
- Log onto PM and realize that others have solution M.
- Cry for a while because it's so elegant and simple
- Rewrite 3 years of code to use solution M
- Realize you didn't understand solution M at all
- Cry for a longer while cause you just introduced 10 new bugs and hadn't backed up your code
- Rewrite again, using solution F, which takes what little you understand of solution M and grafts it onto solution E
- Read PM again in 6 months and realize you not only do understand solution M, but found a better way!
- Dance around your cube for an even longer while (gotta make up for all that crying!)
- Post solution N and get 100 XP for being cool
- Delete 3.5 years of code cause it's all worthless crap that a module you just wrote with solution N does it all, and more
- Go on with your life.
------
We are the carpenters and bricklayers of the Information Age.
Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.