Lets take a look at the backward bending supply curve of labor from a programmer’s perspective. For individuals, this is one of the single most important concepts in microeconomics. It explains why people are willing to work insane hours in the early part of their lives, but relatively little as they grow older. If you ever wondered why Fortune 500 CEOs make so much money, this will explain most of it.
Here is how I would illustrate the backward bending supply curve of labor with code:
//starting conditions time = START_OF_ADULT_LIFE net_worth = BROKE productivity = INCOMPETENT //the days of our lives while(time++ < LIFE_SPAN) income = CurrentMarketPriceForLabor(productivity) if(MarginalUtility(income) > MarginalUtility(personal_time)) DoWork() net_worth += income productivity += AdjustProducitivityForIncreasingSkill() else if(OfferedAboveMarketIncome()) if(MarginalUtility(above_market_income) > MarginalUtility(personal_time)) DoWork() net_worth += income productivity += AdjustProductivityForIncreasingSkill() else net_worth -= DoPersonalTime() //rational thoughts MarginalUtility(income) = Utility(net_worth + income) - Utility(net_worth) MarginalUtility(personal_time) Utility(net_worth + DollarValue(personal_time)) - Utility(net_worth) DollarValue(personal_time) = //this should probably be further adjusted to value personal //time over work as time approaches LIFE_SPAN net_worth / DESIRED_NET_WORTH * MAXIMUM_PERSONAL_TIME_VALUE
What it means
- We start life with low skill, worth, and too much free time. So we are willing to trade that free time, which might have been spent playing Call of Duty, in order to work and put food on the table.
- As we work, our productivity improves because we gain experience and skill.
- As our productivity improves, we make more money.
- Making more money is great. But like all things, the more money we have, the less we need more of it. The first $40 million is great, but maybe the next $40 million should be ignored in favor of playing more Call of Duty.
- The value of
MAXIMUM_PERSONAL_TIME_VALUEis extremely high. So as we approach the end of our work life, when our net worth approaches its peak, the value of personal time is vastly greater than when we started life.
- It is worth working hard early in life because the sooner we approach our desired net worth, the faster our
DollarValue(personal_time)approaches its peak. The longer we can live with that value maximized, the more happiness we derive from life.
- The only reason we work late in life, assuming we have steadily increased our net worth, is if we have a massive possible reward. This could be both in the form of money, as in tons of stock options and bonuses, or perhaps some non-pecuniary reward, like the chance to create the iPhone and change the world. Without such a reward, we would derive much more happiness be enjoying our personal time instead of working.
- A common complain about public-sector workers is the obscenely early retirement age most of them enjoy - usually after just 25 years of work. Once you have mastered the backward bending supply curve, it becomes obvious why. As a result of their political influence, they are able to exact high compensation and retirement benefits. Naturally, once these high benefits are secured, the next objective is to lobby for an earlier retirement date so that they can be enjoyed for as long as possible. For readers outside the US: American government employees are unique in that they are the only segment of the population to enjoy retirements where their income only goes down a small fraction and is guaranteed to be protected from inflation through yearly cost of living adjustments.
- Astute readers of my previous article will observe that this flat out contradicts the advice to pay programmers $200/hr, since the programmer will more quickly hit their desired lifetime income and retire.
- Clearly, this ignores that our desire to have free time is cyclical. In other words, it ignores our need to have weekends in order to explore the larger concept of the role of work over a whole lifetime.
- Certainly, some people enjoy their work for its own sake. In that case, this algorithm would be tweaked so that
net_worthis not discounted by
DoPersonalTime(). But the common view of work is something that we would generally not do unless we are paid. So as a programmer, you might enjoy coding up some utilities for personal use, but you probably wouldn’t be writing internal business software for the umpteenth time. So even though you enjoy programming, it is still work if you are doing it for someone else’s benefit.