There have been a number of recent articles documenting Airbus 737 Max failures. Coming from an aviation engineering background, I am fascinated by mainstream coverage of a world I inhabited for years. One article in particular caught my eye. Bloomberg ran a piece on Boeing’s practice of outsourcing aspects of software development to less costly developers in other countries; the implication being that the practice was partially to blame.
Outsourcing is an ongoing topic as companies seek to save on what is inherently an expensive part of the product development lifecycle. When you consider the numbers, it’s easy to make a case for the international outsourcing of software development. If you can find someone to perform at a fraction of the cost, why wouldn’t you? Even if that developer is only half as productive, you still come out ahead.
Research suggests that there is a considerable range of productivity among developers. While there may be disparities in talent, I believe there’s an even more important reason to think twice before outsourcing. It’s a lesson that has less to do with the person actually writing the code and more to do with the outsourcing process itself.
If there’s one lesson I’ve learned over my career, it’s that handing developers a requirements document and expecting them to build to spec is a recipe for failure. Whether that person sits next to you or halfway around the world, there are often two main issues:
- The requirements document is incorrect.
Requirements documents often assume one has learned all there is to know during the requirements gathering phase and are adequately prepared for implementation. The Agile revolution is built on the (often correct) notion that you actually don’t have all the answers—and even more importantly—that no single person can know everything at the start of the project. Instead, we iterate in learning cycles, experimenting and incorporating new findings into the product. - The requirements document is insufficient
Even if you presume requirements can be gathered up front, you still need to thoroughly communicate them to an external team. In my experience, frequent conversations between the development team and stakeholders are the only foolproof solution.
The crux of the problem is communication. By choosing to outsource, channels of communication are often formal and immutable (requirements document, legal documents, etc). Language barriers between the stakeholders and the development team also get in the way. While this can be overcome with the right structures in place, it adds a layer of confusion. And, even if you address the above challenges, teams are in a different time zone, on a different continent, and generally less available to chat. All of these conspire to make communication the greatest detractor to international outsourcing.
So what is the alternative? We can’t change the fact that organizations are increasingly turning to remote forms of collaboration, either across the country or across the world. The question is how to overcome the inevitable gaps in communication.
Heavily regulated industries lean towards formal requirements for good reason. We need to determine how best to improve upon them. We also need to come to the realization that documents can no longer be the sole method of communication. Well-documented conversations are an equally essential component. Or perhaps even more essential. As the Agile Manifesto makes clear: “Individuals and interactions over processes and tools.” While processes and tools offer value, individuals and interactions create even more.
Looking for more like this?
Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.
![Kotlin Multiplatform](https://gratis-creeper.transforms.svdcdn.com/staging/blog/Kotlin-672x372.png?w=696&h=320&q=75&auto=format&fit=crop&dm=1708017572&s=e91aabb868dcdb5972ad2e58f94bbf65)
Kotlin Multiplatform
July 14, 2022A brief look at Kotlin Multiplatform Mobile, a newer cross-platform mobile application framework.
Read more![What to know about the cost of custom app development](https://gratis-creeper.transforms.svdcdn.com/staging/blog/Custom-app_web-thumbnail-1080x1080-px.png?w=1080&h=1080&auto=compress%2Cformat&fit=crop&dm=1708017468&s=ddd49f5cb9b41e947fcc9157bc8a7d73)
What to know about the cost of custom app development
January 10, 2024We hear a lot of ideas for apps at MichiganLabs. People from large enterprises and small startups, located all over the world, call us to explore their mobile and web-based application ideas, and one of the first questions they ask is: How much is this app going to cost?
Read more![From bits to qubits: The future of quantum computing](https://gratis-creeper.transforms.svdcdn.com/staging/blog/quantum-computing-square_1080x1080_040424.jpg?w=4500&h=4500&auto=compress%2Cformat&fit=crop&dm=1720622704&s=2b77a86c87a7d1ca3d0f3c2fd5f6eaf4)
From bits to qubits: The future of quantum computing
July 10, 2024Learn how quantum computing, which uses qubits capable of representing both 0 and 1 simultaneously, revolutionizes data processing. Discover the impact it could have on industries like finance and pharmaceuticals by enhancing risk assessment, fraud detection, and drug discovery.
Read more