Keynote: The Future of Build vs. Buy
Location:
- Grand Ballroom - Salon A/B/C
Day of the Week:
- Tuesday
It’s one of the hardest tradeoffs engineers have to make: build or buy. The scale of the internet and the rapid growth that it enables makes this question more difficult for many companies.
Building infrastructure components instead of buying them from vendors was once the domain of only the very largest of internet operations like Google and Facebook. Those companies not only build their own software, including low level things like compilers, they are also building their own hardware and networking. But increasingly we see non-Google, non-infrastructure companies building their own infrastructure software for their operations.
We struggle with this decision regularly at Uber. In this talk, I’d like to explore why this tradeoff is so difficult, and make some recommendations for both vendors and users.
At first the decision sounds easy, for engineers at least. When you even suggest building just about any software, you’ll get plenty of advice about how you suffer from “not invented here” syndrome and that you are re-inventing the wheel.
It’s hard for engineers because the point of being a software engineer is to write more software. Or is it? Perhaps the point of software engineering at this point in history is to endlessly debug and wrangle someone else’s software until it does what you want. And this is why build vs. buy is not an obvious tradeoff. It’s more like “build and easily support” vs. “buy and be at the mercy of a vendor”. Open source projects are vendors of a sort. The price might be $0 to install, but there are hidden costs.
The global and large scale nature of the internet has put some new requirements on software. There are no maintenance windows or acceptable downtime at all. If software breaks, no vendor is going to care as much about fixing it as you do. This makes people do surprising things, like re-invent wheels.
After enough time, most of the currently re-invented wheels will eventually become commodities that are cheap and reliable enough for everybody. But new needs will always arise that need more software written to address them. I think the future of this kind of software will look more like an open source collaboration between large users to build big important things. There are more recent examples of industry collaboration for projects like this. The role of vendors in this new world is unclear, but I think they’ll start to seem much more like development partners, rather than a helpdesk.
Similar Talks
Tracks
Covering innovative topics
Monday Nov 16
-
Architectures You've Always Wondered About
Silicon Valley to Beijing: Exploring some of the world's most intrigiuing architectures
-
Applied Machine Learning
How to start using machine learning and data science in your environment today. Latest and greatest best practices.
-
Browser as a platform (Realizing HTML5)
Exciting new standards like Service Workers, Push Notifications, and WebRTC are making the browser a formidable platform.
-
Modern Languages in Practice
The rise of 21st century languages: Go, Rust, Swift
-
Org Hacking
Our most innovative companies reimagining the org structure
-
Design Thinking
Level up your approach to problem solving and leave everything better than you found it.
Tuesday Nov 17
-
Containers in Practice
Build resilient, reactive systems one service at a time.
-
Architecting for Failure
Your system will fail. Take control before it takes you with it.
-
Modern CS in the Real World
Real-world Industry adoption of modern CS ideas
-
The Amazing Potential of .NET Open Source
From language design in the open to Rx.NET, there is amazing potential in an Open Source .NET
-
Optimizing You
Keeping life in balance is always a challenge. Learning lifehacks
-
Unlearning Performance Myths
Lessons on the reality of performance, scale, and security
Wednesday Nov 18
-
Streaming Data @ Scale
Real-time insights at Cloud Scale & the technologies that make them happen!
-
Taking Java to the Next Level
Modern, lean Java. Focuses on topics that push Java beyond how you currently think about it.
-
The Dark Side of Security
Lessons from your enemies
-
Taming Distributed Architecture
Reactive architectures, CAP, CRDTs, consensus systems in practice
-
JavaScript Everywhere!
Javascript is Everywhere. Learn why
-
Culture Reimagined
Lessons on building highly effective organizations