Hiring external consultants to developing or co-developing technology is a compelling option for businesses lacking the internal resources or expertise to carry out a development project. While common, external development or co-development requires careful planning. What follows are 10 tips to make your external development project a success.
1 Own what you pay for. Contrary to popular belief, it is not because you pay for
someone to do something that you own the intellectual property developed for you.
Actually, Canadian law generally says the opposite, namely that the external developer owns the development unless a proper written assignment is executed. Make sure you get such an assignment before the project starts to avoid paying for deliverables you do no own.
2 Keep it confidential. Your external developer may have access to very sensitive information about your project and your business which may include innovative ideas, launch strategies and unreleased content. Keeping everything under the covers by having proper non-disclosure arrangements will not only maintain your competitive advantage but will also leave the door fully open for eventual patent filings.
3 Identify what you are buying. Many external developers build expertise and reputation on the basis of “platform technologies” which are tweaked or improved to fit their clients’ particular needs. While allowing for lower development costs, such shortcuts have the downside of being dependent on base intellectual property that the developer will not be willing to assign and that you will not control. Make sure you have all the information you need to evaluate the cost-benefit of such partial development (and partial ownership) before committing to the development.
4 Make room for change. Other than death and taxes, one thing is certain: project scope and orientation will change. Instead of the usual wishful thinking that the description of the deliverables on day one will correspond to the output at the end of the development project, set out change control mechanisms which will frame the impact of changes on the financial terms and timeline.
5 Manage third party licenses. There is nothing worst than receiving your deliverables and learning that you need to license and pay for third party software in order to use them. Your external developer should keep you informed of third party software it wishes to include in your project and you should be able to review the licensing terms before it is implemented in the deliverables. You should also have proper mechanisms in place for managing the integration of open source software.
6 Get the right people. Finding the right external developer is often based on the perceived personality fit and qualifications. You want to make sure that the people who will actually carry out the work are the same people who made you decide to go with a given external developer. This question involves framing personnel allocation, personnel replacement and subcontracting mechanics.
7 Motivate through payment. Contractual obligations are nice but what really makes external developers deliver is money. Consider crafting a milestone-based remuneration model and allocating as much payment as possible for the last milestone(s) of the project instead of the early milestones and startup fees. Such financial incentives should motivate your external developer during the all-nighters at the end of the development project.
8 Think outside the box. External developer’s remuneration can derogate from the usual hourly or daily rate. If your development strategy allows for such creativity, consider making your external developer share the development risk by integrating incentives pegged on the performance of your project going forward. Such strategies will usually lower the upfront costs and motivate the developers to exceed expectations.
9 Settle recognition beforehand. Do you want the world to know that some (or all) of the development has been taken care of by external developers? If so, what level of credit are you willing to give them? Can they use the success of your project for the promotion of their development services? Manage expectations by settling this issue with your external developer beforehand.
10 Think long term. Projects evolve and code needs to be maintained. Do you want to rely on your external developer for future modifications and maintenance? If so, on what terms? If you cannot have a copy of the source code, consider having a source code escrow agreement to prevent against the bankruptcy or disappearance of your external developer.