If your company is engaging someone to develop software for your business, there is a range of items to consider when preparing the software development agreement which will govern the project.
Ownership of IP
A crucial factor in any software development agreement is who ultimately owns the intellectual property (IP) in the developed software. It can be beneficial for your company to own the IP in the developed software as it means you’ll have complete control over what can be done with it, but this might not always be possible if the developer of the software wants or needs to be able to reuse it for its business. The key is to ensure the contract states clearly where the IP ownership lies and how any licensing arrangements will operate.
How will the software development be carried out?
Considering how the development will be carried out will depend to a certain extent on what is being developed. If there are clear detailed requirements and specifications at the start, then the project may proceed under the “waterfall” method. This can give you, as the customer, more certainty around fees and timings, will include formal processes for changes to be made and acceptance at the end of the project. However, it can be very difficult to clearly define what is required at the start. By working in an “agile” way, the development is carried out in an iterative way in short sprints and there is a repeated process of development, testing and review. This allows thinking to evolve, changes and improvements to be made and any issues that may arise (including ones that may not have come to light when the final software was delivered under the waterfall method) to be fixed. This is a more collaborative way of working and while the end product may be different from what you had planned at the start, it will likely have improved functionality and less bugs.
Restrictions on the Developer
Do you want to restrict the developer from using the software it has developed for you for other, potentially competitive, companies? Be clear about who owns the IP in the software developed and the ownership of any background IP that the developer uses in creating the specific software for you and the terms under which this IP can be used. Consider whether any restrictions should also cover ideas, know-how and techniques that the developer retains in its unaided memory (i.e. information the developer can recall without notes or records).
What if the Developer goes out of business?
If the software will be a critical element of your business, consider the impact on it if the developer goes out of business. For example, is there another developer that can develop the software for you? If the answer is yes, how would that impact you from a cost and timing perspective?. You could put in place software escrow arrangements where an independent third party holds the software that has been developed and releases it to you if certain events occur, such as the developer going out of business. Consider carefully the need for these arrangements as they require separate contracts and have time and cost implications.
Fixed fee or pay-as-you-go? A fixed fee has advantages to you, as the customer, as you know where you stand. Note that a developer will probably have included a buffer into any fixed fee to cater for unforeseen events and the need to increase its resourcing to ensure the development is completed on time. A developer is more likely to push for fees to be paid on a “time and materials” basis meaning they are paid for the time they spend on the project. This creates room for flex where there are changes to the scope or timings but provides you, as the customer, with little certainty of what the end bill will be and whether the developer will use their time efficiently. Typically, but not always, development under the waterfall method is under a fixed fee whereas the agile method is more likely to see a time and materials fee arrangement.
We go into more detail about the importance of confidentiality in our Article How do I protect my idea when sharing it? but, as it is such an important consideration, it is worth noting again that you should ensure your company’s ideas and business plans are protected by putting in place confidentiality agreements with potential developers or including confidentiality provisions in your software development agreements.
Know your Developer and think about the future
As a final point, contracting with a reputable software developer who has a track record of working in accordance with industry standards and in compliance with applicable laws and regulations will provide an extra element of security for your company. You should think about what support you might require from the developer once they have delivered the software to you, how the software is maintained and updated and what happens if you want to make a change or increase the functionality.