Can small development companies produce great software?
by Prof Barry Dwolatzky
Joe (not his real name) stuck it out in a 9-to-5 corporate job for nearly 7 years. He did his work as best he could … and got more and more frustrated. Everywhere he looked in his workplace he saw opportunities to do things better. He suggested innovative ways of doing things, but his managers had that “if-it-ain’t-REALLY-broke-don’t-fix-it” attitude of the corporate world. They weren’t interested in implementing Joe’s ideas.
Eventually Joe couldn’t take it any more and he resigned. He gave up his secure salary, his medical benefits and retirement plan. With his head full of fantastic ideas of how he could make money by devising better ways of doing things he became an entrepreneur.
A lot of Joe’s innovative ideas required software development. He had dabbled in writing programs, but he certainly didn’t have the skill and experience to develop “industrial strength” software himself. That’s when he came to speak to me.
In my nearly 40 years in the IT industry I’ve met tens (even hundreds?) of people similar to Joe. They are always looking for a good programmer who can help them develop a “killer app” that will change the world. They know what they want the software to do, but they just don’t know how to develop it.
The simple solution for Joe –one would think – is to put him in touch with a software development company. Their business is turning requirements into software applications – for a price. The problem is that software development companies come in a range of sizes.
- The big companies would not see it as worth their while to take on Joe’s small project. Even if they were willing to consider Joe as a customer he would probably not be able to afford their services.
- The small companies might be willing to develop Joe’s system for a price he can afford, but how well will they do the job?
My experience in dealing with small software development companies in South Africa is that most are simply terrible at delivering a high quality application on time and within budget. Herein lies the problem for a small entrepreneur like Joe. He is trying to set up a new business based on a concept implemented in software. He needs the application to be of good quality. If the software has quality issues he and his business concept are discredited. If the software costs more than he has budgeted or takes longer to deliver he may run out of money.
If anyone needs to work with a highly competent software development partner it is a small entrepreneur like Joe. The problem is that all he can afford are hackers who take his money and deliver him buggy software. Even this is usually delivered late.
What is the solution? We, the software engineering community, need to focus energy on bringing good software engineering practice to these small development teams. We also need to find ways – maybe via some benchmarking tool or certification – that will help a person like Joe know what he is likely to expect when he engages with a software development company.
Do you have any ideas on how to do this, or have you had an experience similar to the one I’ve outlined?