То же самое происходит при расстановке приоритетов ваших заданий. В вашем распоряжении ограниченные ресурсы и ограниченный запас времени. Если мы завалены работой, то начинаем недовольно ворчать по поводу любого нового запроса. В действительности же нам следует просмотреть список текущих дел и определить, нет ли там пунктов, выполнение которых можно отсрочить. (К сожалению, взятки нам не светят!)
Вот маленький секрет, который я узнал от Ральфа Лоуры (Ralph Loura), когда он был моим начальником в Bell Labs. Если у вас имеется список дел, то при любом порядке их выполнения будет затрачено (примерно) одно и то же время. Однако если вы будете выполнять их в том порядке, какого ждут от вас клиенты, они будут считать, что вы работаете быстро. При том же объеме работы для вас больше понимания у клиентов. Круто, а?!
Чего же ждут от вас клиенты? Разумеется, каждый из них хочет, чтобы его запрос был выполнен немедленно, тем не менее, отдавая себе отчет в том, что на все требуется время. Представление может быть далеким от реальности часто по причине непонимания компьютерных технологий, но все же мы можем разбить ожидания пользователей на несколько категорий:
• Некоторые запросы должны выполняться быстро. В качестве примеров можно привести восстановление пароля, выделение IP-адреса и удаление защищенного файла. У таких запросов есть одна общая особенность. Как правило, это малозначительные дела, которые задерживают выполнение чего-то серьезного (со стороны пользователя). Представьте себе раздражение пользователя, который не может приступить к работе, пока не восстановлен пароль, а вы выполняете его просьбу лишь через несколько часов.
• Срочные задачи, включающие период ожидания («Поспеши и подожди»), должны начинаться как можно раньше. Задачи, выполнение которых предшествует другим задачам, должны, по мнению пользователей, начинаться безотлагательно. Например, заказ какой-нибудь детали включает в себя собственно размещение заказа и долгий период ожидания поставки. Только после этого вышедшую из строя деталь можно заменить на новую. Если ожидание длится две недели, то пользователь рассчитывает, что вы быстро сделаете заказ, и две недели не растянутся на три.
• Некоторые запросы выполняются долго. Сюда относятся установка нового компьютера, создание службы «с нуля» и вообще все, что связано с поставкой товаров. Даже если продавец обещает доставку в течение суток, люди понимают, что их запрос нельзя выполнить немедленно.
• При аварийной ситуации вся остальная работа прекращается. Последняя категория — аварийные ситуации. Пользователи не только считают, что в таких случаях приостанавливается любая другая работа, но и верят в то, что все системные администраторы заняты ликвидацией аварии. Как правило, пользователи не знают, что в группе системных администраторов есть разделение труда.
Теперь, лучше представляя ожидания клиентов, вы можете воспользоваться этим знанием. Как? Предположим, ваш список дел выглядит так, как показано на рис. 8.1.
Выполнив эти дела в том порядке, в каком они перечислены, вы, скорее всего, будете весьма довольны своей производительностью. Вы сделали все в тот день, когда требовалось, и у вас ушло шесть с половиной часов (плюс час на обед). Очень неплохо для вас.
Рис. 8.1. Задачи, не упорядоченные в соответствии с ожиданиями пользователей
Однако ваша деятельность разошлась с представлениями клиентов о том, сколько времени должно уйти на решение их проблем. Сотрудник, сделавший запрос Т7, был вынужден целый день ждать того, на что, по его мнению, требуется пара минут. Если бы этим клиентом был я, то вспылил бы. Из-за отсутствия IP-адреса на целый день задержалась установка нового лабораторного оборудования.
(На самом деле, скорее всего, раздраженный нетерпеливый клиент не стал бы ждать целый день. Он «пинговал» бы IP-адреса до тех пор, пока не нашел свободный на тот момент и не воспользовался бы им. Мог случиться какой-нибудь конфликт, и вся система перестала бы работать, и вы потеряли бы на этом целый день. Впрочем, я отвлекся…).
Давайте изменим порядок выполнения дел с учетом представления клиентов о том, сколько времени требует та или иная задача. Задачи, о которых известно, что они решаются быстро, мы переставим в начало и выполним с утра. Остальные можно выполнить позже. Из этого правила мы сделаем одно исключение, в чем вы вскоре убедитесь. Список с новым порядком задач представлен на рис. 8.2.
Вы начинаете свой день с выполнения задач Т1 и Т7, потому что клиенты ожидают их скорого выполнения, и еще потому, что эти задачи, скорее всего, тормозят крупные проекты. Вы, конечно, уложитесь в предполагаемые сроки выполнения этих задач.
Следующая задача (Т5) относится к категории «Поспеши и подожди». Независимо от того, насколько быстро вы оформите заказ, он будет выполнен только через день-два. Однако если вы не будете тянуть с заказом, то избежите претензий со стороны клиента.
Следующая задача (Т4) выполняется за 30 минут. Можете проверить.
Задача Т2 не требует много времени, но ожидание ее выполнения выражается в сроках, а не в часах и минутах. Если завтра к работе приступает новый сотрудник, ожидается, что к его приходу учетная запись будет создана независимо от того, создадите вы ее за минуту или за день, утром или вечером. Поскольку для задачи установлен крайний срок, важно, чтобы она просто была выполнена.
Рис. 8.2. Задачи, упорядоченные в соответствии с ожиданиями пользователей
Если бы возникла аварийная ситуация (например, из-за того, что два хоста оказались сконфигурированы с одним IP-адресом) и вся работа остановилась, то наше расписание было бы нарушено. Тем не менее я все равно постарался бы создать учетную запись до появления нового сотрудника. Другие дела пришлось бы отложить на день, и это не вызвало бы непонимания клиентов в условиях аварийной ситуации. Но ради создания учетной записи я готов остаться на работе допоздна, чтобы не нарушить срок.
Установку нового сервера (ТЗ) я отношу к категории «черных дыр». По идее, требуется несколько минут на монтаж оборудования, около часа на установку операционной системы и чуть больше часа на ее конфигурирование. По крайней мере, так считают производители. Мы-то, системные администраторы, знаем, что это нереально. В первый раз монтируя незнакомое устройство, вы не один час потратите на то, чтобы разобраться со своеобразной системой монтажа, изобретенной производителем. Процесс установки операционной системы на сервере, как правило, включает в себя ее многократную установку, настройку и последующее удаление, пока не будет достигнута идеальная конфигурация. (Этот ящик будет стоять тут несколько лет, так что имеет смысл потратить время на то, чтобы довести все до ума.) Конфигурирование тоже никогда не укладывается в предполагаемые рамки. Следовательно, браться за задачи типа «черная дыра» следует только после успешного завершения задач, время выполнения которых прогнозируется точнее.