Orchestrating VMs, Cars, Humans
Thoughts for this post, started like most things with a common problem. Scheduling appointments on weekends to accomodate a regular weekday job schedule. It’s always a struggle, requiring booking far in advance to get desirable Saturday appointments for everything from a dentist to a haircut. On the rare times, I’ve had a weekday appointment, I’m always struck by the contrast compared to my regular weekend appointments. E.g the hairdressing salon will have empty seats, and often I’m the only customer, with other folks at the salon waiting for the random walk-in client to show up. It seemed like a waste of their time to not be able to fill those seats, even at potentially lower fees to even out weekend demand.
Evening out bursty demand is an interesting problem, I’ve also seen with my work in tech. So I’ll start with my experience there.
In the early part of my career, I worked at VMware on it’s bundled hypervisor and management platform, vSphere. In addition to managing hypervisors (ESX servers) and the Virtual Machines(VMs) on them, vSphere also provided features that helped with better resource utilization of resources(primarily CPU and memory) across clusters of hosts.
It monitored VMs on clusters of hosts, and based on the utilization of resources, tried to move them around hosts to ensure that higher load VMs had the resources they required. Or it did the opposite, where it consolidated VMs to a smaller number of hosts, to reduce power consumption. This was a powerful concept because it allowed the resources to be treated as pools.
It was a very tricky problem to solve. As examples some of the problems the algorithms attempted to solve:
- Just because a VM is consuming extra resources should it be moved to a different host?
- Are the costs of moving it necessarily a net gain? E.g what if the burst is temporary?
- How do you identify the best host to move the VM? Is it safe to move it to that host?
- What does “best host” even mean?
Moving on to 2013. Uber the ride-hailing app was launched, and soon after introduced the infamous surge pricing.
A random conversation around this time with some VMware colleagues around Uber led to this quote: “Hey they are all scheduling problems, moving cars, moving VMs all the same. Supply and demand”.
At the crux of it, vSphere solves a key problem around bursty demand and managing capacity around it. However, VMs are relatively easy. People are hard.
Uber and Lyft were not the first companies to try to attempt to solve problems around bursty demand and evening out demand spikes. And yet there remain a whole set of consumer areas where this is still a problem with no elegant solutions.
1. Gyms: Gyms are notorious for having bursts in traffic, as anyone who has walked into one in January will attest. Classpass is an app in this space trying to capitalize on this problem with moderate success.
2. Movie theaters: A space where Moviepass offers a solution similar to Classpass for movies. Movie theaters have also attempted to solve the problem via cheaper tickets for off-peak hours or making money off things other than tickets e.g. refreshments etc.
I find it interesting that both companies chose a subscription model to solve the problem as well as both working outside the framework of the actual transaction.
3. Hairdressers and personal care (massages, facials etc): There is always a small population that prefers non-peak hours e.g. folks that don’t work 9–5 weekday hours. But a majority of people utilizing these services, use them during particular times of the day and week.
4. Restaurants: I think the most interesting solution I’ve found to this, is the ubiquitous South Asian restaurant buffet. By offering meals with a reduced menu, that requires less staff, at a lower price, they ensure some traffic gets spread to off-peak hours i.e. weekday lunches. Mealpal offers a subscription model similar to Classpass for weekday meals.
Why is this hard? Some theories.
1. It’s already baked into the price. This makes the most sense from an economic theory perspective. If the price of what people are paying for gyms is already accounted for, in both peak and off-peak hours, there is no incentive to help spread the load for the gym. Sure, people will complain about the January resolution folks that crowd the gym, but will essentially self-manage. Things like restrictions on usage time for equipment etc. solve the equipment availability problem. The gym keeps less staff around during off-peak hours and keeping the actual facility open during off-peak hours probably doesn’t cost a huge amount.
2. Incentivization already exists.This is the case for restaurants with lunch specials, buffets (mentioned above), movies with matinee pricing etc. Efficiency gains aretransparent to users e.g. food can be prepared ahead of time, and the cheaper/easier options are offered as specials.
3. The category has a stickiness or loyalty. This is the case for hairdressers/salons/massage therapists etc. If repeat customers don’t get an appointment on a busy weekend, they don’t immediately move on. They probably just wait for the next available appointment. When you have competitors offers equivalent products, reputation becomes a differentiator.
4. The overall market for the service isn’t under stress. While individual providers, in all of the above categories suffer from burstiness problem, overall people will still go to concerts, shows, hairdressers etc.
I think the big exception here is movie theaters, which if not already under threat will soon be in dire need of innovation.
Given this, is there anything to be gained by trying to optimize for bursty traffic or reducing the demand curve in consumer markets?
1. The markets seem to be doing fine for now. The supply-demand curve in economics means there is no real problem here.
2. Just because they aren’t under pressure doesn’t mean that there isn’t room for innovation, and often the most interesting ideas are around improving the efficiency of existing markets vs dramatically changing them.
- Depending on the category, solutions would look different. e.g. something like personal care is essentially a one to one market vs movies etc are many to one. And both models have different potential ways of extracting more efficiency.
- In the personal care, realm, a solution such as an open marketplace where consumers make trade-offs between experience vs availability. e.g. As a consumer, in dire need of a haircut, all I’d like is to find an open hair salon spot, with someone with reliable reviews that will see me on a weekday night or weekend Depending on whether I have an important work meeting or not I may be willing to pay more or less for it. This is where Uber/Lyft etc are with the different options for rides, sharing vs individual etc.
- Core products would be “loss leaders” for times of reduced demand. E.g movie theaters would sell tickets to less crowded shows at dramatically reduced prices in the hope of making it up in advertising and refreshments. Indie movies would be lower priced then blockbusters. Consumers would make trade-offs based on desired experience vs availability.
- In all cases, it’s unclear to me what those marketplaces would look like. I suspect larger platforms will attempt to eventually solve this problem. Other solutions, like Classpass, Moviepass, Mealpal have tried to create membership or subscription model which are effectively the marketplace. Maybe each category is big enough that individual solutions similar to what is being offered already are the way to go.
Overall, it boils down to figuring out what the axes are for each category, that motivates people and creating marketplaces that allow the sellers and buyers to tweak the knobs of those axes.
Sufficient tweaking of the axes would hypothetically lead to, if not an actual evening out of the curves at least a scenario where empty spots are better used.
Maybe it would even lead to a better utilization of resources. Just as ride-hailing companies have led to an overall increase in the number of people using ride hailing and cars, innovation in this area might lead to more people watching movies on a weekday afternoon, or going to a yoga class or getting a haircut. Ok, probably not the last one :)