Scheduling
Scheduling involves strategies for ordering and prioritizing tasks, ranging from simple heuristics like the 2-minute rule to complex algorithms from computer science, all aimed at optimizing productivity and managing time effectively.
THE IDEA
Scheduling
Scheduling asks which task to do next. Different rules serve different objectives, such as finishing more jobs on time or reducing the average wait. These notes collect practical heuristics and algorithmic examples from the source.
"How we spend our days": Dillard, The Writing Life.
"Book-writing, like war-making": Lawler, "Old Stories."
"We are what we repeatedly do": In fact, this phrase, frequently attributed to Aristotle himself, originated with scholar Will Durant, as a summary (in Durant's words) of Aristotle's thinking. See Durant, The Story of Philosophy.
Key Heuristics
- Two-minute rule: Do any task of two minutes or less immediately.
- Eat the frog: Begin with the most difficult task first.
- First scheduling one's social engagements: To avoid procrastination.
- Debt snowball: Pay off smallest debts first to build momentum.
Computer Science Perspectives
- Gantt charts: Developed by Henry Gantt for project scheduling.
- Earliest Due Date (EDD): For a single machine with all jobs available, order jobs by due date to minimize maximum tardiness.
- Moore's Algorithm: In the single-machine setting, build a due-date schedule and, when it becomes late, remove the longest selected job from the on-time set.
- Shortest Processing Time (SPT): With all jobs available on one machine, do shorter tasks first to minimize the sum of completion times.
- Pre-crastination: The tendency to complete tasks prematurely to reduce cognitive load.
Real-World Examples
- Mars Pathfinder mission bug: Due to priority inversion in scheduling, causing system resets.
- X-Files episode "Bad Blood": An obsessive-compulsive vampire's scheduling habits.
- The book’s Linux scheduler history: From O(n) to O(1) to Completely Fair Scheduler.
Advanced Concepts
- Many scheduling problems are NP-hard: no general efficient algorithm is known for solving them exactly.
- "Schedulese" notation describes scheduling problems with three variables: machines, jobs, and goals.
- Preemption and time quantums (timeboxing) help balance responsiveness and efficiency.
- Thrashing: When switching and coordination consume so much time that useful work stalls.
Quotes
- "Replace 'plan' with 'guess'" – Jason Fried.
- "You must not get off the train" – Ullman.
- "Things which matter most should never be at the mercy of things which matter least" – Goethe (via Covey).
When to use it
A project manager plans a timeline for a software development project, using Gantt charts to visualize dependencies and milestones.
A student has multiple assignments due next week. They use the Earliest Due Date rule to prioritize and avoid late submissions.
A busy parent schedules household chores using the two-minute rule to prevent small tasks from piling up.
An operations manager at a factory uses scheduling algorithms to minimize the number of late orders while maximizing machine utilization.
FROM THEORY TO EVERYDAY LIFE
In practice
Two-Minute Rule
David Allen's GTD method suggests that if a task can be done in two minutes or less, do it immediately rather than scheduling it. This reduces mental overhead and prevents small tasks from accumulating.
Mars Pathfinder Bug
In 1997, the Mars Pathfinder mission experienced system resets due to a priority inversion in scheduling. A lower-priority task held a lock needed by a higher-priority task, causing a cascade of delays. This was fixed by ensuring proper inheritance of priorities.
Debt Snowball
Popularized by Dave Ramsey, this strategy involves paying off the smallest debts first, regardless of interest rates. The psychological win of eliminating a debt quickly motivates continued progress.
A MOMENT TO REFLECT
Put it to work.
Think about your current workload: which tasks are you putting off because they feel overwhelming? How could you apply the 'Eat the Frog' principle to tackle them?
When faced with a long list of tasks, how do you decide which to do first? How might applying the Shortest Processing Time heuristic change your productivity?
Recall a time when you felt overwhelmed by multitasking. How could scheduling techniques like timeboxing or the two-minute rule have helped?
References
- The Writing Life — Annie Dillard
- Old Stories — Eugene Lawler
- The Story of Philosophy — Will Durant
- Getting Things Done — David Allen (2001)
- Eat That Frog! — Brian Tracy (2001)
- The Now Habit — Neil Fiore (1989)
- Wait — Frank Partnoy (2012)
- The One Best Way — Robert Kanigel (1997)
- Optimal Two- and Three-Stage Production Schedules with Setup Times Included — S. M. Johnson (1954)
- Scheduling a Production Line to Minimize Maximum Tardiness — James R. Jackson (1955)
- An N Job, One Machine Sequencing Algorithm for Minimizing the Number of Late Jobs — J. M. Moore (1968)
- Various Optimizers for Single-Stage Production — W. E. Smith (1956)
- Foraging Theory — David Stephens and John Krebs (1986)
- Can Small Victories Help Win the War? — David Gal and Blakeley B. McShane (2012)
- Small Victories — Jennifer Brown and Benjamin Lahey (2014)
- Pre-Crastination — David Rosenbaum, Lanyun Gong, and Cory Potts (2014)
- How to Succeed with People — Stephen R. Covey (1970)
- Thrashing: Its Causes and Prevention — Peter Denning (1968)
- Out of Their Minds — Dennis Shasha and Cathy Lazere (1995)
CONTINUE THE CONVERSATION
Source texts
- Algorithms to Live By The Computer Science of Human Decisions (Brian Christian, Tom Griffiths)