While doing some paperwork, I just came across an old invoice for a piece of custom software development in 2011. At that time, someone wanted me to help building a small ecommerce shop. Looking back at the invoice that we paid to a young team in Poland, I am surprised about the amount we paid. Also, I am a bit sad, that the investment in software did not yield any visible returns today.
In the meanwhile, I have seen this pattern more often: People invest in software development without getting the return they hoped for. Highly motivated, young developers promise to build some solution at a discount price assuming they can work with a new software technology. This would provide them a context to learn something new, while getting paid for it. For the people who invest money, the bet is that new frameworks and technologies can help to solve a business need faster. The developers get paid, the result is not as expected and this cycle continues. Some money can get lost on good will, before one of the sides pulls the plug.
Outcomes of software projects are really hard to judge. In the book “The Innovator’s Hypothesis: How Cheap Experiments Are Worth More Than Good Ideas”, Michael Schrage quotes Warren Buffet that expected returns of innovation should be related to costs of innovations early on.
This thought is interesting. Looking back, the software project from 2011 above was an experiment. The developers were able to experiment with some new technologies. The business side was able to learn more on building a software prototype. Looking back, the same results (basically a failed working prototype) could have been achieved wihtout spending money. The software developers might have better experimented with an open-source library or would have written blog posts. The business side could have started with a cheap mailing list or blog before going into development of a web application.
Now, my situation is a bit different. When working with hardware, it is a bit harder to experiment with the latest open-source technologies (although I try a lot like discussed in embeddednodejs.com).
Hardware engineers understand the merits of “never change a running system”. When developing software in a hardware environment, you get an impression that everything moves slower, but on the other hand this can lead to more stable results. But as the Internet changes business models of hardware companies, I am sure we’ll see the question return on how to invest in a software projects.