Engineering Cover
Engineering

Why Your Software Supply Chain Really Matters

April 21, 2021

8 minutes

APIs - E Pluribus Unum

Software engineering has come a long way since the early days of vacuum tubes and punch cards. The homebrew era of the 1970’s and 80’s gave way to the first generation of software giants like Microsoft and Oracle. Each era has given rise to the next, and the current age of startups is no exception. Since the early 2000’s, the current boom has seen the emergence of companies like Google, Amazon, Facebook, Twitter, Twilio, and Stripe, all of which have gone on to become household names.

Software, it seems, has gone through several iterations of evolution, rising from obscurity to becoming indispensable. In the process, some have built empires while others faced obsolescence (Blockbuster versus Netflix anyone?). One critical part of this evolution has been the transition from a “do it all yourself” to a “focus on what differentiates you” mentality. The common wisdom of today is to prioritize the things that make your business unique and to buy the rest from others.

Increasingly, the key to building quality software applications is choosing the right supply chain to enable rapid design, implementation, and deployment.

The modern software supply chain

With the advent of microservices and highly-modularized structures, software has entered the age of industrialized supply chains with hundreds, if not thousands of services interacting to deliver a single experience. The underlying infrastructure that makes all of this possible is APIs. These very well-defined (one hopes) interfaces between those services act as conduits between different parts of the larger and more complex system.

The goal of great software is to make complex processes appear simple, abstracting as much complexity away from the user as possible. Don’t believe me? What if I told you that ordering a pizza via UberEats kicks off hundreds of workflows in the background from the moment you open the application, to the moment your food shows up at your door?

That one interaction requires software to determine where you are, what restaurants are near you, which options they have available based on the time of day, what incentives they offer, what your personal preferences are based on prior orders, how long it will take to make your food, how long it will take to deliver your food, and what drivers or couriers are available in the area to deliver your order. That’s before you even place the order.

I haven’t even mentioned the separate processes involved in initiating your payment, sending you a receipt, keeping you updated on the status of your order, estimating actual delivery time, and so on. These are just a few of the things that need to take place just to get you your pizza and all you have to do is press a button and wait. Pretty amazing, right?

Now, a fair number of these processes are very specific to UberEat’s core business, delivering food to hungry patrons, but there are many components in the software supply chain that ultimately make this menagerie of activity possible. For instance, the process of determining your delivery time is derived from a mapping API, which may in return rely on a traffic API, which may further rely on another API that serves information that’s been collected specifically by UberEats on recent deliveries from that location.

Visiting from another country? There are still more APIs that will ensure that your payment not only gets processed, but gets processed in the correct currency and let you know what the amount will be when you place the order (a currency exchange API).

Meanwhile, your delivery person will likely have been vetted by a number of background check APIs to investigate things like driving records and recent infractions, criminal filings, traffic and parking records, etc. All of these things need to happen smoothly and concurrently in order for you to receive your order. If just one strand in this web of APIs breaks, it’s likely you’ll delete the app and download a competitor before UberEats’ engineers are even aware there’s a problem.

How it all comes together

Alright, so what’s the point of all of this? Even applications that deliver seemingly simple services are in fact fairly complex, relying on an array of different inputs. Many of these inputs are provided by third-party APIs that are essential to delivering the desired customer experience. They make many of the apps we associate with the modern age of startups possible and, you could say that they are the foundation of modern application development! I’ll take it a step further and say that high-quality, vendor-partner APIs not only make this possible, but they elevate and differentiate your offering from those of the competition.

It’s time we start thinking of third-party APIs not as simple shortcuts or labor-savers, but as essential components of a successful product. Just like a bakery that goes out of its way to source high-quality flour and the freshest possible fruits and berries, savvy developers need to start thinking about high-quality APIs as the raw ingredients that will take their products from corner store to Michelin Star.


Like what you read? Scroll down and subscribe to our newsletter to receive monthly updates with our latest content.

Manuel A. Harnisch
Manuel A. Harnisch

Manuel provides strategic and tactical leadership and embraces a "lead by example" methodology, combining emotional "team-first" support, technical expertise, and strong interpersonal and communication skills. As result, Manuel has driven revenue focused and customer-facing organizations to consistently exceed ambitious goals. At People Data Labs, Manuel orchestrates customer success strategy and is a essential piece of the puzzle for customers that use our data.

linkedintwitterfacebook