Русский
Русский
English
Статистика
Реклама

Бережливое производство

Системы управления производством и производственными операциями и современные вызовы

21.12.2020 18:22:45 | Автор: admin
image
В ближайшие годы перед промышленностью будут стоять несколько связанных между собой вызовов:

  1. Встраивание в глобальные цепочки поставок. Время крупных промышленных компаний, которые производят всё, начиная от винтика и заканчивая ракетой, уже закончилось. Ориентация на то, что получается лучше всего и способность предложить это рынку, гармонично встроить производственные мощности и компетенции в турбулентную рыночную среду.
  2. Повышение потребности в персонализированной продукции. Производство той продукции, которая сшита, собрана, подогнана под потребителя от цвета, до формы и запаха. Для этого нужно иметь возможность быстро производить продукты если не единично, то мелкосерийно и соответственно адаптировать производства. Фраза Генри Форда про автомобиль, который может быть любого цвета, если он чёрный, сейчас неактуальна.
  3. Снижение привлекательности производств для сотрудников и нехватка квалифицированного персонала. Производства инертны и пока не хотят подстраиваться под потребности новых поколений желание свободно распоряжаться своим временем, избегать иерархичных структур и нежелание слепо слушать руководителя. Люди предпочтут работать в кафе возле дома, иметь возможность взять выходной, когда им удобно. Им хочется быть частью чего-то, повышать уровень образования, иметь цель или участвовать в важной для них миссии компании, а не просто стоять у станка.
  4. Социальный запрос на экологичное и рациональное, социально-ориентированное производство. Такие компании выпускают продукцию, принимая во внимание текущие и будущие потребности потребителей, потребности будущих поколений, ставит во главу человека и отношения между людьми, а не отношение к человеку как к ресурсу. Компании, которые не думают о клиентах, сотрудниках и той среде, в которой они существуют, рискуют потерять и первых и вторых, оставив среду тем, кто готов в неё гармонично вписаться.

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

Управление в контексте ценности


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

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

Применение систем MES, обычно работающих в паре с решениями APS (системами производственного планирования и диспетчеризации/графикования), позволяют автоматизировать часть рутинной, но напряжённой работы, а также взять на себя задачи по сбору и предоставлению информации для разных уровней менеджмента предприятия. При этом они оставляют больше времени на работу, которая создаёт ценность для потребителя и компании
Важно понимание того, что такое ценность. В отсутствии понимания потребностей внутренних и внешних заказчиков эффективное управление предприятием невозможно. В концепции бережливого производства понятие ценности описывается четырьмя пунктами:

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


Для заказчика продукт, соответствующий этим пунктам, является качественным, т.е. в должной степени соответствующим по всей совокупности присущих характеристик требованиям. Учитывая описанные выше вызовы проблемы и сложности, которые стоят перед современными производственными предприятиями, возникает вопрос: как ими управлять в таких условиях?

Для чего нужны системы MES?


Как любое коммерческое предприятие, производственный актив должен приносить прибыль. Поскольку производство создаёт продукт, востребованный потребителем, оно является основным источником генерации прибыли. Участвующие в производственном цикле процессы, по-разному влияют на себестоимость изделия. Чем эффективнее процессы, чем меньше потери из-за дефектов, простоев, исправлений, тем ниже себестоимость для производителя и выше его прибыль. Поэтому применение различных автоматизированных систем или установка нового оборудования всегда рассматривается в контексте сокращения издержек, связанных с неэффективностью существующих процессов и операций, а также влияния на производительность и на уровень качества.
image

Системы управления производством и производственными операциями (MES/MOM), такие как DELMIA Apriso, являются инструментом, требующим не только серьёзных финансовых инвестиций для приобретения и внедрения, но и глубокого детального анализа, а иногда и пересмотра существующих бизнес-процессов предприятия. Они должны не только гармонично встраиваться в существующую структуру предприятия, но и соответствовать ожиданиям: обеспечивать удобное управление, предоставлять актуальную и точную информацию для принятия решений, удовлетворять текущим и будущим требованиями производства и общества.
Поддержка уже выстроенных процессов позволяет сохранить комфортную рабочую среду, снизить эмоциональную нагрузку и стресс внутри команды. Учитывая комплексное влияние систем MES на предприятие, их внедрение не должно быть прихотью или погоней за трендом цифровизации. Они должны решать задачи, которые беспокоят как производственника, так и владельца производственного предприятия, помогать предприятию стать прибыльнее и непрерывно развиваться.

Гибкость предприятия


Доктор технических наук Х. Вайендал (H.-P.Wiendahl) выделял три типа гибкости предприятия как системы. Развивая их, можно успешно работать на современных турбулентных рынках, ориентированных на потребителя и его ценности:

  1. Оперативная гибкость, для реагирования на непредвиденные обстоятельства, задачи и проблемы. Охватывает уровень рабочих, оборудования, последовательности операций и объёма продукции, а также снабжение материалами. Позволяет устранять контролировать и сокращать издержки, связанные с браком, переделками, простоями оборудования и сотрудников, а также реагировать и быстро переключаться на уровне исполнения для производства различных заказов.
  2. Тактическая или среднесрочная гибкость обеспечивает наличие процессов, способных в период текущих задач поддерживать стабильность уровня качества и безопасности продукции, точности поставок и требуемого уровня затрат.
  3. Стратегическая гибкость, ориентированная на долгосрочный период способность предприятия реагировать на меняющийся рынок. В контексте стратегической гибкости рассматривается уже всё производство и его способность перестраиваться под потребности рынка.

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

Цифровизация и бережливое производство


Одной из концепций управления является бережливое производство. Эта концепция доказала состоятельность и результативность применяемых методов на предприятиях в различных отраслях. Ориентированная на удовлетворение потребностей клиента в соответствии с ожидаемыми им ценностями, она позволяет сократить издержки, не связанные непосредственно с процессом производства продукции, устраняя известные виды потерь.
Помимо рутинного применения инструментов бережливого производства для решения возникающих проблем, его важными задачами являются организация потока создания ценности выстраивание процессов и операций в последовательности, соответствующей процессам работы над изделием, и совершенствование самих операций. Часто это требует пересмотра текущей планировки, перемещения оборудования, глубокого анализа операций для оценки реального вклада в создание ценности, что требует времени.
В случае изменения номенклатуры или конфигурации изделий может потребоваться новый виток подобных действий. И эти действия необходимо разумно оценить, чтобы не пришлось все переделывать.
image
Инструменты для цифрового производства от Dassault Systemes.


Для работы с такими задачами эффективно использовать решения из области цифровых производств (Digital Manufacturing). Они позволяют смоделировать в трёхмерной среде производственный процесс с размещением оборудования в цехах, проработать технологические маршруты, провести анализ операций обработки изделия. Такие функции реализует DELMIA Digital Manufacturing.
image

Для существующих производств это даёт возможность увидеть в динамике текущие потоки, обнаружить узкие места и до принятия решения о физических изменениях смоделировать новое состояние. Это позволяет оценить результативность планируемых изменений, провести оценку операций обработки, не вмешиваясь и не прерывая реальный физический процесс. Кроме того, можно смоделировать операции, требующие участие оператора и провести оценку не только затрачиваемого времени на создание ценности, но и эргономики операций для формирования комфортной рабочей среды.
Применение подобных инструментов для проектируемых производств позволит избежать ошибок и с первого раза запустить наиболее эффективный процесс с учётом помещения, оборудования, инструмента и ожидаемого уровня спроса.
При запуске в производство новых изделий, применение таких решений позволяет смоделировать в виртуальной среде будущий процесс, спланировав размещение нового оборудования, или оценить пригодность уже существующего, а также собираемость изделия.
Использование систем MES (таких как DELMAI Manufacturing & Operations) позволяет выстроить процесс взаимодействия как между инженерными и производственными подразделениями таким образом, чтобы минимизировать время, затрачиваемое на не создающую ценность работу, например, оповещение о несоответствии или получение инструкций в точке использования, учёт операций по контролю качества и операций между производственными подразделениями для своевременного пополнения уровня запасов на участках и их перемещения дальше по потоку.
Анализ данных, получаемых с оборудования, дает возможность встроить автоматические или ручные оповещения для сотрудников ТОиР, повысить эффективность использования оборудования и получать информацию о его состоянии, автоматически вычисляя показатели его эффективности. Также можно планировать перезаказ компонентов для обслуживания или инструментов в соответствии с заранее определёнными процессами, процессы технического обслуживания.
Таким образом, цифровые решения для автоматизации управления производственными процессами, включая процессы внутренней логистики, ТОиР и управления качеством, позволяют с минимальными издержками реализовать и поддерживать оперативную гибкость производства. Решения, позволяющие моделировать производства на уровне цеха или проводить оценку самих операций совместно с APS (DELMIA Ortems), обеспечивают тактическую гибкость. А использование подобных инструментов совместно с платформенными решениями (такими как 3DEXPERIENCE), позволяющими связать все команды, включая продажи и маркетинг, дает возможность в полной мере реализовать стратегическую гибкость.
image
Она необходима для быстрой разработки продукта требуемого рынку, анализа возможности его производства, оценки самого производства и постоянного развития продукта и компании на основании обратной связи от клиентов.

С чего начать


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

Компания Dassault Systemes в качестве самого первого шага на пути к внедрению систем управления производством предлагает проводить короткое полуторадневное бесплатное бизнес-обследование производства DELMIA Maturity Assessment с ключевыми сотрудниками предприятия. Это позволит выявить существующие потребности, оценить цифровую зрелость процессов, определить точки роста и сформировать верхнеуровневую стратегию цифрового развития с ориентацией на задачи компании, а также планы дальнейшего возможного сотрудничества.

Хотите узнать больше? Переходите по ссылкам, прослушайте записи вебинаров!

РЕШЕНИЕ ПО ПЛАНИРОВАНИЮ ПРОИЗВОДСТВА ДЛЯ ПРЕДПРИЯТИЯ: ОБЗОР ПОДХОДА И РЕАЛИЗАЦИЯ В СИСТЕМЕ DELMIA ORTEMS

ПЛАНИРОВАНИЕ И ОПТИМИЗАЦИЯ ПРОИЗВОДСТВА АВТОКОМПОНЕНТОВ В APS-СИСТЕМЕ DELMIA ORTEMS
Подробнее..

Планирование и оптимизация процессов переналадки

23.12.2020 12:19:27 | Автор: admin
Рыночная конкуренция заставляет постоянно расширять продуктовую линейку для максимального удовлетворения растущих и меняющихся потребностей клиентов, что влечет за собой увеличение гибкости вашего производства. Как же сократить время переналадки, то есть период времени между выходом одного продукта и получением другого годного продукта? С точки зрения философии бережливого производства данное время потеряно, так как в этот период не создается никакой ценности.
Существуют методики и инструменты для сокращения продолжительности переналадки оборудования без потери качества производства. Оптимизация процессов переналадки одна из важнейших задач краткосрочного планирования. Об этом и пойдет речь в данной статье.
image

Что такое переналадка, и для чего ее планировать?


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

image

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

Переналадка может означать, например, смену, инструмента, используемого в работе, по причине его износа или перехода на изделия нового типа. Она может осуществляться при изменении типа продукции, изготавливаемой на том или ином ресурсном центре, в соответствии с заложенными в системе правилами. Для каждого типа продукции требуется своё оборудование и оснастка это занимает определенное время.

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

Например, при планировании 100 тысяч операций для 30-40 ресурсных центров на горизонте 6-8 месяцев суммарная продолжительность переналадок может достигать 20-25 рабочих дней. В решении подобных задач приходят на помощь системы класса APS (Advance Planning Scheduling). Одной из таких систем является DELMIA Ortems.

Каким образом и что можно учесть при планировании производственного расписания с применением APS-системы DELMIA Ortems?


Исходными данными для работы в системе планирования являются спецификация ресурсных центров, маршруты изделий, перечень заказов, рабочие календари и плановые простои, причем календари можно определять как для всего производства, так и для каждой отдельной единицы оборудования, что дает большую точность при создании расписания.
  • Первичные. Основные производственные фонды.
  • Вторичные. Это ресурсы, которые помогают выполнять операции, но обычно не являются ограничением для планирования. Например, пресс-форма, оснастка или реагент могут быть вторичным ресурсом. Но окончательное решение о том учитывать вторичные ресурсы как ограничения или нет, принимает плановик путем выбора опции в системе.
  • Производственный персонал. DELMIA Ortems позволяет учитывать персонал по квалификации (набором знаний и компетенций для выполнения операций), а также потребности в персонале (минимальное количество сотрудников, необходимое для выполнение операции). Потребность в персонале определяется как для каждой операции или группы операций, так и для каждой отдельной единицы или группы оборудования.


Пример диаграммы Ганта по оборудованию.


image
Потребность в персонале по квалификации.

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

Переналадка


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

Расчетное время переналадок также применяется для так называемой циклической или принудительной переналадки. Значение цикличных переналадок определяется в зависимости от различных параметров, например, продолжительности работы, произведенному количеству изделий, количеству операций на станке, паузам между операциями.

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

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

Причем необходимо учитывать и отображать в плане не только фактическое время переналадки, но и время опорожнения и наполнения. На картинке ниже, представлен пример того, как отображается опорожнение и наполнение оборудование типа бак/цистерна.
image
Пример учета в планировании времени опорожнения и наполнения резервуара.


image
Учет переналадок в плане. Одним цветом выделены операции с одинаковой оснасткой.

Производственные параметры


Как говорилось раннее, помимо изменения оснастки DELMIA Ortems позволяет учитывать изменения производственных параметров, таких как температура, цвет, толщина и прочих. Эти параметры могут быть как дискретными, так и не дискретными значениями.

Для чего они применяются? При создании плана DELMIA Ortems старается минимизировать переналадки за счет группирования операций с одинаковыми параметрами. Применение непрерывных параметров позволяет выстроить необходимый приоритет/порядок в рамках общей последовательности.

Пример расчета продолжительности переналадки
Есть две операции ОП1 и ОП2:
image
Каждая операция использует три параметра: цвет, температуру и толщину.
ОП 1 имеет параметры: КРАСНЙ, 10С, 2 мм
ОП 2 имеет параметры: СИНИЙ, 50С, 10 мм
ПН время переналадки
image

При изменении каждого параметра оборудование требует переналадки. Время переналадки может быть общим (т.е. одинаковым для любого значения параметра) или зависеть от значения самого параметра. В таком случае необходимо применять матрицу переналадок. В данном примере параметры ЦВЕТ и ТЕМПЕРАТУРА взаимодействуют при помощи матрицы. Соответственно, изменение значения любого из этих параметров влияет на продолжительность переналадки, в то время как значение параметра ТОЛЩИНА на нее не влияет.

Матрица переналадок для ЦВЕТА, в сотых часа (100=1 час):
image

Матрица переналадок для ТЕМЕРАТУР, в сотых часа (100=1 час):
image

Переналадка при изменении параметра ТОЛЩИНА постоянная и равна 5 сотых часа.
Расчет времени переналадки:
Первый случай: в режиме расчета используется максимум из всех имеющихся значений времени переналадки. В данном примере ПН это максимальное из трех значений времени переналадки, указанных ниже:
Переналадка (КРАСНЙ-СИНИЙ) из матрицы переналадки ЦВЕТА = 75 сотых часа
Переналадка (10С 50С) из матрицы переналадки ТЕМПЕРАТУРА =5 сотых часа
И постоянное время для переналадки по ТОЛЩИНЕ = 5 сотых часа.
Соответственно, ПН= 75 сотых часа.

Второй случай: в режиме расчета используется сумма всех значений времени переналадки.
Т.е. 75+5+5
Соответственно, ПН=85 сотых часа.

Весовой коэффициент


Весовой коэффициент это способ ограничить некоторые переналадки. В данном примере смена ЦВЕТА приводит к очень длительному времени переналадки, и поэтому ее следует избегать. Для этого увеличим вес параметра ЦВЕТ:
ЦВЕТ весовой коэффициент = 50
ТЕМПЕРАТУРА весовой коэффициент =5
ТОЛЩИНА весовой коэффициент =1
Посмотрим теперь, каким будет время переналадки с учетом разных типов расчета и весового коэффициента. При наличии весового коэффициента время переналадки будет следующим:
Переналадка (КРАСНЙ-СИНИЙ) из матрицы переналадки ЦВЕТА = 75 сотых часа* весовой коэффициент= 75*50= 3750 сотых часа.
Переналадка (10С 50С) из матрицы переналадки ТЕМПЕРАТУРА = 5 сотых часа* весовой коэффициент = 5*5=25 сотых часа.
И постоянное время для переналадки по ТОЛЩИНЕ = 5 сотых часа * весовой коэффициент=5*1=5 сотых часа.
Первый случай: время переналадки определяется как максимальное, соответственно ПН= 3750.
Второй случай: время переналадки является суммарным, соответственно, 3750+25+5 ПН= 3780 сотых часа.
Таким образом, весовой коэффициент искусственно увеличивает время переналадки. При этих значениях выбор последовательности операций, требующей множественных переналадок, противоречит оптимизации плана. Поэтому DELMIA Ortems пытается сгруппировать операции, когда это возможно.

О системе DELMIA Ortems


Delmia Ortems это решение компании Dassault Systmes в области оптимизации планирования и диспетчеризации производства. Данное решение успешно дополняет традиционные ERP, MES, LIMS, а также системы управления цепочками поставок (SCM). DELMIA Ortems может работать без привязки к ERP, так как все справочники есть в самом решении. DELMIA Ortems позволяет осуществлять многокритериальную оптимизация по множеству ограничений в одном цикле расчета
image
Решение DELMIA Ortems расширяет и дополняет возможности решений DELMIA в области планирования и диспетчеризации производственных операций. Таким образом пользователь получает возможность разрабатывать технологические процессы, управлять их реализацией на производстве, а также планировать и оптимизировать график производства, на базе единой референциальной модели данных.

Экономическая эффективность и преимущества использования DELMIA Ortems


Для бизнеса:
  • Сделать на имеющемся оборудовании больше продукции
  • Отгружать продукцию в срок
  • Не делать ненужного и не замораживать деньги в запасах

Для отдела продаж:
  • Информацию о статусе заказов клиентов (срок выпуска);
  • Информацию о планируемых отгрузках и объеме производства на разных горизонтах планирования (заказы + прогнозы);
  • Визуализацию процессов производства.

Для производства:
  • Быстрая реакция на срочные заказы, поломку линий, отсутствие сырья, решение о работе 3-ей смены и т.д.
  • Достоверные сменные задания (со штрих кодами).


Вот что заказчики говорят о результатах внедрения DELMIA Ortems:
  • снижение запасов полуфабрикатов на промежуточном складе до 40%;
  • сокращение времени ожидания заказа от попадания в план до отгрузки на 30%;
  • повышение пропускной способности и снижение производственных издержек;
  • соблюдение сроков выполнения заказов;
  • оптимизация загрузки оборудования;
  • Сбалансированные производственные потоки между цехами;
  • сокращение времени на планирование до 80%.


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

Планирование загруженности производственных мощностей
DELMIA Ortems Manufacturing Planner это модуль среднесрочного планирования. Данный модуль объединяет в себе все ограничения, связанные с ресурсами и продуктом. Программное обеспечение Manufacturing Planner оптимизирует процессы S & OP и MPS для производителей, малых и средних предприятий, а также крупных корпораций с длительным циклом или сложными производственными циклами, использующими большое количество производственного оборудования.

DELMIA Ortems Manufacturing Planner предлагает различные виды анализа загрузки мощностей, что позволяет сразу же выявить узкие места в производстве по всем основным и вторичным ресурсам.
Настраиваемый механизм балансировки загрузки используется для оптимального распределения загруженности на протяжении времени и различных первичных и вторичных альтернативных ресурсов (например, управление ограниченной поверхностью рабочего цеха). Решения могут приниматься в отношении корректировок мощности, капитальных затрат и балансировки загруженности как по внутренним, так и субподрядным ресурсам.
Широкий спектр функциональных возможностей, доступный планировщикам, позволяет моделировать сценарии что, если для определения оптимального решения в случае возникновения нештатных ситуаций, проблем с мощностями или изменений в потребительском спросе.
image
Production Scheduler использует движок с 70 базовыми критериями для оптимизации последовательности производственных операций и планирования производственных ресурсов. Простой пользовательский интерфейс позволяет лучше предвидеть проблемы производства и изменение спроса.

Планирование потребности материалов (Synchronized Resource Planner)
DELMIA Ortems Synchronized Resource Planner обеспечивает своевременную синхронизацию спроса и производства во времени для производственной спецификации различной вложенности. Данный модуль позволяет оптимизировать ТМЗ и производственные мощности малых, средних и крупных предприятий с учетом ограничений производственных потоков для технологической спецификации с большой вложенностью.
image
DELMIA Ortems Synchronized Resource Planner: синхронизация потоков


Использование спецификаций с различным уровнем вложенности позволяет DELMIA Ortems SRP синхронизировать заказы на поставку и рабочие задания на всех этапах производства от сырья до полуфабрикатов и готовой продукции. Система устанавливает ограничения, связанные с поставками материалов и доступными материалами на складе, накладывая эти ограничения на производственный график. Далее создается прослеживаемая связь между материалами и заказами, в которых материалы задействуются и эти данные используются ядром оптимизации и планирования модулей DELMIA Ortems Production Scheduler или DELMIA Ortems Manufacturing Planner.Непосредственно перед созданием потребности в материалах Synchronized Resource Planner обрабатывает спрос клиентов, используя функциональность взаимозачета между прогнозами продаж и заказами клиентов, чтобы определить требования к объёму выпуска продукции предприятия.

DELMIA Ortems Synchronized Resource Planner (SRP) может обрабатывать потребность в комплектующих (разница прогноза и количества реальных заказов). В технологической спецификации готового продукта теперь могут быть включены другие готовые изделия. Это означает, что режим SRP позволяет Вам планировать производство комплектов, то есть готовых продуктов, которые полностью или частично состоят из других готовых изделий, возможно, включая и другие наборы. Функция соответствия потребности SRP также определяет количество готовой продукции, требуемой другими готовыми продуктами, и учитывает их при расчете общей потребности к потребляемой готовой продукции, тем самым гарантируя, что они покрыты, как и все другие потребности.

Задача DELMIA Ortems Production Scheduler детальное планирование и интегрированное управление ограничениями, связанными с продуктами и процессами, для различных ресурсов, таких как механизмы, инструменты и операторы. Это решение предоставляет возможности для краткосрочной оптимизации производственных потоков на основе заказов или на основе запасов, позволяя усовершенствовать производственные процессы и быстро реагировать на непредвиденные обстоятельства.

Что дает DELMIA Ortems Production Scheduler?

  • Уменьшение времени цикла и незавершенного производства.
  • Повышение уровня обслуживания клиентов и надежности сроков поставки.
  • Предвидение проблем в производстве и изменений спроса.
  • Быстрое создание графиков работ.
  • Легкая интеграция с другими системам планирования ресурсов предприятия.
  • Повышение маневренности даже при неожиданных событиях в цеху.
  • Оптимизация и совершенствование плана.
  • Максимальное использование ресурсов.
  • Минимальное время настройки.
  • Повышение точности поставок.


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

Хотите узнать больше? Переходите по ссылкам, прослушайте записи вебинаров!

РЕШЕНИЕ ПО ПЛАНИРОВАНИЮ ПРОИЗВОДСТВА ДЛЯ ПРЕДПРИЯТИЯ: ОБЗОР ПОДХОДА И РЕАЛИЗАЦИЯ В СИСТЕМЕ DELMIA ORTEMS

ПЛАНИРОВАНИЕ И ОПТИМИЗАЦИЯ ПРОИЗВОДСТВА АВТОКОМПОНЕНТОВ В APS-СИСТЕМЕ DELMIA ORTEMS
Подробнее..

Как метрики бережливого производства можно применить в задачах технической поддержки

02.11.2020 22:09:30 | Автор: admin

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

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

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

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

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

Можно ли с этим что-то сделать? Конечно! Работающие и очень эффективные меры давно известны это Бережливое производство (Lean Manufacturing) и Теория ограничений (Theory of Constraints, TOC).

Давайте посмотрим как методы и метрики бережливого производства могли бы послужить на благо службы технической поддержки Вашей компании.


Небольшой экскурс в Lean и TOC

Давайте начнем с краткого введения в Теорию Ограничений и Бережливое производство в том небольшом объеме, который необходим для понимания концепции этой статьи.

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

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

Бесполезно расширять что-либо еще, кроме бутылочного горлышка это всё равно ни к чему не приведёт. Именно поэтому локальные оптимизации не работают. И именно поэтому нет смысла утилизировать мощности отделов на 100% - это только вызовет перепроизводство.

А вот увеличение производительности горлышка на X% приведет к увеличению прибыли всего предприятия на X%. А это миллионы, а может и миллиарды!

Это если кратко.

Единственная, но очень важная метрика теории ограничений

В Теории ограничений есть, по сути, единственная метрика, на основе которой принимаются все решения это Проход (или Проток, Throughput).

Tu=P TVC,

где Tu величина прохода на единицу продукции;
P цена единицы продукции;
TVC полностью переменные затраты

(https://tocpeople.com/2012/08/upravlenie-predpriyatiem-po-finansovym-pokazatelyam-tos/)

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

Как это можно использовать?

Давайте рассмотрим известный пример с двумя продуктами. Пусть человек-бутылочное горлышко принимает участие в производстве продуктов А и Б.

Продукт А стоит 300 руб, а продукт Б 400 руб.

При этом Проход (грубо - Прибыль) продукта А = 100 руб, а у продукта Б = 200 руб

Какие продукты и в каком количестве должен производить человек-бутылочное горлышко, чтобы максимизировать прибыль предприятия (а мы знаем, что именно он определяет всю прибыль предприятия)?

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

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

Время производства продукта А 5 мин, продукта Б 30 мин.

Продукт А: 100 руб / 5 мин = 20 руб / мин

Продукт Б: 200 руб / 30 мин = 6,6 руб / мин

Получается, что при изготовлении продукта А компания получает прибыль в 20 руб/мин, а при изготовлении продукта Б всего 6,6 руб/мин.

Выбор очевиден, не правда ли? Нужно производить как можно больше продукта А, а в оставшееся время продукт Б.

Переложение метрики Прохода для технической поддержки

Самое главное сомнение, которое у Вас скорее всего возникнет в тех поддержке нет прибыли. Совершенно верно.

Дело в том, что Проход может быть не только прибылью. Он может быть чем угодно, что будет являться аналогией прибыли и что будет давать ценность компании и клиенту.

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

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

Из Jira, например, можно извлечь следующие данные:

Приоритетзадачи

Категория задачи

Общее время исполнения(от регистрации до перевода в статус Resolved) с учетом всех дней и выходных. Время исполнения с точки зрения клиента от самого начала до самого конца.

Дополнительно можно вычислить Touch time - время ручной работы админа по каждой задаче. Другими словами время, затраченное администратором на задачу за вычетом выходных, нерабочего времени и нахождения задачи в статусе Need Info (запрос доп информации от клиента).

Если на человеке висело несколько параллельных задач, то Touch time вычисляется по каждой завершенной задаче отдельно, а затем берется 85% персентиль от всего полученного множества.

Персентиль не так чувствителен к выбросам как среднее, поэтому его часто используют в качестве гарантированного значения для какого-либо параметра, в нашем случае Touch time.

В Jira значение Touch time можно вычислить как время между сменами статусов.

Время работы человека-горлышка (или время, затраченное на производства продукта) = Touch time

Проход = количество выполненных задач конкретной категории и приоритета

К прохода = Прибыль / Время работы горлышка

или

К прохода = количество выполненных горлышком задач / Touch time

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

Вот реальный пример из службы тех поддержки:

Колонка template Категория задач. Строки упорядочены по убыванию коэффициента прохода.

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

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

Почитайте интересную статью про технологию Swarming в которой есть много подобных нестандартных выводов.

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

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

Поиск бутылочного горлышка техподдержки

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

Если просуммировать время создания ценности и соотнести его с общим временем цикла, то можно посчитать эффективность потока:

Эффективность потока = Суммарное время создания ценности / Общее время цикла * 100%

Часто эффективность потока в компаниях не превышает 5-10%.

Каким образом посчитать эффективность потока для задач тех поддержки?

Если Вы используете Jira, то можно считать время между сменой статусов и в качестве времени создания ценности брать время непосредственной работы админа, но это сложно.

Можно использовать метод проще и считать по количеству выполненных задач за период:

Эффективность потока = Кол-во выполненных задач / (Всего задач в работе) * 100%

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

Вот примеры с реальными данными:

Можно отфильтровать данные по наименее эффективным группам и получить эффективность входящих в них админов.

Что обозначает эффективность потока в тех поддержке?

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

Вот пример реальной ситуации по настоящему, не выдуманному админу:

Как видите, ситуация жесткая он делает всего 4-5 задач в день, а вешают на него аж по 10 штук.

Естественно, о какой эффективности тут может идти речь.

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

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

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

Т.е. метрики бережливого производства действительно могут помочь с налаживанием дел в технической поддержки.

Что делать со всеми этими метриками?

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

Т.е. нужно находить корневую причину проблемы (истинную причину, а не лежащую на поверхности) и устранять её. И так поступать с каждой проблемой.

Вот хороший пример как в Службе Service Desk использовали Lean (бережливый подход) и что из этого получилось.

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

Зуб даю, что первое, что Вы увидите в тех поддержке - это то, что админы (/сотрудники тех поддержки) делают по десятку задач одновременно (см. график выше). Вы наверняка на себе испытали как это работает:

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

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

А почему у админа много задач? Корневой причиной является распространенная ложная установка. Руководство считает, что ресурсы надо утилизировать на 100%, чтобы они не простаивали. Поэтому и загружает админа задачами. Но на самом деле это заблуждение, вызывающее огромные проблемы.

При однозадачности задачи выполняются в разы быстрее, чем при многозадачности:

Решить проблему можно. Теория ограничений для этого случая говорит:

Расширьте бутылочное горлышко

Подчините ему всё производство

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

Простая перестройка процесса позволит админу выполнять только одну задачу за раз. Это может увеличить его производительность в разы:

Вариантов решений множество.

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

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

А на этом всё.

NB. Все выводы в этой статье сделаны на основе наблюдений за реальным отделом технической поддержки большой компании.

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

Ваши комментарии он с удовольствием прочитает и ответит на них.

Подробнее..

Organization as a Function. Введение в бережливую разработку для инженеров

08.04.2021 16:21:10 | Автор: admin

Когда я учился в вузе, нашей группе дали домашнее задание рассчитать результаты социологического опроса. Каждому выдали excel-файл с исходными данными. В методических указаниях была детально описана последовательность шагов: в каких ячейках таблицы что писать, какие выражения для вычислений использовать и т.д.

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

Наша программа правильно выполняла свою задачу: на экране в бешеном темпе курсор прыгал по ячейкам, писал в них формулы, выделял диапазоны данных. Выполнение программы занимало 40 минут, а загруженность процессора была 100%. Мы хотели быстрее. Может быть, надо запустить программу на компьютере помощнее? Или написать распределенную программу и собрать компьютеры в кластер? Любой здравомыслящий программист поймет, что это плохие решения и ускорения можно добиться куда более простыми методами. Мы исследовали причины низкой производительности и обнаружили, что вся проблема была в том, что программа механически повторяла методические указания. Гораздо эффективнее было не повторять поведение человека в Excel, а перенести все данные из таблицы в память, выполнить необходимые расчеты и записать результаты обратно. Новая версия программы работала 50 мс, так мы оптимизировали программу приблизительно в 50000 раз.

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

В производстве подобные приемы были созданы в Toyota и назывались Toyota Production System. Эти приемы были обобщены до бизнеса в целом в виде философии кайдзен. В области разработки программного обеспечения их называют приемами бережливой разработки программного обеспечения.

Согласитесь, как здорово улучшить работу организации в 50 000 раз! Это, конечно, сказки, но и 10% может быть весьма неплохо.

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

Моделируем организацию

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

Прибыль = доходы - расходы

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

С доходами чуть сложнее. Путь их поступления в организацию зависит от бизнес-модели: некоторые организации продают ПО, а другие предоставляют сервисы. В этой статье мы рассмотрим предоставление сервиса, как это происходит в Joom. Мы получаем следующие составляющие дохода, которые зависят от инженеров.

  • Сервис должен приносить выгоду пользователю. То есть его функциональность должна быть полезной. Joom, например, продает и доставляет товары.

  • Сервис должен надежно и правильно работать. Если он не работает или работает не так, то грош цена всей его функциональности.

Программисты вкладываются в обе составляющие наряду с командами инфраструктуры и DevOps.

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

Продуктовые команды разработки создают функциональность, которая непосредственно приносит пользу. Инфраструктурные команды делают инструменты, которые сокращают расходы команд разработчиков. Команды эксплуатации или DevOps поддерживают все в работоспособном состоянии.

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

Вернемся к аналогии про оптимизацию программного обеспечения.

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

Функция при своей работе тратит ресурсы. Когда мы говорим о настоящей функции в программе, речь идёт обычно о CPU, памяти и времени выполнения. Когда мы говорим об организации о деньгах и времени производства.

Приступим к оптимизации!

Давайте заглянем в код нашей функции-организации. Мы увидим там цепи создания ценностей и методологию разработки, например:

def joom(market_info, money_from_user):    requirements = product_manager(market_info, money_from_user)    infra = infra_team()    while True:        new_release = product_team(requirements, infra)        if quality_control(new_release, requirements, infra):            service = deploy_to_production(new_features)            return service

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

Удаляем мертвый код

Это самый низко висящий фрукт. Если какие-то вычисления не влияют на результат функции, то этот код надо просто удалить.

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

Взгляните на этот пример

def product_team(requirements, infra):    long_useless_meeting() # what is that for? Let's remove it.    implementation_plan = plan(requirements, infra)    log.debug(implementation_plan) # if logging is fast enough, we can leave it here    return code(implementation_plan, requirements, infra)

Если некоторая деятельность в организации не приводит к профиту пользователя прекратите это делать.

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

  • Если что-то нельзя не делать, то тратьте на это минимум ресурсов.

Реализуем только полезную функциональность

Посмотрим на организацию как функцию еще раз.

def joom(market_info, money_from_user):    # something    return service

Цель этой функции возвращать такой сервис, который приносит доход. Если это не так, то результат ее работы можно расценивать как ошибку. Если бы мы написали тесты для этой функции то в них было бы примерно следующее:

def test():    service = joom(some_marketing_info, previous_money_from_user)    assert makes_money(service)

Представьте себе, что функция joom оказалась с багами и периодически она по непонятным причинам выдает некорректные значения. Если мы не можем исправить ошибку, то придется делать retry вот так:

def profitable_joom(market_info, money_from_user):    while True:        service = joom(market_info, money_from_user)        if makes_money(service)            return service

Теперь тест будет проходить, но цикл while будет тратить много ресурсов при условии, что функция joom часто возвращает не то, что нужно.

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

def joom(market_info, money_from_user):    requirements = product_manager(market_info, money_from_user)    assert makes_money(requirements) # fail-fast if cannot make money    infra = infra_team()    while True:        new_release = product_team(requirements, infra)        assert makes_money(new_release) # fail-fast if cannot make money        if quality_control(new_release, requirements, infra):            service = deploy_to_production(new_features)            assert makes_money(service) # fail-fast if cannot make money            return service

Мы добавили assert для промежуточных результатов. Теперь в случае ошибки мы можем сделать retry раньше и избежать потерь ресурсов.

Вопрос для размышления читателю. А что если сама функция makes_money подвержена ошибкам?

Можно потратить человеко-месяц на функциональность, которая не приносит пользы. По сути это то же самое, что и ошибка на примере кода выше.

Вот возможные причины, почему организация сделала то, что не приносит профит.

  • Сама идея не принесет профит, даже если будет правильно реализована.

  • Реализовали не то, что хотели потери в коммуникации.

  • Реализовали то, что хотели, но оно не работает из-за потерь качества.

Конечно, лучшее решение избегать ошибок. Потери в коммуникации и качестве еще как-то можно устранить, но потери на этапе идеи вряд ли.

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

Любой метод выбора правильных идей требует ресурсов и может давать ложные результаты.

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

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

Для продуктивной разработки нужен надежный дешевый метод проверки идей. Прогнозы и экспертные оценки на практике работают плохо. Лучше всего проверять идеи прямо на реальных пользователях, но тратя на это мало ресурсов. Такой подход называется MVP (minimum viable product). Для проверки идеи создается дешевая реализация, но которая все-таки реально работает. По реакции пользователей на MVP принимается решение, стоит ли делать хорошую, но дорогую реализацию. Если идея не проходит проверку, то код ее реализации доводится до абсолютного совершенства его удаляют.

Порой MVP называют не отдельную функциональность, а продукт целиком, и на его реализацию выделяют месяцы работы. Но можно делать MVP функциональности. Это занимает буквально часы.

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

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

def profitable_joom(market_info, money_from_user):    while True:        mvp_service = joom_prototyping(market_info, money_from_user)        if makes_money(mvp_service):            service = joom(market_info, money_from_user)            if makes_money(service)                return service

Это классический метод оптимизации. Например, он широкого распространен в форме double check locking.

Минимизируем бюрократию

В области программирования существует класс алгоритмов, когда сначала составляется план действий, а потом этот план выполняется.

Например, это типично для баз данных и систем анализа данных. Сначала строится план выполнения запроса. Если планирование запроса тратит меньше ресурсов, чем прирост производительности в выполнении запроса это отличная оптимизация.

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

def product_team(requirements, infra):    implementation_plan = plan(requirements, infra)    return code(implementation_plan, infra)

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

SCRUM, KanBan, planning poker, недельные отчеты, квартальное планирование, peer review и т.п. все это инструменты повышения продуктивности. Я собирательно назвал их бюрократией, но не вкладываю в это понятие негативную оценку.

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

  • устраняет потери ресурсов из-за недостатка коммуникации,

  • устраняет потери из-за вытеснения одних задач другими,

  • мотивирует сотрудников к профессиональному росту,

  • улучшает фокусировку на том, что принесет максимальную пользу,

  • создает ритм работы с регулярными промежуточными результатами.

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

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

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

Я работаю в команде Joom Ads, и мы отвечаем за рекламу в маркетплейсе. Когда мы начинали работать над проектом, мы намеренно не делали никакого процесса (AdHoc), но затем, по мере роста команды и сложности разработки, мы стали обращать внимание на потери и адаптировали свои процессы. Сейчас наш процесс эволюционировал в KanBan с continuous delivery, практически все рутинные процессы автоматизированы.

Вопрос для размышления читателю. Чтение этих строк приносит пользу?

Используем эффективные алгоритмы

При написании кода важно использовать эффективные алгоритмы. Лучше использовать алгоритм со сложностью O(NLogN) вместо O(N2). Но если вдруг N небольшое, то никакой практической разницы между этими двумя алгоритмами может не быть, можно воспользоваться алгоритмом со сложностью O(N2), к тому же такие алгоритмы, как правило, проще. Проблемы с таким решением начнутся, если N начнет расти.

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

Например:

def product_team(requirements, infra):    for implemented in already_implemented:        if implemented == requirements:            return None    implementation_plan = plan(requirements, infra)    release = code(implementation_plan, requirements, infra)    already_implemented.append(requirements)    return release

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

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

Управляем техническим долгом

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

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

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

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

Инвестируем в рефакторинг

Исправление технического долга это техническая инвестиция, так как она не окупается быстро.

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

Инвестиции со временем должны окупаться. Команда должна анализировать, какие инвестиции были удачные, а какие нет, и не повторять ошибок. Очень нехорошо с точки зрения продуктивности вложить недели труда в устранение энтропии, а потом даже не проследить, стало лучше или хуже. Это примерно как сделать спорную оптимизацию в коде и не провести тестирование производительности.

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

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

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

Инвестируем в библиотеки и инструменты

А как оценить инвестицию не в рефакторинг, а в некоторый инструмент или библиотеку? Стоит ли взять какой-то open source инструмент или написать своё будет продуктивнее? Ведь со сложным open source придется разбираться, это потребует ресурсов, а написать свой инструмент будет даже быстрее.

Главный вопрос при создании велосипедов а что будет дальше?

Пока на написание и поддержку своего инструмента уходит меньше времени, чем на изучение open source, профит точно есть.

Но вот если планируется развивать свое решение и сделать его конкурентом существующему open source, то вам надо будет окупить следующие затраты.

  • Создание и отладку инструмента. Open source уже прошел этот путь.

  • Поддержку инструмента своими силами. У open source есть community для этого.

  • Написание качественной документации. Про open source могут быть написаны книги, как минимум множество ответов в stackoverflow и т.п.

  • Изучение своего инструмента коллегами. Вам не пришлось изучать свой инструмент, так как вы его создатель, но коллегам придется изучать ваш инструмент по той документации и с теми ресурсами, которые вы для них подготовите.

Представьте себе, насколько прорывным должно быть ваше решение, чтобы все это окупить. Не продуктивнее ли будет вместо написания своего инструмента разобраться в коде open source и присоединиться к его создателям?

Тем не менее создание собственного решения может быть продуктивным.

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

  • Бывают низкокачественные open source решения. Они постоянно требуют ресурсов на поддержку, и починить их уже почти невозможно вашими силами из-за огромного технического долга в самом решении.

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

В ходе разработки JoomAds нам не довелось изобретать велосипеды, мы брали существующие инструменты, порой внося изменения в их код и исправляя баги. К сожалению, некоторые решения пришлось менять. Так, мы не смогли добиться достаточной надежности от Apache Ignite и заменили его на сочетание Apache Cassandra, Apache Kafka и Apache Flink. Как ни странно, решение с большим количеством компонентов в итоге оказалось и проще, и надежнее. Подробнее о нем можно прочитать тут.

Заключение

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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru