While it is critical for companies to build up internal skills to become a tech-empowered company, the scarcity of technology talent will prevent most companies from achieving that goal. “Contract coding”, a concept similar to contract manufacturing, can enable companies to create proprietary technology capabilities while maintaining the resource flexibility.
IT organizations have been leveraging assistance from external vendors for a long time. IT outsources routine activities such as application maintenance, production support, and help desk to 3rd party companies. IT engages Systems Integrators to install new software packages such as ERP and HR. Consultants have been deployed to help companies develop IT strategy and select software packages.
With more and more companies trying to make technology a core part of their businesses, the latest debate in IT is if companies should insource all of IT development and build all applications in house. Would IT outsourcing or Systems Integrators still be relevant in the future technology-centric world? What sourcing strategy changes should companies adopt to support a tech-empowered business model? How should they manage 3rd party technology vendors in the new world?
Challenges with 100% Insourcing
Insourcing of technology functions makes sense on paper. They provide companies the autonomy to control their own destinies to embed technology into all parts of the businesses. The insourcing allows companies to build and retain competitive differentiation based on technology. Insourcing would also enable the agile software development model where teams work together at the same location.
In reality, it’s difficult to recruit and insource all the developers that companies would need. The cost of such moves would be prohibitive. The 100% insourced model would also be challenging to deal with the ebb and flow of business cycles. Given that it takes time to hire the talent, the speed to get to 100% insourcing might not support the velocity that the companies are looking for. Lastly, the fast-changing nature of technology would require companies to deploy an effective talent strategy to constantly upgrade skills and capabilities.
An alternative approach to sourcing would be to learn from the manufacturing industries and deploy “contract coding” – similar to “contract manufacturing”.
What is Contract Manufacturing?
Contract manufacturing is a practice that has been popular in manufacturing-heavy industries such as electronics and computer hardware, pharmaceutical and medical devices, automotive manufacturing, and even fashion. In those industries, companies have been able to leverage contract manufacturing to achieve speed to market while maintaining cost efficiency. Contract manufacturing also provides companies the flexibility to deal with demand fluctuation.
Wikipedia defines contract manufacturing as follows: “In a contract manufacturing (CM) business model, the hiring firm approaches the contract manufacturer with a design or formula. The contract manufacturer will quote the parts based on processes, labor, tooling, and material costs. Typically, a hiring firm will request quotes from multiple CMs. After the bidding process is complete, the hiring firm will select a source, and then, for the agreed-upon price, the CM acts as the hiring firm’s factory, producing and shipping units of the design on behalf of the hiring firm.”
Some of the leading adopters for contract manufacturing include Apple (with Foxconn as the contract manufacturer), Nike, Cisco, and GM/Ford. In fact, almost 50% of all car manufacturing is done off-site by contract manufacturers. Those companies have adopted a number of practices to fully leverage contract manufacturing:
- Keep the critical skills in house
With manufacturing contracted out, the users of contract manufacturing focus on their core competitive differentiator: R&D, product design, and quality and standards control of the manufactured goods. While Apple has famously leveraged Foxconn to manufacture its iPhones, “Apple completes prototypes near its head office [in Cupertino, California], and never lets this process outside California,” said an employee of a parts supplier with access to Apple’s design unit. (Quote from a Nikkei Asia Review article). Apple doesn’t let anyone else in on its product research & development secrets. Apple has also been stepping up in-house chip design to further create competitive differentiation.
- Build strategic partnership with the contract manufacturers
Leading contract manufacturing users don’t just rely on contract manufacturers as pure suppliers. They create bionic partnerships with the manufacturers to create win-win situations. For example, Apple invested in machine tools that were otherwise used to make luxury cars and rockets, to help further Foxconn’s manufacturing capabilities. Apple also created real-time inventory management capabilities for core parts at Foxconn’s warehouses. Apple employees are also present at the supplier’s factories at all times. The two companies have practically integrated their operations.
- Deploy rigorous performance management processes
It is more difficult to manage the supply chain performance with external vendors. To avoid losing sight of vital production performance and rapidly resolve issues as they arise, companies must work closely with the contract manufacturers to a set of mutually agreed performance indicators. Those indicators would ideally mirror the same ones if production was internal. Companies also must implement formal and rigorous protocols for ongoing communication and issue escalation and resolution.
How to apply the learning of contract manufacturing to IT?
Traditional IT outsourcing focuses on labor arbitrage and typically includes commodity IT activities such as testing, production support/break and fix, and help desk. The drivers for the activities would be service level agreements (SLA) and the rates will be the so-called P x Q, hourly rates multiplied by the number of hours.
Applying the learnings of Contract Manufacturing to IT, I would propose that companies add “contract coding” to their arsenal of sourcing weapons. Similar to contract manufacturing, Contract Coding will allow companies to approach third party IT firms with a design and the third party IT firm will develop the software code to create the product and deploy that into production.
Contract coding would include both the commodity IT activities covered by traditional IT outsourcing and the development of the new functionalities. With many companies’ IT shifting towards a Product centric model, the companies’ internal business and IT will function as the Product Manager and handle the product design responsibilities while the IT vendors will be the “contract coder” and “manufacture” the code to deliver on the product specification laid out by the Product Managers. In some cases, where the buyers of contract coding don’t have all the requisite skills for the Product Managers, they may even deploy a two-in-a-box model where the buyer and the IT supplier both provide a product manager and the two product managers work side by side to drive the product backlog.
Some key differences between IT outsourcing vs. Contract Coding are illustrated here:
|Current IT Sourcing||Contract Coding|
|Scope of Sourcing||Individual horizontal activities such as production support & testing||Vertical full stack – from application to infrastructure; individual horizontal activities also included|
|Backlog for Applications/Products||Two backlogs – one for new functionality and one for application maintenance & support||Single backlog – new functionality and application maintenance & support are prioritized together|
|Underlying Technology Architecture for Applications/Products||Only on maintaining current architecture and infrastructure with minor enhancements||Underlying technology architecture upgraded – contract coders are required to deliver based on design, which would include new architecture and infrastructure if necessary|
|KPIs||Unit cost and SLAs||A new set of metrics based on quality, speed, and cost|
|Development Methodology||Often waterfall based||Agile|
|Resource flexibility||Included since the model is P X Q||Included – if the backlog for products/application is shrunk, resources will be reduced|
Contract coding will allow the technology departments to focus on their strategic differentiation factors: their business domain expertise, their product design capabilities, and their brand and their customer outreach. It would bring the economy of scale and speed to quickly ramp up a large number of technology resources to get the development done. It would afford them the resource flexibility when demand fluctuates.
How to get started with “contract coding”?
Contract Coding is a fairly major change for many companies. To ease the learning curve and mitigate the implementation risks, companies should take a phased approach on contract coding: start small and deploy in segmented areas, learn the ropes and then deploy across the enterprise.
There are two possible opportunities for companies to start to practice “contract coding”: first is to start with contract renewal of current outsourced IT applications and activities. Given that those applications are already outsourced, the additional needs for contract coding can be handled relatively easily. The second is to identify opportunities where brand new products and applications are being created. Without the complexity of legacy, it will be easier for companies to work out the requirements for contract coding and get the processes implemented.
What do you think? Have you already tried contract coding in your company? How well does it work? If you have lessons learned, please share with me and I will post them as additions and revisions to this blog.