Затем исследуя конкретные проблемы, мы начали собирать информацию о том, как исправить определенные части потока. Мы превратили эти знания в стандарты, которые были связаны с различными частями потока создания ценности, чтобы напрямую соединить решения с проблемами. Конечно, чем больше проектов использовало поток создания ценности, тем больше стандартов разрабатывалось, по принципу спирали.
Минимизация потерь в веб-приложениях.
Потери в Lean – это действия, которые не добавляют ценность клиенту и приводят к использованию ресурсов, не повышают рыночную стоимость продукта, а увеличивают его себестоимость.
В сфере IT таких потерь предостаточно. Расскажу о нашем опыте.
Одним из преимуществ потока создания ценности является то, что она помогает нам определить коэффициент Парето производительности. Если взглянуть на самый большой разрыв между стандартным и фактическим временем загрузки, то теперь это говорит нам на чем сосредоточиться дальше.
Критическим с точки зрения производительности обычно является шестой шаг – браузер загружает ассеты. Это то место, где тяжелое приложение вызывает неудовлетворенность времени загрузки.
Кайдзен показал нам, что разработчики часто загружают библиотеки (повторно используемые фрагменты кода, разработанные и распространённые внутри комьюнити), которые не являются необходимыми для кода приложения. Это часто приводит к бесполезной загрузке фрагмента кода, который никогда не будет использован. Это и есть один из видов потерь в Lean. Один из примеров такого, это Lodash, популярная библиотека Javascript, которая инкапсулирует в себе более 100 часто используемых функций (по сути это швейцарский армейский нож для Javascript разработчика). Например, разработчику необходимо использовать метод флаттен, библиотеки Lodash для преобразования сложных структур данных в более простые. Наивно было бы использовать его просто импортируя:
import { flatten } from 'lodash'; // weighs 71Kb Однако это имеет неожиданно побочный эффект, так как загружаются все 100+ функций Lodash, хотя нам нужно использовать только 1 функцию. Чтобы избежать такой Lean потери, есть менее известный подход к загрузке только необходимой функции: import flatten from `lodash/flatten`; // weighs 2.8Kb Этот простой трюк позволяет уменьшить размер на 68 КБ, этого достаточно, чтобы ускорить время загрузки на 1 секунду для пользователя 3G. Сегодня 60% веб-приложений Theodo загружается менее чем за 3 секунды. Мы создали базу знаний из более чем 10 стандартов, покрывающие большинство проблем производительности. Наша следующая задача, перейти от реагирования (исправления приложений) к работе на упреждение (создание эффективных приложений с самого начала). Чтобы достичь этого, нам необходимо будет научиться правильно писать код с первого раза для оптимальной веб производительности. Я не сомневаюсь, что Кайдзен покажет нам путь к этому. https://planet-lean.com/doubling-performant-apps-using-kaizen/