The Dangers of Outsourcing Software Development

Applying Principal Agent Theory to the software consulting industry

Sebastian Roll

Business Clients Ethics Management freelancing

Customer lock-in. Dubious “Land and Expand” strategies. We have all heard about outsourced software projects that run far past schedule and obliterates the budget, yet somehow fail to meet even basic requirements.

How can this happen. How can your company reduce the risks of delegating software development to an external party?

The Principal–Agent Problem is a well researched dilemma in economic literature. It occurs when a person or entity (“agent”), is tasked to work on behalf of another person or entity ("principal"). When the two parties have divergent interests, the agent might act contrary to the best interests of the principal.

Examples of principal-agent relationships are:
- Employer vs Employee
- Shareholder vs Management
- Voter vs Political party
- Contractor vs Software Consultant

When a firm decides to outsource software development to a third party, there is an economic divergence of interest at play, as both parties seek to maximize profit. The contractor wants its requirements met at low cost and on a predictable schedule. The third party, when acting nefariously, can maximize its own gains by extending the project, utilizing junior or low-cost labor, and creating a relationship of dependency.

In this session we will look into some nefarious techniques and practices used in the IT consulting industry and how best to avoid them. We will also learn why it is particularly hard to mitigate the risks of outsourced software development.

Type: Talk (30 mins); Python level: Beginner; Domain level: Beginner

Sebastian Roll

Webstep

Chemical engineer turned software consultant. Hearts Python. Organizes the local Python Meetup.

Full-time IoT hobbyist. Holds IoT+Micropython workshops and blogs about it on bytebarista.com.