Finding and Managing Software Contractors

Posted

Entering into a contract with a software development team can be daunting. The process requires a lot of trust! We have a few tips that we recommend to clients to get the best results from your contractors:

1) Problem comprehension
Ensure the developers you select understand your problem. If it feels like you have to do a lot of explaining at the initial meetings, this may be a sign that the developers aren’t comfortable in the domain. Even the best developers will produce bad software if they don’t have a good understanding of what they should build. The wrong team will also require more effort on your part to ensure they correctly understand your requirements. This is critical in the case of regulatory restrictions – finding developers who are familiar with your regulatory environment is key.

2) Relevant experience
Find out if the developers have some relevant experience. Having previously written similar systems or worked in the same field is a good indication that the team know what they are doing. References can help here, don’t be afraid to ask.

3) Work process
Get detailed information about how the developers want to work with you! This is often overlooked but is critical. The developers should have a process in place that they can articulate. Where do they plan to work? How often will they meet with you? How do they manage new requirements or defects? We recommend frequent contact (weekly) and frequent delivery of in-development versions of the software. Be cautious about developers who don’t intend to let you use a system before it is complete!

4) Existing systems
Consider your existing systems for compatibility. Do the developers you choose need to work with an existing codebase, or interact with other systems? Are there language requirements?

5) Initial direction
Have an idea of the system you want before talking to developers. For example, should your system be desktop or web based? It’s fine (and recommended!) to take advice from the developers, but remember that developers naturally lean on their skill set to solve problems, which may not be the right fit for your problem.

6) Contract termination
Ensure that a provision is in place to leave the contract if it isn’t working out. You should never have to pay the whole bill up front!

Most importantly, you should feel comfortable discussing the points above with the contractors you choose.

Working with the Contractors

Once you’re happy you have the right team the main work is done. There are still things you can do to make sure the process is successful:

  • Make time to talk to the developers frequently. We recommend at least an hour every few weeks. The developers should tell you what they’re working on, and may have questions.
  • Use development releases of the software. Early access releases let you get a feel for the software while it’s still in development. Using the software is the best source of ideas for how to improve it, or to identify misunderstandings.
  • Question everything! Developers love talking about the systems they’re writing.