July 28, 2017

Agility Outsourcing

When it comes to Outsourcing Business / IT applications, there are 2-3 models that CIOs and IT leaders are most accustomed to.  These models are so well entrenched, that stakeholders seldom look for a better model.  It is not just IT leaders who are pushing these models, the entire IT Services industry continues to push these older models as they are profitable for their own businesses.  Given the rapid pace of change in the Software / Tech industry, it is now time to rethink established Outsourcing models that Enterprises have relied on for years (decades really).

First, the basic definition of Outsourcing. By this, we clearly mean Outsourcing the development of business applications (could also be legacy migrations, data management, and many more projects).  Once stakeholders have determined that a project needs to be outsourced, it then becomes a question of finding the right vendor, timelines, and budgets to get them executed.   Here I will not go into the details of coming up with Business Requirements, Requests for Proposals,s and sourcing vendors, but focus more on Outsourcing as it relates to methodology, technology, timelines, and budgets.

The most dominant models today are a) Fixed-cost model b) Time and Material model and c) Staff Augmentation model. The Fixed-cost model is easiest to grasp by business sponsors. They allocate budgets for different projects and assign project managers to execute on those.  While this model is tried and tested, there are many downsides.  Many of the details around project execution including architecture, technology stack,  development methodology, and deployment practices are left to the vendors. The further downside to this model is you have to work with vendors' change management processes.  Not paying attention to these downsides, would result in increased TCO over the long term.  

The Time and Material model of Outsourcing is also very well tested.  While difficult to get upfront estimates around total costs for their projects, it would at least give flexibility around change management.  However, all other downsides from the Fixed-cost model still apply here.  The third model is simply Staff augmentation.  You would bring in technology consultants and put them under existing teams to speed up project execution. This is Outsourcing to the extent you don’t have to bring in people on a full-time basis and is closer to the Time and Material model and it also comes with the same set of downsides.

To address shortcomings with the above models, there is a better model that I refer to as “Agility Outsourcing”.  This model is in part based on the best practices seen in Software companies to build their own products coupled with solutions to meet budgetary and time constraints of Enterprise Outsourcing.

Here are the key underpinnings of Agility Outsourcing:

  • Agile Development: Start with prototypes and continue to build on them.  Project features are released every 3-4 weeks (aka Sprints). Create a feedback loop from business users to continuously improve the project
  • Using Low-code platform:  Software companies rarely build anything from scratch. They leverage existing “libraries” and open-source software to build their products. With a Low-code development platform, you only need to “compose” your application from existing widgets and connectors and finally auto-generate code for your projects
  • Application Architecture:  It is super important to have a micro-services-based architecture that is API-driven to reduce maintenance costs in the long run. Loosely coupled as opposed to the tight coupling of various systems
  • Open Source Software: Use of freely available software and avoiding proprietary technologies that increase licensing costs in the short and long term
  • DevOps: Having Continuous Integration and Deployment (CI/CD) allows developed projects to be current and up to date all the time (no more launch dates)
  • Cloud Deployment: A considerable amount of savings is possible when your projects are deployed to either Private or Public Cloud

Business benefits of Agility Outsourcing:

  • Budget: This model should result in over 40%-50% cost savings over traditional Outsourcing. Most of the savings come from the use of a Low-code platform for development and maintenance and the rest from underpinnings stated above
  • Timeline: Projects in this model would be executed 2x faster than existing models as this model is designed from the ground up to be very iterative with a continuous feedback loop from business stakeholders

The way to structure the Agility Outsourcing project is to have a Statement of Work for the entire project with a plan for monthly Sprint deliverables and payments. Vendors who offer Agility Outsourcing should be able to give an estimate for the total cost of the project if they have reviewed the project requirements.  With this model, sponsors not only have an overall estimate for the project but also get flexibility if business needs change.  The real gain here is all the best practices and technologies used by Software Industry, benefitting outsourced projects.