Small business owners seeking to develop good software at a reasonable price tell many sad tales about their experiences. Off shoring (i.e., hiring a development team outside the country), nightmares frequently emerge in these stories. Also cited as problematic is the local individual freelance software developer recommended by a family member or friend. Either way, the business owner often feels ripped off and unable to move forward.
When the software is delivered, the business owner is typically not capable of assessing what they have. Nor can they manage the delivery and support of the software product whether used for vital internal processes, or for processes in support of services provided to customers. After spending tens, if not hundreds, of thousands of dollars all that can be claimed is a pile of useless code.
Four key principles can go a long way to improving the outcome of outsourced software development projects.
First, protect your intellectual property (IP). Make sure every deal starts with a contract that clarifies the business as the exclusive and outright owner of all software code generated as part of the agreement. Research the potential for copyrighting or even patenting elements of the code. A software developer based in country helps to assure you are working with an entity bound to the same IP laws. Investigate the levels of IP protection offered by foreign countries, wherever the development team may be located. A good IP attorney can prevent many headaches and assure the business is protected.
Second, manage the project and product throughout its complete lifecycle. This includes initial requirements and analysis, design and development, acceptance testing, deployment into production, maintenance, system performance, security and enhancements for as long as the software product is active. Don’t rely on an outsourced software developer to represent your interests in managing the project and product throughout its lifecycle. An experienced project manager and product manager who works for and represents the business over time is in the best position to assure the business achieves the optimal value from the developer. The project manager maintains a diligent eye on the interests of the business throughout the lifecycle, freeing the business owner to concentrate on running the business.
Third, plan for ongoing maintenance and support. Getting the software developed is only the beginning of the life cycle. Hiring a developer to get the software developed with no ongoing responsibility to support it once it goes into production is a risky proposition. Customers will report errors or bugs and they will request enhancements and the addition of new features. Make sure the software developer has the resources to provide these services and make sure you have a maintenance and support agreement that delineates the terms.
Fourth, protect your investment by using and adhering to industry standard technologies. This may seem obvious, but all business software should be built using standard programming languages, databases, tools, data transfer and application programming interfaces (APIs). This assures that resources will available at a reasonable cost to work on this code, assuming the original developer is replaced for any reason. It also helps to ease the interoperability with other applications and information flow without requiring expensive software development to resolve obscure or non-standard differences.
Software development can be complex and expensive for startups or small businesses. These basic steps will help to secure a viable and valuable product without blowing the budget on mystery code that nobody understands or knows how to manage.