Допустим, у вас есть рутинная задача (это не обязательно должно быть задание по программированию, но это то, чем вы почти всегда занимаетесь, верно?). Мы можем назвать это Задачей А.

Если оптимизация задачи А занимает целый день и предположительно может сократить обычное время, необходимое для ее выполнения, на одну минуту, как часто вы должны выполнять эту задачу, чтобы она окупилась. оптимизация времени?

Вот тот же вопрос, только заданный по-другому:

Если задача А — это то, что вы делаете каждый божий день, и ее оптимизация экономит вам одну минуту по сравнению с предварительной оптимизацией, сколько времени вы можете потратить на оптимизацию, чтобы усилия окупились?

И, наконец (вы, наверное, понимаете, к чему я клоню), вот последний способ задать вопрос:

Если вам нужно выполнять задачу А каждый день, и на ее оптимизацию у вас уходит целый день, сколько времени вы должны сократить на оптимизацию, чтобы она окупилась. время?

Извините, что затуманил ваш мозг от этого упражнения — я также перевернул голову вверх дном, переписав эти предложения несколько раз, чтобы понять их правильно.

Но это 3 способа задать один и тот же вопрос о том, стоит ли тратить время на то, что делает что-то, что оптимизирует эффективность.

Ответ на эти 3 вопроса? Ну, если приглядеться, то можно предположить. Но вот они:

  • Как часто вы должны выполнять задачу А, чтобы она стоила потраченного времени, если ее оптимизация может сократить время на одну минуту? Ежедневно.
  • Сколько времени вы можете потратить на оптимизацию, чтобы усилия стоили потраченного времени, если можно сэкономить одну минуту? Максимум один день.
  • Сколько времени вы должны быть в состоянии сократить ежедневную задачу, чтобы она стоила времени, потраченного на ее оптимизацию в течение целого дня? Не менее одной минуты.

Если задача ЕЖЕДНЕВНАЯ и оптимизация экономит 1 МИНУТУ, вы можете потратить максимум 1 ДЕНЬ на оптимизацию… чтобы она стоила потраченного времени.

Если вы тратите 1 ДЕНЬ на оптимизацию задачи, чтобы сэкономить 1 МИНУТУ, вы должны, по крайней мере, выполнять эту задачу ЕЖЕДНЕВНО… чтобы она стоила потраченного времени.

Если вы тратите 1 ДЕНЬ на оптимизацию ЕЖЕДНЕВНОЙ задачи, вы должны экономить как минимум 1 дополнительную МИНУТУ каждый раз, когда выполняете задачу… чтобы она стоила потраченного времени.

Хорошо, у меня закончились способы дистиллировать это. К счастью, есть xkcd.

На мой взгляд, тот, который лучше всего передает вовлеченные масштабы, звучит так: «Если задача выполняется ЕЖЕДНЕВНО и оптимизация экономит 1 МИНУТУ, вы можете потратить на оптимизацию не более 1 ДНЯ».

Но ждать! В этом комиксе мелким шрифтом написано: «(ЧЕРЕЗ ПЯТЬ ЛЕТ)».

Это означает, что расчеты выполняются на основе графика выполнения задачи в течение не менее 5 лет. Тогда мы должны спросить себя, какую долю всех задач, которые мы выполняем, составляют задачи, которые мы будем выполнять в течение как минимум 5 лет?

Мой личный ответ… довольно много, на самом деле.

Ждите следующего поста, в котором я разберу некоторые из наиболее распространенных задач, которые мы выполняем на работе как программисты, и классифицирую их как стоящие времени или нет! А пока вот несколько моих других постов об оптимизации.

Программирование небольшого размера — это сегмент, в котором я обсуждаю программирование по одной небольшой теме за раз на простом английском языке. Моя цель — поделиться советами, уроками и идеями, полученными в результате моей работы инженером-программистом, и тем самым сделать программирование доступным и увлекательным для всех, кто интересуется программированием. Присоединяйтесь к списку рассылки, чтобы получать последние сообщения в свой почтовый ящик, чтобы вы могли читать на ходу.

Первоначально опубликовано на сайте Nick Ang.