When it comes to developing software, many companies lack the internal infrastructure to do this themselves and turn to professional services. But how do you find the right software development partner? This can be a tough task, especially for those who are inexperienced when it comes to this area of expertise.
It is not uncommon for firms to take advantage of clients. This may involve increasing rates after the project has started, demanding extra money in exchange for the code, producing low quality code or any number of other issues. Whether this is down to inexperience, incompetence or even dishonesty, the outcome for the client is never a positive one. It’s extremely disheartening to see clients come into us looking for help after being subject to a negative experience with an unsuitable partner. Often, they are left with an app or product that doesn’t function correctly and their financial resources drained.
In response to this worrying trend, we’ve put together a few steps below to act as a guide to help you secure a suitable partner to get the job done right.
1. Lay out your partnering options
The first step is to lay out your options. Initially, you should consider whether developing and retaining capability within your own firm is possible. In this case hiring an external adviser unconnected to the development firm is advised. However, if you feel this is not a feasible option, the next thing to consider is a local software engineering firm – either a specialist or generalized practice. Opting for a nearshore company may save some cost. Going offshore may also offer this incentive but poses some extra complication too. Another obvious option would be one of the ‘’Big 5’’ consulting firms, which comprise of Accenture, Deloitte Consulting, Ernst & Young, KPMG Consulting and PWC. However reliable/capable these companies may be, they are also expensive which is an immediate deterrent for a lot of companies, especially the smaller ones.
2. Understand what you are trying to build
Regarding the actual product, the first question to ask is whether the scope is understood from the outset. If so, then clearly communicate this to your partner. The key to a good relationship with a software developer is a binding and agreed specification. Too much diversion from this may cause frustration and increased cost. Be cautious and focus on details when drafting this agreement.
If you are uncertain about the project scope, think about your MVP (Minimal Viable Product). This refers to an outcome with the minimal components and functional requirements that you would be satisfied with. Document what you know and don’t know and try to focus on the simplest method to solve the problem you’re facing to save both time and money. Visualization tools may help you through this stage – Balsamiq Mockups, Sketch and In-design are cheap and should prove beneficial in helping you envision your end product.
3. Plan the product life cycle
This stage involves specification, development and management going forward. If the software is a central component to your business, it is advised to gradually build capability internally and negotiate hand-over terms and processes up front. In other cases, a good partner may be sufficient. However, other factors are still important, such as a plan for business continuity. This may involve access to source code or ownership of documentation. Risk mitigation, a method for sharing and versioning documents, and supplier audits and oversight should also be considered.
4. Understand regulatory compliance, intellectual property and commercial considerations
Depending on the industry you are operating within, regulatory compliance or specific standards may be required. An example of this would be in the case of Software as a Medical Device, which requires specific processes and quality management, namely ISO 13495 and ISO 62304 certifications. In such cases, ensure your partner provides any necessary certification. Regarding intellectual property, it is advised to include a clause containing unambiguous transfer or assignment. If you have reservations or are unsure, contact your legal advisers and seek a declaration that the developer isn’t including any elements in deliverables over which they do not have rights. For commercial considerations, have a contract and include both a project plan and detailed spec to ensure clarity about what you are getting and when you are getting it.
5. Set your budget
The question of cost is often the make or break stage. Generally, it is calculated based on the number of days developers require to complete the project. Daily rates start at €250 which may be found overseas, and range to €2000 for highly specialized knowledge. Project management and testing can add between 25% and 100% depending on the industry involved.
Before you decide on a partner, meet the development team as opposed to just the sales team and get a feel for the company. Keep in mind that focusing purely on rates may cause a false economy. Deciding to initially pay higher cost for guaranteed quality may prevent frustration and extra cost in the future. The last thing anybody wants is to be left with no product and no money.
In the case of software licenses incurring part of the cost, ensure that the terms are clearly understood. For example, outline whether it is a once off or recurring fee and whether it is possible to resell to your customers. Paying for a specification upfront almost always proves to be worthwhile, as in this case you are provided with options for developing with a different partner if necessary.
Finally, be vigilant, explore options and always get a second quote!!