Software Development Outsourcing – Guide for Success

Software Development Outsourcing is a critical topic for most Irish tech firms. With high employment costs as well as a skills shortage many Irish tech firms must outsource key areas of their development programme if not entire projects.
Last month Conor and Paddy presented “Offshoring your Software/Web Development: Keys to Success” at the Regional Development Centre in Dundalk IT.

This blog post is a summary of that presentation.

Why Decide to Outsource Your Software Development?

There are six considerations that must be investigated before you decide to outsource your software development.

  1. Availability of resources with required skillsets either in technology or in the domain.
  2. Do you need advice on what to build and how to make it scalable?
  3. The flexibility of the outsourcing partner, easy to add new members and remove members of the team that are not performing
  4. Quicker to build a team with an outsource partner, they have built a reputation, less risk for employees versus a start-up
  5. Costs can be reduced by cheaper hourly rates.
  6. Less risk of hiring team members that are not performing, reduce the size of the team if work stops, engage with the outsource partner for a specific length of time.

Software Development Outsourcing: What to Look For in an Outsourcing Partner

When you decide to outsource you need to look for the following in a prospective partner. It is key that you invest the time to appraise your potential partners, properly.
What are you looking for:

  • Someone with domain expertise, who may have delivered similar projects previously, case studies, references, speak to clients if possible.
  • Someone with expertise in the technology field.
  • What are their hourly rates vs what you pay locally for the similar experience?
  • Flexibility to pay for hours actually worked, outsource partner may not charge for hours not worked on your project.
  • A fixed price model better for people with clear requirements and limited budgets (MVPs).
  • Staff retention rates.

Benefits of Nearshore vs Offshore With Respect to Software Development Outsourcing

Working with software development teams in similar timezones to you means that you can have contact with them during your working day.
Offshore timezones don’t lend themselves well to real-time collaboration. Which we believe is a major factor in a project’s success.

Build, Operate, Transfer Model

A “Build, Operate, Transfer” model is put in place to allow for scalability and the transfer of expertise from the outsourcing partner to you. It is put in place in case your business grows and you would like to transfer the resources (team) to be directly employed by your company.

Onsite Visit

Do an on-site visit, get a feel for the city, its people and culture. View the office. Bond with the developers.

Setting the Development Process

The process is absolutely key to success. It needs to be clear to the everyone.

Scrum Agile Methodology

Scrum Agile methodology provides this clarity. When used correctly it has an excellent feedback mechanism to ensure that the product they are developing is correct and of quality.
It is important to understand that Agile is in truth, not a reality, the reality is you have a set of features, you have a budget and you have a timeframe.
But we’ll utilise the scrum agile methodology to help deliver quality products on time.
More information on agile methodology

Elements of Scrum

  • The Backlog
  • User stories
  • Sprint planning
  • Sprints
  • Daily Stand-ups
  • Refinements
  • Retrospectives

The Team

  • Product Owner
  • Scrum Master
  • Developers
  • QA
  • Dev Ops
  • DBA

By setting the process up correctly you should significantly reduce the management overhead of the project.
Key tasks as the product owner will be to create detailed user stories, set the acceptance criteria and prioritise your backlog.
At the beginning of a project, there will be a lot of upfront work in defining the process, explaining the product, creating the backlog, creating your acceptance criteria.
Also, visit the team regularly to build up relationships and understanding.

The Pitfalls of Outsourcing Your Development

It is essential to the success of your project that you avoid the pitfalls outlined below.

  • Not setting a process will cause issues
  • Not having well-defined communication channels. Make sure communication channels are open
  • Language can be a barrier

Tips to Overcome Some Pitfalls of Managing Offshore Teams

Some of the pitfalls can be resolved by the following:

  • Use Skype/Slack for constant communication
  • Set acceptance criteria
  • Leave sprint intact. The less change the better
  • Set sprint goals
  • Do retrospectives!!!!

Software Development Outsourcing: Ensuring Quality

Having a process in place is the only way you can ensure quality results.

Process to Ensure Quality – Software Development Outsourcing Project

  • User Stories – Wires – Full Designs
  • Product walkthroughs
  • Detailed Acceptance Criteria
  • Test Plans
  • Evidence of testing
  • Coverage
  • Product Owner Sign Off

Completing Your Project

From your backlog you will have a set of features that need to be developed for a product. You may be able to create a subset for MVP, version 1.1 etc. Release regularly to monitor progress.
You will need to draw a line in the sand on features then build the roadmap out

Quality Assurance: Make Sure You Have Planned for QA

It is important that you have planned for QA. This is a “crunch” element in bringing your project to a successful completion. Your development partner should be able to provide you with a comprehensive quality assurance process.
If you have any questions or would like some help in getting your software development project off the ground simply fill out the contact form on this site.