Личный опыт применения бережливого производства в IT

от автора

Очень давно вынашивал в себе планы написать эту замечательную статью, но из-за нехватки времени всё никак не мог закончить её оформление. Благодаря череде новогодних праздников мне удалось найти время и силы, чтобы довести начатое до логического конца. Ура! Надеюсь, что мой труд не пропадёт зря и найдёт позитивный отклик у аудитории Хабра.

Введение.

Бережливое производство (lean production или просто lean) — это концепция, ориентированная на максимальную эффективность работы предприятия за счёт минимизации всех видов потерь. В основе лежит стремление к созданию ценности для потребителя, при этом исключая все ненужные расходы и излишние процессы, которые не добавляют этой ценности. Данная философия активно применяется в различных отраслях, от производства автомобилей до сферы услуг.

Если описывать простыми словами, то бережливое производство – это про концентрацию на основном результате труда (основной ценности), поиск путей наиболее эффективного получения этого результата и отказ от траты времени и ресурсов на то, что эту ценность не приносит.

Например, мы хотим стать олимпийскими чемпионами по прыжкам в высоту. Это значит, что вся наша деятельность должна быть направлена на достижение этой цели, поэтому мы тратим время на интенсивные тренировки, соблюдаем режим дня и питания, употребляем «витамины» для более быстрого восстановления, обучаемся только у опытных тренеров, участвуем в региональных соревнованиях, общаемся с другими спортсменами и прочее. Все остальные активности, которые нам не помогают в достижении этой цели, мы выбрасываем. Отказываемся от ночной разгрузки вагонов, от строительства своими силами дачного домика, от употребления алкоголя, от посещения кружков по вышиванию и рукоделию и т.д. Всё должно быть подчинено нашей цели.

Что такое потери в бережливом производстве?

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

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

Основные виды потерь, которые идентифицируются в рамках бережливого производства, включают:

  1. Перепроизводство — производство продукции в количестве, превышающем потребности рынка или текущие запросы, что приводит к лишним запасам и затратам на хранение.

  2. Ожидание — время, когда люди или оборудование простаивают в ожидании следующего этапа работы или материала.

  3. Ненужные перемещения людей — лишние движения работников, инструмента или материалов, которые не приносят добавленной стоимости.

  4. Ненужная транспортировка товаров — лишние движения товаров, например, перемещение товара на склад или со склада, возвращение продукции на предыдущий этап обработки и т.д.

  5. Избыточная обработка — затраты времени и ресурсов на обработку деталей, которые были признаны бракованными на предыдущих этапах обработки, или использование более дорогих технологий, чем это необходимо для достижения требуемого результата.

  6. Дефекты — ошибки или дефекты продукции, требующие исправления или приводящие к утилизации продукции.

  7. Ненужные запасы — излишние материалы или продукция, которые не используются сразу, занимая пространство и требуя дополнительных затрат на их хранение.

.

Переходим к сути вопроса.

IT немного отличается от промышленного производства (фабрик, заводов и т.д.), поэтому не все эти виды потерь актуальны для IT. Проанализировав работу нескольких управлений в нашей компании, я обнаружил наиболее актуальные виды потерь.

Небольшое примечание. Изначальная статья, написанная мной, была в 4 раза больше по объёму, а большие статьи на Хабре мало кто читает до конца, поэтому мне пришлось сильно урезать объём статьи. Из-за этого пришлось удалить раздел, где происходит соотнесение между потерями бережливого производства и потерями в IT, т.е. как одно соотносится к другому. На общую полезность статьи это почти никак не повлияло, просто переход от одного к другому получился более резким.  

 

Потеря №1: Повторное выполнение работы.

Суть потери:

— Разные исполнители выполняют одну и ту же задачу, при этом они об этом даже не догадываются.

— Переделка работы по несколько раз, так как исполнитель не понял сразу суть задачи.

Описание:

Ситуация № 1. Разные исполнители выполняют одну и ту же задачу, при этом они об этом даже не догадываются.

В одной из групп нашей славной компании было обнаружено, что все задачи там не распределяются по исполнителям, а отправляются в общий пул задач, откуда каждый исполнитель сам себе забирает задачу, которую будет выполнять. Каждый исполнитель сам решает сколько и каких задач он себе заберёт.

На первый взгляд всё выглядит замечательно – «от каждого по способностям, каждому по труду». Всё как завещал великий вождь пролетариата.

На практике же это приводит к огромному количеству проблем:

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

2. Несколько человек могут начать выполнять одну и ту же задачу, потому что первый исполнитель не сообщает об этом остальным. Это приводит к тому, что усилия нескольких человек тратятся впустую.

3. Так как все делают всё, то никто не является экспертом ни в чём. Знания в голове похожи на одеяло из лоскутов, т.е. там лишь обрывочные знания без понимая общей картины.

4. У каждого человека разная тяга к прекрасному, поэтому часто кто-то может начать «более качественно» переделывать задачу, которую ранее кто-то уже выполнил, что приводит к дополнительным обидам, т.к. чей-то труд уничтожается прямо на глазах его создателя.

Как это исправить?

Необходимо внедрить специализацию.

1.На конкретный тип задач выделяются только 2 исполнителя, причём один основной, а второй запасной. Все задачи одного типа назначаются только на основного исполнителя, и он отвечает за итоговый результат. Если он заболел или в отпуске, то эти задачи назначаются на запасного. Кто-то основной по одному типу задач и одновременно запасной по другому типу задач, т.е. есть полное перекрытие по задачам, чтобы исключить bus factor.     

2. Так как есть специализация, то общего пула задач теперь нет. Уже не получится забирать себе самые простые задачи. Все задачи на исполнителей должен назначать руководитель.

3. Специализация позволяет людям глубже вникать в выполняемые задачи, что увеличивает экспертизу внутри группы.

4. Выполнив одну задачу 100 раз подряд к человеку приходит понимание, что было бы неплохо её как-то автоматизировать. Так в группе постепенно развивается автоматизация. Причём руководителю не нужно для этого прилагать никаких усилий и никого заставлять. Если человек выполняет задачу 4 раза в год, то у него нет никакого стимула для её автоматизации. А вот если 100 раз за 1 месяц, то тут избежать автоматизации уже не получится.

5. Все люди разные и обладают разными сильными сторонами. Специализация это учитывает.

6. Так как у каждого исполнителя свой пул задач, то никто «не будет лазить на чужую территорию» и не будет пытается там «более качественно» переделывать задачу, которую ранее кто-то уже выполнил.

Ситуация № 2. Переделка работы по несколько раз, так как исполнитель не понял сразу суть задачи.

Как это исправить?

Хотя эта проблема и выглядит простой, но причин её возникновения может быть множество, поэтому в каждом конкретном случае я рекомендую искать корневую первопричину, чтобы исправить именно её, иначе проблема будет постоянно повторяться.

1. Все задачи должны быть чётко сформулированы. В этом помогает методика SMART (Specific, Measurable, Achievable, Relevant, Time bound). Подробнее о ней можно почитать в статье — Метод SMART (https://habr.com/ru/companies/otus/articles/772794/).

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

3. Необходимо установить доверительные отношения между текущим исполнителем и теми людьми, которые находятся в рабочем flow до него. Например, если до исполнителя находится системный аналитик, то имеет смысл поговорить с ним, чтобы договориться о том, в каком именно формате необходимо предоставлять данные для работы, чтобы исполнитель сразу понял, что от него требуется и не тратил своё время на постоянные уточнения, а потом и на ненужную переделку.  

4. Так как для выполнения многих задач используется целая цепочка людей, то очень важно, чтобы каждый из них умел нормально общаться друг с другом и был способен договариваться. Люди с развитыми навыками коммуникации здесь ценятся очень сильно.

 

Потеря №2: Многозадачность.

Суть потери:

— Большое количество одновременно выполняемых задач, постоянное переключение между ними, частая смена контекста, невозможность сконцентрироваться на чём-то одном.

Потоки с бесполезной информацией, отвлекающие уведомления и прочее.

Описание:

Ситуация № 1. Большое количество одновременно выполняемых задач, постоянное переключение между ними, частая смена контекста, невозможность сконцентрироваться на чём-то одном.

Анализ заявок в корпоративной тикетной системе показал, что в некоторых группах на одного исполнителя приходится по 5-6 одновременно выполняемых задач. Дополнительное общение с исполнителями подтвердило эту проблему.  

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

Как это исправить?

К сожалению, не все руководители понимают, что многозадачность – это зло.

Так как проблема многозадачности затронула и мою группу, то на своём примере я расскажу, как мы с этим боролись.

1. Необходимо регулировать количество задач, которые поступают к исполнителю. Исполнитель всегда видит только 2 активные задачи. Больше ничего. Исполнитель выбирает одну задачу и начинает её выполнять. Если сделал, то приступает к выполнению второй задачи. Ограничение на количество активных задач (Work in Progress, WIP) – это основа работы метода Канбан, который мы внедрили у себя в группе, чтобы не умирать от больших объёмов работы. Почему Канбан такой классный, можно прочитать в моей предыдущей статье — https://habr.com/ru/articles/869164/.   

2. Внедрение однозадачности. В один момент времени выполняется только одна задача. Вторая задача находится в запасе и переключение на неё возможно только тогда, когда в первой задаче образовался вынужденный временный простой, или, когда исполнитель устал долго работать над первой задачей и хочет переключить своё внимание, чтобы немного расслабиться. Вторая задача должна быть без жёстких сроков исполнения. 

3. Контроль над поступлением задач. Все задачи ставятся только через единую тикетную систему. Всех любителей звонков, чатов и почты я отправляю в тикетную систему, снабдив ссылкой на wiki. Когда кто-то приходит ко мне с вопросами, почему какая-то задача ещё не выполнена, то я прошу его прислать мне номер заявки из тикетной системы. Нет тикета – нет работы, а значит, и нет претензий.   

Ситуация № 2. Потоки с бесполезной информацией, отвлекающие уведомления и прочее.

Как это исправить?

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

.

Потеря №3: Загруженность исполнителей выше 60%.

Суть потери:

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

Как это исправить?

Проблема немного пересекается с многозадачностью, о которой речь шла выше, но я выделил её отдельно.

1. Всегда нужно оставлять исполнителям 20% свободного времени. Это время исполнитель может потратить:

— на свой отдых;

— на выполнение тех задач, которые ему нравятся, но на которые ранее ему не хватало времени;

— на выполнение задач, которые позволяют улучшить производственный процесс, т.е. выполнять работу быстрее и качественнее, тратя при этом меньше усилий;

— на собственное обучение новым технологиям и отраслевым стандартам.

2. Ещё 20% времени остаются зарезервированными для «тушения пожаров», т.е. для выполнения срочных и непредвиденных задач, например, «упал» биллинг, мобильное приложение недоступно для клиентов, пропал интернет во всей области, на датацентр упад метеорит и т.д.  Сюда же относятся неожиданные обстоятельства («подводные камни»), которые появились во время выполнения обычной работы.

3. Оставшиеся 60% времени – это и есть тот временной ресурс, который тратится на выполнение повседневных рабочих задач. 

4. Мы активно у себя используем закон Парето. 20% задач приносят 80% результата, поэтому учимся правильно расставлять приоритеты и назначать исполнителям только важные и полезные задачи, а не всё подряд.   

5. Так как в нашей корпоративной культуре высокостоящие руководители полагают, что у них в распоряжении имеется бесконечное количество исполнителей и бесконечное количество свободного времени у них, то мы никогда и никому не сообщаем, что у нас появляется свободное время. Мы всегда очень заняты, нам всегда не хватает людей и рабочего времени.

Благодаря внедрению Канбан мы стали работать намного эффективнее, поэтому мы смогли получить для себя немного свободного времени. Это время мы хотим теперь потратить на себя:

— Работать в нормальном режиме без авралов.

— Больше отдыхать и восстанавливать свои силы. 

— Иметь возможность в любое время сходить к ребёнку на утренник или посетить врача.

— Обучаться новым технологиям, внедрять их в компании, прокачивать свои профессиональные навыки.

— Продолжать анализ текущих задач и искать способы наиболее оптимального их выполнения.

Если мы начнём сообщать всем, что благодаря Канбан у нас появилось свободное время, то нам просто начнут отдавать задачи менее эффективных групп, как это уже ранее было. По итогу придётся выполнять задачи за себя и за другие группы, получая при этом свою прежнюю зарплату и лишившись своего свободного времени. Так что нам приходится шифроваться. J.

Теперь расскажу, как именно мы уменьшали объём своей работы.

1. Первое с чего мы начали – это инвентаризация всех сервисов и вывод из эксплуатации всех старых сервисов. Это процесс не быстрый, поэтому он продолжается до сих пор. Меньше сервисов на сопровождении – больше свободного времени для реально полезных задач.

2. Стараемся не брать к себе на сопровождение новые сервисы и не принимать участие в активностях, где такой сервис можно случайно получить. 

3. Стандартизация всех основных активностей и создание большого количества статей в Wiki. Это позволяет ускорить онбординг новичков в команду, постоянно делиться знаниями между ребятами в группе, а также служит основой для будущих активностей по автоматизации. 

4. Обучение сотрудников, которые к нам обращаются за помощью. Часть повторяющихся задач они теперь могут выполнять самостоятельно без привлечения нашей группы.

5. Специализация стимулирует автоматизацию, так что часть задач нам удалось автоматизировать.

6. Все ночные работы теперь стараемся собирать вместе и проводить их в ночь с четверга на пятницу, чтобы в пятницу получить весь день отсыпного, т.е. выходной день.

7. Периодический анализ тикетов и поиск там повторяющихся задач, которые можно стандартизировать и потом автоматизировать.

8. Сокращение количества митингов, оптимизация их содержимого, отказ от ненужных митингов. Раньше на митинг звали всех подряд и это сжигало кучу времени у команды. Теперь если надо, то на митинг хожу я один. Пока мне выедают мозг на митинге, ребята могут спокойно поработать.

9. Создаём себе задачи на развитие. Это задачи, которые позволяют улучшить производственный процесс, т.е. выполнять работу быстрее и качественнее, тратя при этом меньше усилий. Такие задачи мы используем в качестве квартальных, так как это позволяет выделить на их реализацию достаточное количество времени.

10. Один квартал в году посвящаем задачам на обучение. Каждый для себя выбирает ту технологию, с которой хочет познакомиться, смотрит лекции, читает статьи и потом по итогу квартал внедряет пилотную инсталляцию. Каждый сам может выбрать, что ему хочется изучить в течение одного квартала. Если новая технология успешно прижилась, то позже внедряем её в продуктив на полноценной основе в рамках отдельной квартальной задачи.

11. Обновление существующих сервисов на последние версии ПО, чтобы там оставались только задачи операционной работы.

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

 

Потеря №4: Дефекты и ошибки в работе.

Суть потери:

Ошибки в работе, возникающие по разным причинам:

— Выполнение работы вручную.

— Излишняя спешка из-за срочности задачи.

— Усталость исполнителя после ночных работ и прочее.

Как это исправить?

Узнав про дефекты в бережливом производстве, я решил начать собирать данные о них в нашей компании. Я фиксировал все обнаруженные случаи и искал их первопричины, чтобы затем сформировать список действий для их исправления.

Какие причины я нашёл:

1. Многозадачность. Больше количество выполняемых задач ведёт к постоянному переключению контекста. Что-то забывается, что-то пропускается. Это ведёт к ошибкам в работе. Сюда же относятся постоянные отвлечения из-за уведомлений в почте, корпоративном мессенджере, тикетной системе или просто из-за мимо проходящего шумного коллеги.

2. Попытки выполнить работу по памяти без использования готовых статей и чек-листов на wiki.

3. Усталость исполнителя после ночных работ.

4. Выполнение вручную работ, для которых есть автоматизация.

Возможности для сокращения дефектов.

1. Устранение неопределённости путём стандартизации задач и написания статей на wiki.

2. Многозадачность отлично устраняется с помощью использования Канбан. Очень рекомендую Канбан.

3. Стараться избегать спешки и по возможность отказаться от срочных задач.  

4. Отказаться переработок и работать в нормальном режиме без авралов.

5. Позволять исполнителям нормально восстановиться после ночных работ. Уменьшить количество ночных работ. Группировать работы, чтобы тратить одну ночь, а не несколько.

6.  По возможности автоматизировать ручной труд.

7. Осуществлять промежуточный контроль качества на отдельных этапах. Ключевое здесь – это промежуточный контроль, а не тотальный контроль всего и вся. Все мы люди, все допускаем ошибки, поэтому дополнительная пара глаз всегда будет полезна.

8. Упрощение процессов. Чем проще, тем лучше. В простом процессе труднее допустить ошибку.


ссылка на оригинал статьи https://habr.com/ru/articles/873156/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *