Detailed Notes||10m 56s
The Productivity of Programmers and Tech Companies - Jonathan Blow
https://www.youtube.com/watch?v=v2jdT6JuHEwHere are detailed notes from the transcript:
Detailed Notes from Transcript
Main Topics Discussed:
- The decline in programmer productivity over time.
- The difficulty of quantitatively measuring programmer productivity, especially for innovative work.
- The concept that less code (or even deleting code) can be more valuable than adding code.
- The compounding effect of lower productivity leading to explosive growth in company sizes.
- The two main drivers of declining average programmer productivity: system complexity and a decrease in average programmer quality (due to field growth).
- The phenomenon of severe overstaffing in large technology companies, evidenced by the Twitter acquisition.
- The role of a "free money" economic environment in fueling tech company overstaffing and growth-at-any-cost mentality.
- The impending shift in economic pressures that may force tech companies to become more cost-conscious.
- The underlying incentives (growth obsession, internal managerial ambitions) that drive overstaffing.
- Potential future implications for the programming job market.
Key Points and Arguments:
- Programmer Productivity Decline (0:26): The speaker argues that the average productivity of a programmer today is "much, much lower" than in the past, leading to lower expectations for daily/weekly output.
- Cause 1: System Complexity (0:44, 3:36): Programmers today deal with significantly more complex systems.
- Cause 2: Decline in Average Talent (3:40): As the programming field grew, more people entered for monetary or social reasons, leading to a lower average skill level and passion compared to early dedicated programmers.
- Difficulty in Measuring Productivity (1:40): Quantifying programmer productivity is "fundamentally an unsolved issue," except for trivial or content-pumping web shop problems. Innovative work is hard to measure.
- Lines of Code is a Poor Metric (2:15):
- "Most code today doesn't actually do anything" useful. (2:21)
- Adding code often adds complexity and bugs. (2:34)
- Deleting code (negative line count) can provide the most value by simplifying systems and reducing bugs. (2:40, 2:51)
- "No code never breaks." (3:02)
- Compounding Effect on Company Size (3:11): Less efficient programmers require more hires, leading to "super linear growth" and "explosive growth in company sizes."
- Evidence of Overstaffing (4:39): The example of Elon Musk firing the "vast majority of Twitter" employees with the company remaining "fine" suggests widespread overstaffing.
- Many divisions in large companies "aren't doing anything that contributes to the value." (5:11)
- This isn't an anomaly; "all of these companies are overstaffed," though perhaps to a lesser degree than Twitter (e.g., Google). (5:46)
- Drivers of Overstaffing (6:14, 7:10, 10:29, 11:14):
- Economic Environment ("Free Money"): High tech company valuations, ample stock options, and lack of "normal economic pressures" allowed companies to overhire and pay people "vast amounts of money to do very little work." (6:14-7:00, 7:30)
- Growth Imperative: Public companies and VC-backed firms are incentivized to show "exponential growth," which is often measured by hiring more people, even if not fully productive. CEOs "juice the growth number." (8:01, 10:29-11:11)
- Internal Managerial Incentives: Managers benefit from presiding over larger teams (bigger budget, better career prospects), leading to every group trying to grow, even if the company as a whole might benefit from staying smaller. (11:14-11:43)
- Competitive Hiring (Minor Factor): While some believe hiring talent denies it to competitors, the speaker dismisses this as a primary driver at the scale of these companies, except possibly for senior talent. (10:06)
- Shift in Economic Landscape (6:41, 8:48): The "free money" economic environment has ended, which may lead to a return of cost-consciousness in tech companies.
Important Facts or Data Mentioned:
- Speaker's Background: Programming on home computers since age 10; involved in "real software" since college. (0:13)
- Twitter Example: Elon Musk fired the "vast majority" of employees, and the platform remains functional ("it's fine"). (4:39-4:45) This is presented as empirical evidence of overstaffing.
Conclusions or Recommendations:
- Anticipated Downsizing (9:11): If companies begin to prioritize product cost (like traditional businesses), they will likely look to Twitter's example and implement "much more of a shift toward downsizing than people expect."
- Impact on Job Market (9:17): This shift could make it "really hard" for current college students expecting to graduate into programming jobs.
- Rethink Growth Metrics: The current model of equating headcount growth with company value/growth is unsustainable and inefficient, especially as economic conditions change.
- Re-evaluate Product Development Logic (8:42): Tech company staffing was not driven by classical product development logic but by financial engineering and growth signaling. This needs to change with new economic realities.
- Focus on Value, Not Code Volume: The ideal programmer adds value, often by simplifying or deleting code, rather than merely producing a high volume of new code.
Generated with Tapescript