This is part 2 of a 2 part series. In part 1, we saw the resolutions for software vendors. In this part 2, we shall see the resolutions for their customers who outsource software development to them.
Resolutions for Customers
How do you decide on a vendor? Like every other profession, there are good people and there are bad people in software development. The latter kind would rob you of not just their money but your precious time. (Over the years, we have heard our share of such stories. They are always sad.) Please make a new year resolution to become smart and make sure that you do not to get cheated.
First, come out of the lowest-price-tag mentality. There is a huge difference between software developed with adequate skills and without adequate skills. So, it would be a dumb choice to trust your software development job to someone just because he charges little, because whatever little you pay is all going down the drain. You will have to re-do the damn thing again anyway. If you simply do not afford what it takes, then wait it out. There are many free and open source tools, make do with them for a while. You may also want to explore the DIY approach we suggest so that you are doing most of the work and the money you have to shell out is close to zero. (It can be exactly zero, with a little creativity.)
On the other hand, hiring a team of highly expensive super-developers for your simple software would be like buying a shotgum to kill a fly. So the real smart thing would be to understand what kind of expertise your software may need and decide on the vendor accordingly.
A still better way to do it, which most people actually find easier, is to chop your software requirement into small parts, and think of those as subsystems that can be outsourced to different vendors with different expertise. With a microservices architecture, you could do it at services level; or with Xsemble, you could do it at a much smaller granularity.
Another resolution you should make is to have regular checkpoints throughout the development of the software, which will help you to evaluate the progress and take necessary measures if you sense you are being taken for a ride. There are many things that could go wrong during the development, and keeping yourself open for a discussion with the vendor is the least you can do.
In fact, go a little further and seek incremental deliveries of the software. That way you could see it in action as it is built step by step, and can understand more about it. (If your software is getting built with Xsemble, you should further ask for the flow diagram of your software as it gets built and check it out for any obvious shortcomings.) At a minimal, keep weekly status meetings with the software development team, and have a sense of how the work is progressing.
When Acism executes or oversees a software development project, we educate our customers and implement most of these things in the process by default. Most customers hardly realize the value add these practices bring to them. 🙂
Happy new year 2020! If you have made any resolutions along these lines, please add those to the comments below.