12 questions you should ask potential software development partners
When choosing a software developer to work with, how do you know you are making the best possible decision for your business?
You know you need access to a breadth of expertise that you won’t get by hiring in-house developers. Outsourcing is a smart response, but that doesn’t mean it’s without risk.
High profile cases where things went wrong, like the £150 million settlement payment from the UK Government to US developer Raytheon in 2015, serve as a powerful reminder of what’s at stake. Even at the scale of a mid-sized business, the costs in revenue, reputational damage, lost opportunities and harm to staff morale can be significant.
So how do you get it right? As with any business investment, you need to ask incisive questions that will allow you to evaluate potential suppliers. You need to know: is this partnership going to work for you and deliver what you need?
1. What are their accreditations and experience?
Ask any potential supplier of software development services to demonstrate their experience and expertise working on projects in your industry. While the core skills in requirements gathering, user experience, coding and project management (amongst others) are similar across different kinds of software projects, they will be deployed in different ways and within different constraints for biomedical applications as opposed to mobile game development, for example.
It can take a surprising amount of time to build a solid understanding between your product team and an outsourced software development team, so the more experience your chosen developers have with your kinds of projects the less time and budget you’ll waste on miscommunication and misunderstandings.
2. Ask for case studies and check their testimonials
You would do this for any supplier or outsourcing arrangement, so definitely don’t neglect it here. If you can’t find relevant case studies and testimonials on their website, don’t shy away from asking direct questions about how they back-up their claims about previous projects.
Look to see if there are consistent themes that come up in testimonials again and again as these will be a fairly reliable indicator of what it’s like to work with them. It’s also worth asking for contact details for previous clients so you can speak to them yourself.
3. What is their expertise in User Experience (UX)?
Expertise in building a codebase that achieves a specific set of outcomes is one thing. Designing software that is intuitive and makes it easy for the user to perform the necessary tasks is a different skill set.
We’ve all experienced irritation or, worse, dread whenever we end up duplicating actions, we have to search for the right buttons or decipher abstract icons. You don’t want to launch your new product, the culmination of years of insight into your market not to mention the investment in its development, only to find that people out in the field hate using it.
UX design typically starts with user research to understand more about what the user really needs from the software and will also include some way of testing prototypes with live users. Ask how they plan to manage both of these as they can be more difficult for an outsourced than for an in-house team.
4. How do they approach software design for mobile devices?
Depending on your project your solution might be accessed from a standard desktop computer, a laptop, on a tablet, phone or on a product that’s specific to your company or customers.
Great developers have the technical and UX knowledge to make the most of the capabilities of the relevant devices, so if your project requires a mobile app then your developers need to be able to design a user interface for the smaller screen. A web-based solution may also need to be compatible with tablets and phones, in which case you’ll need developers who are experienced in responsive page design. This ensures that your application is designed to scale and re-arrange to display well for the different screen sizes. Let your prospective developers know who will be using the software and how they’re likely to access it and ask about how they’ll approach the solution.
BioMedical, for example, have expertise in building mobile apps, as in the work we did on the Global Birth Defects App.
5. Are they willing to sign a Non-Disclosure Agreement (NDA)?
If you are going to share business critical information about new product developments, you need to know that your intellectual property is secure. In fact, a good software developer will need to understand the context and business background of your project before determining whether or not they can help. (It won’t be enough to issue them the list of skills and coding languages you’re looking for!) So it’s highly likely you’ll need to share sensitive information before either side is happy to draw up a contract.
Any reputable software developer will be only too happy to sign an NDA, so if you encounter any hesitation this should raise a red flag immediately.
6. Are they happy to start with a small-scale project?
A seasoned software developer will understand it takes time to build trust and understand the full context a software solution will operate within. Experienced developers prefer their teams to start small as this allows them to learn about the context without risking a lot of time and effort.
The same applies to the project as a whole. By defining a pilot project both you and the developer can make some quick wins, while learning a lot about how to work together. If they’re not prepared to do this, think again about contracting them.
7. What will they do if the specification isn’t clear enough or needs further development?
If you’re outsourcing software development, you may not have the expertise in-house to write a specification document for your project. In fact, spending your time and energy on developing a detailed specification isn’t always the best approach.
Some development agencies will simply follow the specification document you give them and build to that. To really tap into the technical expertise that you’re looking for by outsourcing, you want your development team to work with you in a consultative phase, where you develop the specification together and check you’re heading towards the ideal technical solutions, given your vision for your product or service.
8. Who owns the copyright for the source code?
If an employee develops software then the software source code they’ve written will belong to you, their employer. Did you know, however, that if a contractor develops software they will retain ownership of the source code unless the ‘contract for services’ stipulates otherwise. For this reason, it’s vital to clarify up front who will owns the copyright for the source code and how this will be represented in your contract.
We believe that you should always own the source code for your proprietary software and we wrote this blog post to arm anyone looking to outsource with information on ownership.
9. What do they see as likely emerging cyber-security threats?
Your developers need to be proficient in building secure software that is properly defended against data breaches. As a starting point, most projects will need an authentication process which ensures only authorised users can log-in.
You already know that new cyber-security threats are emerging regularly, so you need your developers to not only know current best practice, but also the latest thinking on security and where and how new vulnerabilities may arise.
10. Are your developers based in the UK or offshore?
Offshore software development, for example with companies based in India, Vietnam or Brazil can be an attractive option as the costs are often lower than sourcing UK based developers.
The downsides of offshore outsourcing include the potential for cultural and language barriers making it harder to get a common understanding of the project and your objectives. You may also have to factor in the time difference: while most coding and review work can happen asynchronously, you will still need some real-time conversations to properly direct the project.
11. Ask about their Quality Assurance Process
As you’ll already know, it’s not enough to send over a project specification and sit back and wait for the perfect, finished software product to come back to you. An essential part of software development is quality assurance, including code review and unit testing.
Fixing software bugs is a part of every project, no matter how experienced the developers, so you cannot afford to leave this element to chance. It will define the quality of the finished product, so ask up front and find out how your developer manages the process, how long it takes and what input they’ll need and expect from you.
12. How will project updates and progress reports be shared?
It’s important to determine what levels of contact you can expect during the project and how the developer will communicate with you. You’re outsourcing for a reason and therefore micromanaging the project is not going to be a good use of your time. On the other hand, you and your key technical people need oversight of
- how the project is progressing against original objectives
- any issues or anything unexpected that arises
- the key decision points during the project, and who must sign them off
- the process to approve any changes to the agreed specification
- quality of work and whether it meets all relevant standards
- whether or not expected timelines and budgets will be met
Don’t crash your ambition by settling for less
The process of finding the right software development partner can be lengthy and frustrating, and that’s before you’ve even started the project. Yet this step is arguably more important than the development itself and the right partner will be happy to answer your questions.
You have ambitious plans for your business. At BioMedical, we’re as committed to ensuring your product or solution achieves its full potential as you are.
Contact us if you’ve got a project you’d like to discuss.