Як ми проводимо наші дні, так ми проводимо наші життя. (Енні Діллард)
In the summer of 1997, NASA's Pathfinder spacecraft landed on the surface of Mars, and began transmitting incredible, iconic images back to Earth. But several days in, something went terribly wrong. The transmissions stopped. Pathfinder was, in effect, procrastinating: keeping itself fully occupied but failing to do its most important work.
Влітку 1997 року марсохід НАСА сів на поверхню Марса і почав передавати на Землю неймовірні графічні зображення. За декілька днів щось пішло не так. Марсохід перестав передавати зображення. По суті, марсохід зволікав. Він був постійно зайнятий, але не спроможний виконати головне завдання.
What was going on? There was a bug, it turned out, in its scheduler.
Що відбувалося? У його планувальнику був баг.
Every operating system has something called the scheduler that tells the CPU how long to work on each task before switching, and what to switch to. Done right, computers move so fluidly between their various responsibilities, they give the illusion of doing everything simultaneously. But we all know what happens when things go wrong.
Кожна операційна система оснащена планувальником, який визначає скільки часу має працювати центральний процесор над завданням перед перемиканням і куди він має перемикатися. Правильно налаштовані комп'ютери плавно виконують різні завдання, створюючи ілюзію цілісного процесу. Ми всі знаємо, що стається, коли щось йде не так.
This should give us, if nothing else, some measure of consolation. Even computers get overwhelmed sometimes.
Якщо нема інших засобів, то хоч це має нас трохи втішити. Інколи навіть комп'ютери можуть почуватися перевантаженими.
Maybe learning about the computer science of scheduling can give us some ideas about our own human struggles with time.
Можливо, вивчаючи комп'ютерні технології планування, ми краще зрозуміємо людські проблеми з часом.
One of the first insights is that all the time you spend prioritizing your work is time you aren't spending doing it. For instance, let's say when you check your inbox, you scan all the messages, choosing which is the most important. Once you've dealt with that one, you repeat. Seems sensible, but there's a problem here.
Перший інсайт у тому, що час, витрачений на визначення пріоритетів, — це час, який ви не використовуєте на виконання завдань. Наприклад, перевіряючи пошту, ви переглядаєте листи, щоб визначити найважливіші. Закінчивши, ви повторюєте. У цьому є сенс, але існує проблема.
This is what's known as a quadratic-time algorithm. With an inbox that's twice as full, these passes will take twice as long and you'll need to do twice as many of them! This means four times the work.
Відома як алгоритм квадратного рівняння. Маючи вдвічі більше вхідних листів, ви витрачатимете вдвічі більше зусиль. Вам треба буде обробити майже вдвічі більше листів. І зробити в чотири рази більше роботи.
The programmers of the operating system Linux encountered a similar problem in 2003. Linux would rank every single one of its tasks in order of importance, and sometimes spent more time ranking tasks than doing them. The programmers’ counterintuitive solution was to replace this full ranking with a limited number of priority “buckets.” The system was less precise about what to do next but more than made up for it by spending more time making progress.
Розробники операційної системи Linux зіткнулися з проблемою 2003 року. Linux оцінював кожне своє завдання за важливістю і часом витрачав більше часу на оцінювання завдання, ніж на його виконання. Програмісти знайшли суперечливе рішення: замінити ранжування обмеженою кількістю пріоритетних маркерів. Системі не треба було визначати що робити далі. У неї з'явилося більше часу на успішне виконання завдань.
So with your emails, insisting on always doing the very most important thing first could lead to a meltdown. Waking up to an inbox three times fuller than normal could take nine times longer to clear. You’d be better off replying in chronological order, or even at random! Surprisingly, sometimes giving up on doing things in the perfect order may be the key to getting them done.
Так само, як з листами: якщо постійно зосереджуватися на найважливіших листах, то можна вигоріти. Втричі більше вхідних листів можуть забрати вдев'ятеро більше часу. Найкраще відповідати хронологічно чи навіть навмання! Дивовижно, але часом виконання справ не в ідеальному порядку може сприяти їхньому завершенню.
Another insight that emerges from computer scheduling has to do with one of the most prevalent features of modern life: interruptions.
Комп'ютерне програмування також дозволяє осягнути найпоширенішу особливість сучасного життя — переривання.
When a computer goes from one task to another, it has to do what's called a context switch, bookmarking its place in one task, moving old data out of its memory and new data in. Each of these actions comes at a cost.
Коли комп'ютер переходить від одного завдання до іншого, він виконує контекстне перемикання, позначає місце в одному завданні, видаляє стару інформацію і додає нову. Кожна дія вимагає затрати зусиль.
The insight here is that there’s a fundamental tradeoff between productivity and responsiveness. Getting serious work done means minimizing context switches. But being responsive means reacting anytime something comes up. These two principles are fundamentally in tension.
Цей метод має значний недолік для збільшення продуктивності, але зменшення швидкості реагування. Виконання важливих завдань вимагає меншого контекстного перемикання. Втім, швидкість реагування — це завжди вчасно реагувати на нові завдання. Ці два принципи, власне, суперечать один одному.
Recognizing this tension allows us to decide where we want to strike that balance.
Визнання цієї суперечності дозволяє нам вирішити, за яким принципом виконувати завдання.
The obvious solution is to minimize interruptions. The less obvious one is to group them. If no notification or email requires a response more urgently than once an hour, say, then that’s exactly how often you should check them. No more.
Очевидне рішення — зменшити переривання. Менш очевидне — згрупувати їх. Якщо на сповіщення чи лист не треба відповісти, наприклад, протягом години, то ви повинні перевіряти пошту в такий проміжок. Не частіше.
In computer science, this idea goes by the name of interrupt coalescing. Rather than dealing with things as they come up – Oh, the mouse was moved? A key was pressed? More of that file downloaded? – the system groups these interruptions together based on how long they can afford to wait.
В інформатиці цю ідею називають об'єднанням переривань. Замість того, щоб вирішувати щойно створені задачі: чи перетягнули курсор, чи натиснули клавішу, чи загрузився цей файл, — система об'єднує переривання залежно від того, скільки вони можуть почекати.
In 2013, interrupt coalescing triggered a massive improvement in laptop battery life. This is because deferring interruptions lets a system check everything at once, then quickly re-enter a low-power state.
2013 року об'єднання переривань дозволило значно покращити систему живлення ноутбуків. Тому, що відкладання переривань дозволяє системі перевірити усе одночасно, а потім швидко перейти на енергоощадний режим.
As with computers, so it is with us. Perhaps adopting a similar approach might allow us users to reclaim our own attention, and give us back one of the things that feels so rare in modern life: rest.
Комп'ютери й люди схожі. Дотримуючись цього принципу, ми, як користувачі, зможемо покращити увагу і повернути те, що є настільки рідкісним у сучасному світі — спокій.