В задачах по оптимизации производительности очень важным моментом является назначение очередности работ по оптимизации. Стандартный подход для этих целей предполагает простановку значений в колонку «Приоритет». Заказчики могут не понимать назначения данной колонки, совершенно справедливо утверждая: «Для нас все одинаково приоритетно».
После этого обычно им нужно объяснить, что работы по оптимизации, как правило, не выполняются параллельно: и из-за ограниченности ресурсов, и из-за взаимного обесценивания работ, и фактически приоритет – это очередность проведения работ и решения проблем по списку ключевых операций. Исходя из этого, рождается какой-то список операций с субъективно назначенными приоритетами, который затем используется в работе, если проектом кто-то управляет, или не используется, если эксперт предоставлен сам себе и имеет собственное представление о том, в какой очередности нужно решать проблемы. Разумеется, не надо считать, что это представление неадекватное, часто оно основано на таких объективных показателях, как минимальная трудоемкость выполнения работ («стратегия быстрых побед») или степень влияния на общий результат, и в целом результат может не пострадать. Плохо в этом то, что управляемость процессом отсутствует – вы запланировали одну очередность для работ, фактически она оказалась другой. Либо вы принудительно можете добиться управляемости процесса, но ошибки при формировании очереди приведут к тому, что до каких-то реально влияющих на результат операций дело или не дойдет вовсе, или дойдет гораздо позже, чем надо бы.
Рецепт предлагается искать в том, чтобы формировать приоритеты на основе объективной информации, рациональным способом. Это позволит как автоматически добиться от эксперта соблюдения очередности проведения работ (рациональное решение послужит надежным обоснованием для людей технического склада), так и избежать смещения важных работ на заведомо дальние сроки.
После этого обычно им нужно объяснить, что работы по оптимизации, как правило, не выполняются параллельно: и из-за ограниченности ресурсов, и из-за взаимного обесценивания работ, и фактически приоритет – это очередность проведения работ и решения проблем по списку ключевых операций. Исходя из этого, рождается какой-то список операций с субъективно назначенными приоритетами, который затем используется в работе, если проектом кто-то управляет, или не используется, если эксперт предоставлен сам себе и имеет собственное представление о том, в какой очередности нужно решать проблемы. Разумеется, не надо считать, что это представление неадекватное, часто оно основано на таких объективных показателях, как минимальная трудоемкость выполнения работ («стратегия быстрых побед») или степень влияния на общий результат, и в целом результат может не пострадать. Плохо в этом то, что управляемость процессом отсутствует – вы запланировали одну очередность для работ, фактически она оказалась другой. Либо вы принудительно можете добиться управляемости процесса, но ошибки при формировании очереди приведут к тому, что до каких-то реально влияющих на результат операций дело или не дойдет вовсе, или дойдет гораздо позже, чем надо бы.
Рецепт предлагается искать в том, чтобы формировать приоритеты на основе объективной информации, рациональным способом. Это позволит как автоматически добиться от эксперта соблюдения очередности проведения работ (рациональное решение послужит надежным обоснованием для людей технического склада), так и избежать смещения важных работ на заведомо дальние сроки.