Приоритизация задач
Долго хотел идеальный планировщик задач.
Спойлер: пришёл к excel’ке.
Подход
Самое важное в нём - автоматическое упорядочивание. Я не стал заморачиваться за сдвигаемые не сдвигаемые, точные даты итд. Единственное что было необходимо получить - плюс-минус реалистичное и автоматическое упорядочивание.
У меня два отдельных несвязанных списка задач, которые приоретизируются немного по-разному - один для самообразования, другой для работы и важных личных дел. Почему их два и почему работа перемешана с личными делами: работа с личной жизнью делят общий ресурс - время. На самообразование я не выделяю время, я заполняю им время в транспорте.
Как это работает - чтобы задачи отсортировать нужно свести задачу к одному числу. Чтобы получить одно число - нужно было вывести вообще метрики и формулу от них. Для самообразования и дел довольно метрики немного отличаются, но в целом подход один и тот же.
Самообразование
- процент завершения дела - (0..100%) если дело начато, его важнее закончить, чем ещё не начатое. В противном случае можно начать бросаться на кучу дел и ничего не довести до конца.
- время завершения дела - (1..N) сколько дней потребуется на то, чтобы закончить изучение чего-то. Минимум - один. Для книг можно считать 4 страницы на английском в день, 10 на русском.
- интерес - (1..5) насколько мне это интересно, т.е. насколько я буду рад от того что узнаю лучше предмет. Радость от изучения - это важно.
- насколько это нужно сейчас - (1..5) насколько изученное что-то пригодится в работе.
- насколько это пригодится в будущем - (1..5) насколько технология или что-то там ещё востребовано на рынке и пригодится в случае потери работы.
Итоговая формула с коэффициентами на текущий момент:
- процент завершения дела - 34
- важность интереса - 2
- важность текщуей пользы - 4
- важность долгосрочной пользы - 3
- неважность времени - 5. Если не вводить этот фактор - быстрые мелкие неважные задачи будут выходить вперёд, книги читаться не будут.
(Процент завершения дела * 34) +
(интерес * 2 + важность текущей пользы * 4 + важность долгосрочной пользы * 3) /
(дней для завершения * (100% - процент завершения дела) * 5)
Когда-нибудь я эту формулу улучшу, подгоню туда какие-нибудь нелинейные зависимости, но сейчас она вполне неплохо справилась с тем, чтобы утащить второстепенную херню типа потратить недельку на изучение Ruby далеко вниз моего бэклога.
В бонус: в остортированном списке с процентом завершённости дела и оценкой времени на реализацию можно посчитать приблизительное время реализации любой задачи. Оно будет неточным, но можно оценить как далеко простираются ваши планы по самообразованию и когда приблизительно у вас дойдут руки до какой-то штуки (или книги).
Работа и жизнь
Почти такая же формула, только другие метрики:
- Время исполнения (неважность) - 25, измеряется в минутах
- Процент завершённости - здесь не играет отдельной роли, используется только для расчёта оставшегося времени
- Краткосрочная польза - 2, (1..5)
- Долгосрочная польза - 1, (1..5)
- Принесёт денег - 1, (1..5)
- 1 - сделает удобнее жизнь разработчиков
- 2 - поможет 1-3 имеющимся клиентам
- 3 - один новый клиент будет пользоваться и в итоге купит продукт
- 4 - сделает жизнь многих старых клиентов лучше
- 5 - привлечёт много новых клиентов или сделает процесс внедрения клиенту проще
Итоговая формула с коэффициентами на текущий момент:
(принесёт денег * 1 + краткосрочная польза * 2 + долгосрочная польза * 1) /
(время выполнения / 25 * (100% - процент завершения))
Результат вообще неидеальный, но хоть какой-то.
Я не следую строго тому порядку, который даётся, т.к. есть задачи, которые надо сделать хоть как, но до определённого времени и хрен с ним что даже с максимальной краткосрочной пользой их рейтинг ниже других.
Но как правило текущая задача находится в top-3.
Впихать невпихуемое
Помимо таблички для упорядочивания я использую отдельную, пока не синхронизируемую смесь таблички и календаря.
Столбец - день, строка - час, ячейка(и) - задача. Помогает визуально увидеть что всё впихать в один день не получится. Легко переносить задачи на потом, пока их мало. Стараюсь синхронизировать с упорядоченным списком не чаще чем раз в день, заполнять вперёд не больше чем на 5 дней. Ещё это помогает наглядно увидеть конфликты между рабочим расписанием и личными делами и решить их заранее.