Разработка по Lean. Приятно познакомиться

15
Feb
2022
5 мин
RU

Если вы не жили без связи последние лет 5-10, то о таких терминах как lean, agile и scrum, определенно, слышали. Их сейчас так много повсюду, что кажется, даже кофе следует делать по гибким методологиям.

Hirin.co уже делал краткий обзор особенностей разработки по Scrum. Теперь будем рады сделать вводную в Lean или бережливое производство в IT.

Что такое Lean?

Интерес к гибким методологиям не случаен. Ключевое преимущество бизнесов сегодня - умение быстро выпустить продукт. Соответственно, чтобы выжить, компании вынуждены улучшать эффективность, тщательнее распределять ресурсы, меньше отвлекаться и больше давать. В общем, делать то, для чего придумали Lean.

Начнем с определения. Lean - это философия производства продуктов быстрее и с меньшими затратами. Нашим англоязычным коллегам повезло: они могут использовать термин “waste”, близкий к оригинальному “mooda”. Поскольку этот самый waste бывает как полезным, так и бесполезным, в данной статье мы используем выражения “излишества” или “затраты” (имея в виду затраты времени и ресурсов).

Lean подход улучшает традиционную разработку продукта за счет того, что устраняет беспорядок в коммуникациях и создает в организации культуру постоянных улучшений. А это, в свою очередь, заряжает людей и приводит к большей эффективности.

Многие компании до сих пор выстраивают свою стратегию вокруг производственных мощностей, т.е. следят, чтобы все были заняты. Что ж, это значит, что организация не готова встречаться с экстренной необходимостью (итак все ресурсы заняты) и показывает худшие результаты в долгосрочной перспективе. Ну и мы все знаем, что быть занятым и быть эффективным - разные вещи.

Особенность Lean в том, что он меняет процесс. Меняются приоритеты важности. Тут потребуется здравый смысл и даже некоторая смелость, чтобы остановить задачи, которые уже в процессе, и начать новые, направленные на создание ценности.

Происхождение и внедрение Lean

Lean и Agile в разработке программного обеспечения возникли как ответ на плановую структуру “водопада” (waterfall). Правда, Lean пришел к нам из промышленного мира, а именно из Toyota Production System, развернутой в пятидесятых. Середина XX века - время, когда Япония отстраивалась после второй мировой войны. Чтобы выжить, компании Toyota пришлось поменять подход на такой, который сфокусировался на создании ценности и исключении излишеств. Потом его назвали “бережливым производством”. Концепция стала известной благодаря американским журналистам и исследователям, которые пытались понять, почему японский автомобильный рынок превзошел американский (хотя в довоенные времена японский автомобиль был синонимом ненадежности и дороговизны).

В IT-мир Lean пришел благодаря Мэри и Тому Поппендик (Mary and Tom Poppendieck), которые в 2003 году выпустили книгу “Lean Software Development, an Agile Toolkit”. Там они сформулировали ценности и практики Lean и зафиксировали 7 основных принципов:

  1. Избегайте лишнего. В основе Lean - ценность. Излишества - это всё, что не создает ценность. При этом, излишества могут быть нужными, если они не добавляют ценность, а помогают строить процесс. К ним относятся формальности, через которые должна пройти команда. А вот ненужные излишества следует исключать сразу. К ним относятся:
  • Частично сделанная работа (неиспользуемые код, дизайн, спецификации);
  • Дополнительный функционал (который не несет решающей ценности клиенту);
  • Переучивание;
  • Перекидывание задач;
  • Переключение между задачами;
  • Отсрочки (в том числе, в принятии решения);
  • Дефекты (некачественно написанный функционал, ошибки в документации).

Это лишь некоторые из потерь в области IT производства.

  1. Встраивайте качество. Quality assurance это не столько про то, чтобы составить багрепорт или починить сломанное, но больше о предупреждении потерь. TDD, continuous integration, рефакторинг - эти и другие техники используются Lean-командами, чтобы давать клиентам качественный продукт.
  2. Создавайте знания. Разработка ПО просто-таки построена на системе повышения квалификации. Разработчики в системе Lean учатся постоянно. Итеративный подход к работе позволяет им воплощать изученное в коде и регулярно улучшать наработки. Для распространения знаний в Lean используются парное программирование, код-ревью, wiki, документирование, сессии обмена знаниями, кросс-командные метрики и так далее.
  3. Решайте медленно. Звучит контринтуитивно. Обычно деловой подход предполагает быстрое принятие решений. Но этот принцип Lean предлагает нам не прокрастинацию. Он как бы продолжает предыдущий пункт - чем дольше мы учимся, тем больше у нас знаний для лучшего решения.
  4. Доставляйте быстро. Строить большие сложные планы заранее и создавать монолитные системы с множеством ненужных вещей - это не про современное ПО. Подобные подходы не совместимы с переменами и потому губительны для постоянно изменяющегося бизнеса. Lean предлагает сменить их на модель MVP (minimum viable product). Это значит: строить быстро, включать небольшой функционал, выводить продукт на рынок как можно раньше и следить за реакцией. Такой подход предполагает, что мы остановим все дела, которые не дают ценность, а решения будут приниматься на основании обратной связи от пользователей из реального мира. Быстрая доставка - ключевое преимущество, но скорость не должна достигаться за счет качества.
  5. Уважайте людей. И тех, кто относится к вашим клиентам, и свою команду разработки. Уважение к пользователям проявляется как удобные интерфейсы и быстрая реакция на отзывы. Внутри команды важно заряжать людей, а не контролировать их. Также следует создавать благоприятное для работы окружение (или “гемба”).
  6. Оптимизируйте всю цепочку ценности. Важно перестраивать весь процесс, а не только частные случаи. Работа с частными случаями ведет к случайностям (чаще - неприятным) во время эксплуатации.

Почему lean применим для IT разработки

Принципы Lean обеспечивают ряд преимуществ. Например, это такие важные вещи как:

  • Видимость – нельзя управлять тем, что не измерено и нельзя измерить то, что не видно. Визуализация играет ключевую роль в Lean, поскольку она делает видимой не только систему, но и ее компоненты.
  • Коммуникация – ежедневные встречи, маленькие команды, личная ответственность за процесс и минимальные задержки в принятии решений делают коммуникацию эффективнее. Продуктивность от этого только растет.
  • Фокус – если сосредоточиться на ключевых приоритетах, то можно избежать многозадачности и дополнительных дел (а это все - форма излишеств). Если делать кучу всего одновременно, то производство станет затягиваться, а проблемы - копиться. Фокусировка рационализирует и упрощает разработку.
  • Быстрый отклик - лучше работать над небольшими объектами, которые могут выйти в релиз независимо друг от друга и принести ценность клиенту.Это позволяет получить быстрый отклик, а с ним - и понимание того, что пошло не так и что с этим всем теперь делать. Обратная связь также спасает от перепроизводства (лишнего функционала) и от потерь, связанных с ним.
  • Командная работа – когда люди по-настоящему включены в работу, они чувствуют себя ответственными и ведут себя соответственно. Сотрудники больше дают, стараются постоянно улучшать то, с чем работают, учатся и вместе растят коллектив, продукт и компанию.

Что такое анти-lean

И хотя Lean уже стал расхожим словечком, внедряют его по-разному. Чаще - даже в формате анти-lean, из-за чего результат получается далеким от оригинала. Так бывает из-за следующих ошибок:

  1. Lean воспринимают как инструмент. Да, инструментов тут хватает для разных задач. Взять те же PDCA, A3’s, канбан или Шесть Сигм. Но сам Lean это философия и стратегия, которую следует внедрять по всей организации. Только такой подход приведет к успеху.
  2. Не хватает мышления в стиле “кайдзен”. С японского “кайдзен” переводится как “постоянное улучшение”. Это неизменная часть Lean. Это понятие подразумевает маленькие ежедневные шаги, которые со временем приведут к крупным улучшениям. Такой подход предполагает, что все сотрудники будут вовлечены. Интересно, что ключевые преимущества кайдзен становятся и основными рисками для Lean. Во-первых, потому что сложно чувствовать счастье и мотивацию от маленьких, порой почти не видимых результатов. Люди обычно хотят всё и сразу. И все же штука в том, что умение делать маленькие шажочки, удовлетворяться промежуточными результатами и черпать мотивацию из будущих успехов. Они оплатятся многократно. И, конечно, кайдзен должен быть частью культуры в компании, а не просто инициативой пары человек.
  3. Зацикленность на сокращении. Избавляться от лишнего (в том числе, в финансовом и кадровом плане) - одна из главных задач Lean. Но было бы большой ошибкой превращать это в самоцель. Lean это философия построенная на ценности и эффективности, а не на бездумном сокращении всего и вся. Экономия это вишенка на торте, а не сам торт.
  4. Ожидают готовые решения для бизнеса. Есть такой термин в отношении компаний, которые внедряют бережливое производство - “начать путешествие по Lean”. И это логично. Во-первых, Lean это путь, а не конечная станция. Это живая система, а не кристаллизовавшееся решение. Все принципы этой философии требуют открытого мышления. Ведь люди попросту не могут принимать верные решения, учиться и быстро производить, если утонули в бюрократической рутине и бездумно следуют инструкции. Вторая важная часть это “начать”. Она напоминает нам о постоянном поиске способа работы. Lean никогда не предлагал незыблемых правил. Как показывает практика, только адаптация к вашему уникальному бизнес-контексту, постоянный поиск оптимального хода процессов и итеративные улучшения делают путешествие успешным.

Lean сложен и прост одновременно. Его суть можно свести к простым правилам: удалять излишки, не выделять ресурсы пока это не имеет смысла, не строить целое приложение если не известно - есть ли интерес от целевой аудитории, делать меньший функционал, получать обратную связь и только потом строить дальше. Если еще проще: не замахивайтесь далеко пока не провалидировали интерес, а валидируйте как можно чаще. Просто? Кажется, что да. Вся сложность в том, что нет готового рецепта во внедрении. Так что приготовьтесь, отправляйтесь в путь и стройте подходящий для вашего бизнеса Lean.


Let the best tech companies make you a job offer
Create your profile, add salary, preferences, and respond to offers Yes or No. Simple as that.
TRY FOR FREE 
Позвольте глобальным tech компаниям сделать вам оффер
Создайте профайл, укажите желаемый уровень ЗП, свои предпочтения и получайте приглашения на интервью
попробовать 
Дозвольте глобальним tech компаніям зробити вам офер
Створіть профайл, вкажіть бажаний рівень ЗП, свої уподобання та отримуйте запрошення на інтерв'ю
спробувати 

Keep in touch

Sign up for our news to learn about new features and platform updates

You are now subscribed to our weekly newsletter
This email was already used