Businesses often use outsourced developers to create bespoke software, either for internal use or as part of a commercial project. Asking the right questions of your developer will ensure efficiency in development, manageable costs and a piece of software that meets your requirements. Here are the questions you must ask your software developer today!
Will the project contain open-source software?
The answer to this question will be crucial to how you can use your software in the future. Developers often use open-source code and this is not always a problem. However, use of open-source materials will be governed by a separate licence. Some licences can be relaxed (such as permissive licences), while others can be restrictive (such as copyleft). Some of the more restrictive licences could have serious consequences for your commissioned software such as imposing, have parasitic rights to your development, such as the requirement to distribute your commissioned software as an open-source product. Some licences restrict the use of an open-source material from being used for commercial purposes altogether.
If the works are already complete or close to completion, make sure you ask for a copy of all open-source software licences to ensure that the terms align with your commercial/operational intentions for the commissioned software. If your development is still in the early stages, make sure you have the open-source conversation as soon as possible to avoid the use of unsuitable open-source products.
For more on open-source – read our guide here.
Who will own the commissioned software?
A common misconception is that payment for a development service gives rise to an automatic transfer of an intellectual property vested in the commissioned works. This is not legally correct.
When you pay someone to create something on your behalf, they will own the copyright unless your agreement contains an express assignment. In absence of an express assignment, you will only hold an implied licence to use the commissioned works for purposes made known to the developer at the time of the commission.
This can be particularly problematic with software, especially if the software is critical to the business or may be considered valuable to the business. Furthermore, certain platforms will only allow you to upload your software (and hence provide it to end users) if you own the copyright and other IP.
If owning the code (and the freedom to use it commercially) is important to you, make sure this is dealt with at the beginning. Some developers may charge you more for transferring the IP.
If you can live without ownership, ensure you have a well drafted and clear licence which covers the permitted use (including duration, exclusivity, re-sale etc.). Consider what will happen if the developer ceases trading or otherwise stops being able to licence the software to you.
Will they outsource any elements of development?
The situation is further complicated if the developer outsources some of the work. Just as intellectual property does not automatically transfer to you as a customer of a developer without express assignment, the same happens between the sub-contractor and the developer. This means that the intellectual property may vest within the sub-contractor and not be capable of assignment to you by the developer under your contract (as you cannot transfer something you do not legally own). To prevent this, you could ask to see a copy of the sub-contractor agreement. You could also insist on obligations in your contract with the developer to have all sub-contractors waive their moral rights and assign or licence their intellectual property. If the sub-contractor is based overseas, there could be additional intellectual property considerations for ownership.
Will the developer be able to use the content on other projects?
Developers will expect to be able to utilise any skills they develop on your project with future projects. Others though may want to go further and develop competing projects for others. They may even want to be able to re-skin the code they develop for you and offer it to your competition.
If you want to stop this you should set this out in the contract.
Will the developer comply with data protection legislation?
You may provide your developer with a sample set of data to test the functionality of the software during development. If this contains personal data relating to real life customers, the developer could be considered a data processor under data protection legislation. In which case, you must comply with additional legal requirements including article 28 UK GDPR. If they are based outside the EEA and they will use personal data in the development or ongoing maintaining of the commissioned software, there could be data protection concerns.
This also makes the sub-contractor question even more important – you must ensure the contract covers how those sub-processors can be appointed and it is clear who holds liability for the actions or inactions of those sub-processors.
How will the commissioned software process personal data?
You are likely to have an obligation to ensure data protection compliance is built into a new software build under ‘privacy by design’ principles. This will ensure that your commissioned software protects user privacy and prevents data loss. This should be a part of the conversation from day one; as well as expressly set out as an obligation for your developer under your contract. Consider the minimum security and privacy requirements such as encryption, data minimisation, ISO compliance etc. Consider if you will become a data processor when the commissioned software is put into use – for example, commercially offered to other businesses. If so, you may need a data processing agreement with those business clients.
How will acceptance testing work?
Acceptance tests, which give you the opportunity to make sure the software build is fit for purpose before you sign it off and make the final payment, are crucial. Often, acceptance tests are linked to milestones and subsequently payments (i.e you only pay once each stage is accepted).
Ensure that an acceptance testing mechanism is included and that there is room within the build timetable for any changes required as a result of failed acceptance tests, to be completed.
There can sometimes be disagreements on whether the build passes the test, particularly when subjective criteria are involved. Ask for clear criteria, a mechanism for resolving disputes and the ability to walk away (and get your money back) if the build fails after repeated tests.
If there are some elements (aesthetically or functionally) which are key, ensure you have highlighted these features as milestones and have the ability to run tests which check these elements.
What level of ‘tweaks’ will be included in the price?
It is common to ask a developer to make tweaks to the first few versions of a build. Even seemingly minor tweaks can involve significant developer time, with some amendments creating a bittersweet affect requiring changes to other elements of the build or linked software. Ensure your contract covers how such tweaks will be managed to avoid any nasty surprises.
Will this be an ‘agile’ build?
Agile is a development methodology which gives increased flexibility for developers as it separates the project into individual processes. This enables your plans for the project to evolve. In theory, an agile methodology should ensure better communication with your developer and more flexibility should you change the scope of the project. However, this framework can also create a tension. There needs to be enough certainty for there to be a legal agreement (e.g. the pricing) but enough flexibility to give scope for changes.
For this reason, agile contracts tend to be significantly longer than traditional developer agreements.
If the developer is offering the benefits of an agile methodology, expect to have a robust, complicated agreement in place. Without this, the agreement could be void for uncertainty, leaving you with little or no come-back if things go wrong.
Our expert lawyers understand the law and technology, helping you to bridge the gap. Please contact the team with any questions you may have relating to software development.