Outsourcing Software Development the Right Way

Outsourcing something as complex as a software development project is quite unlike any other process. There are many considerations for ensuring good practice and a successful outcome. Any reliable and experienced software development company should be able to work with you to draft a project plan which will lead to a smooth and effective delivery of a system that will be an asset to your business model.

The most important key to a successful software project is maintaining good quality communications, but you might find it helpful to consider some of the following guidelines.

Analyse your business requirements

Every project needs clear objectives, so it is very important to establish these right at the start by analysing your business requirements and documenting them in a Requirements Specification. These could be drawn up as part of the contract, or as a separate reference document. They should form the basis for the scope of the work to be agreed between the customer and supplier. Any subsequent changes should be tracked, agreed by both parties and managed meticulously too.

Draft an RFP (Request for Proposal)

Always be as precise as possible about what you need the software to do for you. Be clear about your requirements, budget, timescale & expectations. After sending this to potential suppliers, you can then evaluate the responses and work with your selected supplier to refine a detailed development plan.

Evaluate the supplier

When considering a software supplier, make sure you do your research. Check recommendations or references from previous customers and request case studies for similar projects.One quality indicator could be any industry awards they have won. Also, bear in mind that if they have professional partnerships with large software vendors or technology providers,
these will no doubt have their own standards and ongoing performance measurements to ensure quality.If your business is regulated or has particularly high delivery requirements, you may already be looking at ISO or CMM (Capability Maturity Model) as a requirement for suppliers. But if this is not an absolute necessity, you may still ask for a quality and capability assessment to be carried out. This process often has benefits for the supplier as well, in terms of improving their efficiency in the long run, so it could be worth sharing the cost of this assessment.

Draw up a contract

Once you’ve made your choice of supplier, it’s time for contracts. A software development contract would typically be either fixed price or based on time & materials. It is obviously a crucial document and should be detailed enough to ensure a thorough understanding of the project, with clearly defined deliverables. It should determine the nature of the relationship between the parties involved. Costs and timescales should be defined here too.In the contract, you may not only want to outline the scope and deliverables, but also the processes for change management and ongoing monitoring, as well as problem reporting procedures.

Have an Acceptance Testing strategy

Before launching a development project, you should clarify how you will be evaluating the deliverables and ensuring that the system is satisfactory. Having a process around Acceptance Testing will help you define success criteria for each deliverable. Remember to include system usability criteria such as user-friendliness, in case the underlying functionality is in place but not being used effectively by the end user.

Choose your Project Management tool

The larger or the more important your software project is, the more critical it is that you use good project management software. A good PM tool will give you a common collaborative solution for everyone to work together and track the project against targets. Working through just e-mail is far from as effective as using purpose-built PM solutions such as JIRA or Asana, for example.

Review early, review often

It is good practice to schedule review meetings and “sync-up” calls regularly. This might be daily or weekly, but they should be kept punctual – especially when working across time zones. Do not wait until the end of the project to review documentation. It is extremely useful to safeguard both parties by keeping minutes of these meetings, detailing actions and decisions.Sometimes face-to-face communications are not achievable, but using video conferencing tools can be a great alternative that helps to build a stronger rapport between teams and turn the relationship into a partnership.

Keep documenting

For any programming project, a solid documentation trail is worth its weight in gold.
Good documentation will help to track all aspects of the application and improve overall quality. Some of the key focal points when keeping records are development, maintenance and knowledge transfer – areas which will support everyone throughout the entire development cycle.Troubleshooting documentation can be vital when production issues arise. Things like error codes should be clearly documented along with Frequently Asked Questions (FAQs), to help developers deal with common queries or problems.

Prepare your Training Plan

One important consideration is around user training and user documentation. Be clear on how you will ensure a successful software launch. Are you planning to roll out a training programme in the organisation, or do you expect the software development company to provide this? Who will be responsible for creating user manuals and help guides? This crucial aspect can often be overlooked and lead to confusion and poor adoption of new systems. As the old saying goes: If you think training is expensive – try ignorance!