In a long email I wrote tonight I wrote a few words that should stay in every developer's mind and to me personally they represent a step in my own evolution.... for those who have known me for years (Craig, Brian, Steve, Toby, others).
Good, even great software will never make money, it can only save money. It can nearly always be done cheaper, more simply to produce the same results.
Businesses survive by making money.
Good even great software is not necessary for a successful business.
We focus an incredible amount of our time on how to make "great" software .. How to make it maintainable, scalable, and performant.
Thinking back ... my most successful pieces of code have been complete hacks that others can easily attest to.
Two in particular come to mind:
Toby: The vacuum process and remote updating of sql databases in systems. We spent what 1-2 days on both? Neither were well thought out/scalable but they were probably the most valuable features delivered.
My entire current system. I spoke about it at QCon a bit but we completed it in 12 days ... we later spent 11 months to do it 'right'. It was a complete hack but it made money.
80+% of systems fail for non-technical reasons (bad or late ideas, bad management, political failures) ... Why are we so focused on the technical reasons?
The only technical failures I have ever seen that needed to be fixed were of already successful systems. How many similar systems failed to the one that succeeded.
It is a calculated risk, but one that should be thought of.