There are a lot of people out there solving problems with computers these days.  We might not have quite reached the infinite monkeys tipping point (substitute Shakespeare for a social networking website, without the option of cultural longevity) but we must be getting close.  At the very least, based on some of the developers I have met, we are hiring a lot more monkeys these days.

Anyway, I digress.  The point is, if you are thinking of building a piece of software, and it is not directly related to your competitive advantage, you might want to rethink either the tool, the process that requires it, or your competitive advantage.  For example, if you are an investment bank, and you have project managers tracking a project portfolio, you probably don’t want to be spending your development effort building a project management tool instead of banking software.  And if you really think you need to spend time developing your unique and quirky in-house software plugin API, you have to realise that this type of stuff has already been commoditized. Statistically, neither your software development process nor your requirements are unique (remembering the other inifinite minus one monkeys out there doing the same thing).  It follows that there is probably already a tool or process that fills your need, assuming you have rationally assessed your need correctly in the first place.

And if your process really is that unique?  Like unique good? Or the software really doesn’t exist, and it honestly should?  You might want to think about spinning that baby off.  Turn it into a competitive advantage, or release it into the wild to improve software for everyone (or just get famous, either way).  Otherwise, try to avoid the effort and pain you buy yourself by assuming that your problems are unique, just like everyone else’s.