For all of you with a software idea just waiting to be developed...
Derek Sivers has a great post today about how to hire a programmer to make your ideas happen.
Key takeaway pointer - #7: Hire more than one team or person. Having more than one team working independently on your initial project allows you to pick the better implementation - and protects you and your schedule by not allowing one team to hijack or just disappear.
Even within a company, this is probably a great idea for a new product (if you can sneak it past mgmt.)