Создание и совершенствование системлежит в основе любого успешного бизнеса. Однако
улучшить их не всегда просто: зачастую изменение систем приводит к неожиданным
последствиям.
В этой главе вы узнаете основные секреты оптимизации,научитесь исключать ненужное
трениеиз самых важных процессов и выстраивать системы, способные справляться с
неизвестностьюи изменениями.
Оптимизация
Преждевременная оптимизация — корень всех зол.
Дональд Кнут, компьютерный ученый, бывший преподаватель Стэнфордского университета
Оптимизация— это процесс максимизации выходного значения системы или минимизация
входных параметров, необходимых для функционирования системы. Оптимизации обычно
подвергаются системы и процессы, связанные с ключевыми показателями деятельности,
измеряющими важнейшие элементы системы в целом. Улучшайте свои KPI, и ваша система станет
лучше работать.
Максимизация обычно концентрируется на пропускной способностисистемы. Если вы
хотите зарабатывать больше денег, создавать больше продуктов или обслуживать большее
количество клиентов, то занимаетесь оптимизацией пропускной системы.
Минимизация обычно концентрируется на входящих параметрах, необходимых для
деятельности системы. Если вы пытаетесь увеличить свою маржу прибыли,то вам стоит
обратить внимание на расходы. Уменьшите их величину, и ваша маржа вырастет.
По определению, пытаясь максимизировать или минимизировать более одного параметра,
вы занимаетесь не оптимизацией, а созданием компромисса. Множество людей считает, что
оптимизировать значит просто «делать все лучше», но на самом деле такое определение как раз
будет препятствовать реальному улучшению.
На практике одновременная оптимизация нескольких переменных чаще всего не
получается: вам следует концентрироваться на одной переменной в единицу времени. Только
таким образом вы сможете понять, как изменения влияют на систему в целом. Вы пытаетесь
найти причинно-следственную связь(а не корреляцию)в своих изменениях и не всегда
заметных связях.Поэтому, думая сразу о нескольких вещах, вы не сможете понять, какие
именно изменения привели к каким результатам.
277
Помните, что вы не сможете добиться успешной оптимизации, работая одновременно с
несколькими переменными. Выберите самую важную и сконцентрируйте на ней свои усилия.
Рефакторинг
Элегантность неестественна, и достичь ее можно только ценой больших усилий. Изначально
результат не будет элегантным, но если, создав продукт, вы поймете, как можно его улучшить, а
затем переделаете его, то после некоторого неизвестного количества итераций сможете получить
нечто по-настоящему элегантное.
Эрик Наггум, программист
Не все изменения системыили мероприятия по ее совершенствованию обязательно
повлияют на результат ее работы.
Рефакторингпредставляет собой процесс изменения системы, направленный на
повышение ее эффективности без изменения результата ее работы. Изначально этот термин
появился в области программирования. Программисты проводят многие часы за переписыванием
кода, который даже при самом благоприятном исходе будет делать то же самое, что и прежде.
Основное преимущество рефакторинга не связано с улучшением результата работы
системы: скорее, речь идет о превращении системы в более быструю или эффективную, то есть у
вас появляется возможность либо ускорить работу, либо задействовать для достижения
результата меньше ресурсов.
Рефакторинг начинается с деконструкциипроцесса или системы, после которой
осуществляется поиск шаблонов.В чем состоят критически важные процессы, без точного
соблюдения которых вы не сможете достичь желаемой цели? Должны ли эти процессы следовать
в определенном порядке? В чем состоят нынешние ограничения?Что кажется самым важным?
Соберите максимум информации о том, как работает система, а затем хорошенько ее
проанализируйте.
Скорее всего, вы заметите, что в системе есть элементы, не имеющие определенного
смысла, — например, некий метод работы, поначалу казавшийся оптимальным, но со временем
Читать дальше