Stay lean, scale quickly and manage risk with integrated outsourcing
Scale quickly and manage risk
How can software organisations expand quickly whilst keeping lean, maintaining their knowledge and controlling quality and productivity?

As organisations with software development needs grow with the size and number of projects expanding, the following challenges demand resolution:

  • Running a lean organisation (with minimal resources on the bench)
  • Able to scale quickly (regardless of internal resource availability) to start new projects without delay
  • Maintain IP
  • Maintain Quality
  • Maintain Knowledge of our developments
  • Provide flexibility to efficiently insource/outsource projects according to resource availability
  • Avoid/minimise timezone/calendar challenges

The objectives

Objectives are as follows:

  • Deliver a flexible resource model through the development of a pre-vetted/contracted directory of reliable 3rd party resources that can be engaged quickly and effectively when needed
  • Maintain an efficiently manageable resource allocation model by tracking 3rd party resources (as named resources) exactly like internal resources
  • Support rapid onboarding, reliable quality and ownership of 3rd party work through secure sharing of the internal tool chain and internal processes
  • Protect IP through contracts that clearly state allowable use of code, tools and knowledge and define processes for project deallocation
  • Maximise productivity through sharing of internal programming standards, establishment of processes for staff rotation, hours and holidays
  • Ensure quality through peer review by senior expert internal staff of all 3rd party deliverables

Solutions

Various models should be considered, including:

  • Fully outsourcing projects
  • Individual resource extensions only
  • Outsourced teams

Given the needs to maintain quality, knowledge and IP, I recommend that the best model for colocations is typically outsourcing teams (eg. iOS for Project ‘X’). You might sometimes consider engaging individual resource extensions, but never full projects.

The actions

In order to achieve the above, work with legal and resource administration to undertake the following:

  • Map your expected 3rd party resource requirements (discipline and location)
  • Develop policies for the use of 3rd parties with senior management
  • Introduce vendor selection criteria and assessment/engagement processes
  • Develop vendor contracts and documented “Ways of working” including:
    • Staff allocation and rotation expectations/procedures
    • Quality management (code review practices)
    • Time management / reporting / invoicing / payments
    • Availability and support expectations, including around differing time zones and public holidays
    • Intellectual Property
    • Responsibilities (yours and theirs)
  • Develop and implement rules (with DevOps) for how vendors integrate with your toolchain and knowledge repositories
  • Create shortlists, assess and contract potential partners
  • Add 3rd party resources (named individuals) to your resource management sheets
  • Hand over to the standardised resource management process (as detailed in Manage distributed teams with a scalable agile delivery model)
  • Report on the demand for 3rd party specific resources in specific locations if you want to build business cases for expansion of those internal teams

The implementation process

I have generally targeted smaller bespoke software development organisations (typically around 20 staff) as their rates are most competitive and they are unlikely to feel that they are competitors to you. These 3rd party organisations must be treated as partners. Include non-compete and non-poach clauses in your agreements. Whilst you may occasionally visit your partners sites, you can generally work remotely from each other in your respective work environments. This will maintain flexibility.

Challenges

Challenge in managing 3rd party outsourcing include:

  • Ensuring availability of resources for internal code review of 3rd party work (when the outsourcing was to manage resource scarcity in the first place)
  • Getting resources to manage quality issues with 3rd parties
  • GDPR compliance may require customers to be informed that 3rd party resources are being used on their projects.

The results / outcomes

The targeted results of implementing the above include:

  • Able to adjust your resource pool quickly and effectively to respond to changes in project demands
  • Able to onboard 3rd party resources efficiently
  • Given mandatory internal code review, able to maintain the quality and our knowledge of the work done by your 3rd party partners
  • Easily able to report and visualise the engagement of 3rd party resources, including what type of resources are under most demand internally. This assists internal resource planning.