15.09.2019

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


Другие названия метода: "Пока-ёкэ", "Предотвращение невидимой ошибки".

Цель метода

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

Суть метода

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

План действий

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

2. Выявить проблемы, требующие решения, и причины их существования.

3. Разработать меры по совершенствованию производства и предотвращению возможности возникновения о шибок, руководствуясь правилами применения метода пока-ёкэ.

4. Устранить потенциальные ошибки, используя в процессе производства усовершенствованные приспособления, приборы и оборудование.

Особенности метода

Современная версия защиты от ошибок, известная под названием пока-ёкэ (poka-yoke1), появилась в Японии, чтобы повышать качество продукции, предотвращая ошибки на действующем производстве. Ранее японскими специалистами применялся термин бака-ёкэ (baka-yoke). Дословный перевод термина "бака-ёкэ" - "защита от глупости", иными словами, - это защитное устройство, благодаря которому дефекты просто не образуются. Следует отметить, что основные положения этой концепции широко применялись компанией Ford еще в 1908 г.

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

Пример использования простого приема защиты от ошибок

В цехе, несмотря на всю статистику, маркировку и контроль, постоянно повторяются две одинаковые ошибки: деталь А при монтаже блока часто оказывается в окошке 2, и наоборот, деталь В оказывается в окошке 1.

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

Правила применения приемов защиты от ошибок

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

2. Ввести сразу все необходимые виды контроля и меры предотвращения повторного появления проблемы.

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

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

Достоинства метода

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

Недостатки метода

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

Ожидаемый результат

Высокая потребительная стоимость продукции.

Метод точно вовремя

Точно-в-срок (анг. Just-in-Тime, точно вовремя) - один из базовых столпов Производственной Системы Toyota, метод организации производства. Заключается в том, что во время производственного процесса необходимые для сборки детали оказываются на производственной линии точно в тот момент, когда это нужно, и в строго необходимом количестве. В результате компания, последовательно внедряющая подобный принцип, устраняет простои, минимизирует складские запасы, или может добиться сведения их к нулю. Основные характеристики – иметь только необходимые запасы, когда это необходимо; улучшать качество до состояния «ноль дефектов»; уменьшать длительность цикла путем снижения времени оснащения, размер очереди и величину производственной партии; постепенно модифицировать сами операции; и выполнять эти виды деятельности с минимальными издержками.

Метод «точно-в-срок» изобретен в 1954г. в корпорации Тойота. Он возник на основе экономических ограничений, которые господствовали тогда в Японии. Так как у Японии было немного естественных ресурсов и очень высокие цены на недвижимость, нужно было японским фирмам нельзя было допускать расточительство, к примеру, склады для больших запасов возможно излишних товаров.

Области применения JIT

· JIT в производственной области - охватывает управляемый с помощью JIT производственный процесс;

· JIT в области поставок;

· JIT в области сбыта - обеспечивает снабжению множества потребителей, которые выставляют свои запросы в онлайн-информационные системы.

Японский менеджмент достигает принципа «точно вовремя»систематическим предотвращением трех нежелательных компонентов:

· MURI - излишки

· MUDA - потери

· MURA – дисбаланс

Можно определить преимущества данного метода:

· Сокращение затрат на содержание складских запасов (складских работников, складского оборудования, аренда складских помещений и др.).

· Сокращение времени проведения заказа (из-за уменьшения размера партии, времени переналадки, времени простоев).

· Лучшее обеспечение материалами , деталями и полуфабрикатами из-заразмещения поставщиков ближе к производителям (кроме того, больше рабочих мест, развитие регионов).

· Долгосрочное планирование для поставщиков и лучший сбыт товаров.

· Рационализация производства через специализацию поставщиков на заказанных товарах и др.

Возможные проблемы применения:

· Высокие затраты на транспорт и обустройство транспортного пути (высокая нагрузка на пути, возможность пробок, шум из-за транспорта).

· Высокая зависимость от одного поставщика (при несоблюдении сроков поставок возможны производственные потери).

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

· Требуется постоянный информационный обмен (обязанность подтверждения финансового состояния поставщика и производителя).

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

· Необходимость для поставщиков перемещать производства и склады ближе к потребителю.

· Большие потери у поставщиков от специализации в кризисных ситуациях.

  • Перевод

Всем привет! Я Алексей Грезов, разработчик Server Team Badoo. Мы в Badoo всегда стараемся сделать так, чтобы наш код было легко поддерживать, развивать и переиспользовать, ведь от этих параметров зависит, насколько быстро и качественно мы сможем реализовать какую-либо фичу. Одним из способов достижения этой цели является написание такого кода, который просто не позволит совершить ошибку. Максимально строгий интерфейс не даст ошибиться с порядком его вызова. Минимальное количество внутренних состояний гарантирует ожидаемость результатов. На днях я увидел статью, в которой как раз описывается, как применение этих методов упрощает жизнь разработчикам. Итак, предлагаю вашему вниманию перевод статьи про принцип "poka-yoke".


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


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


Итак, как мы можем предотвратить это? С помощью принципа «poka-yoke».

Что такое poka-yoke?

Poka-yoke – японский термин, который переводится на английский примерно как «mistake-proofing» (защита от ошибки), а в русском варианте более известен, как «защита от дурака» . Это понятие возникло в бережливом производстве , где оно относится к любому механизму, который помогает оператору оборудования избежать ошибок.


Помимо производства, poka-yoke часто используется в бытовой электронике. Возьмём, к примеру, SIM-карту, которая благодаря своей асимметричной форме может быть вставлена в адаптер только правильной стороной.



Противоположным примером (без использования принципа poka-yoke) является порт PS/2, имеющий одинаковую форму разъёма и для клавиатуры, и для мыши. Их можно отличить только по цвету и поэтому легко перепутать.



Ещё концепция poka-yoke может использоваться в программировании. Идея в том, чтобы сделать публичные интерфейсы нашего кода как можно более простыми и понятными и генерировать ошибки, как только код будет использоваться неправильно. Это может показаться очевидным, но на самом деле мы часто сталкиваемся с кодом, в котором этого нет.


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


Прежде чем обсуждать конкретные меры, позволяющие сделать код более защищённым от ошибок, важно знать, что механизмы poka-yoke можно разделить на две категории:

  • предотвращение ошибок
  • обнаружение ошибок.

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


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


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

Примеры предотвращения ошибок

Объявление типов

Ранее известное как Type Hinting в PHP 5, объявление типов – это простой способ защиты от ошибок при вызове функций и методов в PHP 7. Назначив аргументам функции определённые типы, становится сложнее нарушать порядок аргументов при вызове этой функции.


Например, давайте рассмотрим уведомление, которое мы можем отправить пользователю:


userId = $userId; $this->subject = $subject; $this->message = $message; } public function getUserId() { return $this->userId; } public function getSubject() { return $this->subject; } public function getMessage() { return $this->message; } }

Без объявления типов можно случайно передать переменные неверного типа, что может нарушить работу приложения. Например, мы можем предположить, что $userId должен быть string , в то время как на самом деле он может быть int .


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


В этом конкретном случае можно просто добавить объявление типов – PHP остановится и немедленно предупредит нас фатальной ошибкой, как только мы попытаемся передать параметр не того типа:


userId = $userId; $this->subject = $subject; $this->message = $message; } public function getUserId() : int { return $this->userId; } public function getSubject() : string { return $this->subject; } public function getMessage() : string { return $this->message; } }

Обратите внимание, что по умолчанию PHP попытается привести неверные аргументы к их ожидаемым типам. Чтобы этого не произошло и сгенерировалась фатальная ошибка, важно разрешить строгую типизацию (strict_types). Из-за этого объявление скалярных типов не является идеальной формой poka-yoke, но служит неплохой отправной точкой для уменьшения количества ошибок. Даже при отключённой строгой типизации объявление типов всё равно может служить подсказкой, какой тип ожидается для аргумента.


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


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

Объекты-значения

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


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


Чтобы в этом случае избежать ошибок, мы могли бы обернуть наши аргументы в объекты-значения (value objects):


class UserId { private $userId; public function __construct(int $userId) { $this->userId = $userId; } public function getValue() : int { return $this->userId; } } class Subject { private $subject; public function __construct(string $subject) { $this->subject = $subject; } public function getValue() : string { return $this->subject; } } class Message { private $message; public function __construct(string $message) { $this->message = $message; } public function getMessage() : string { return $this->message; } } class Notification { /* ... */ public function __construct(UserId $userId, Subject $subject, Message $message) { $this->userId = $userId; $this->subject = $subject; $this->message = $message; } public function getUserId() : UserId { /* ... */ } public function getSubject() : Subject { /* ... */ } public function getMessage() : Message { /* ... */ } }

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


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

Валидация

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


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


Чтобы предотвратить подобные ошибки, мы могли бы добавить некоторую валидацию в конструктор UserId:


class UserId { private $userId; public function __construct($userId) { if (!is_int($userId) || $userId < 0) { throw new \InvalidArgumentException("UserId should be a positive integer."); } $this->userId = $userId; } public function getValue() : int { return $this->userId; } }

Таким образом, мы всегда можем быть уверены, что при работе с объектом UserId он имеет правильное состояние. Это избавит нас от необходимости постоянно проверять данные на разных уровнях приложения.


Обратите внимание, что здесь мы могли бы добавить объявление скалярного типа вместо использования is_int , но это заставит нас включать строгую типизацию везде, где используется UserId . Если это не сделать, то PHP будет пытаться приводить другие типы к int всякий раз, когда они передаются в качестве UserId . Это может стать проблемой, так как мы могли бы, например, передать float , который может оказаться неправильной переменной, поскольку идентификаторы пользователя обычно не являются float . В других случаях, когда мы могли бы, например, работать с объектом Price , отключение строгой типизации может привести к ошибкам округления, поскольку PHP автоматически преобразует float-переменные в int .

Неизменяемость

По умолчанию объекты в PHP передаются по ссылке. Это означает, что, когда мы вносим изменения в объект, он мгновенно изменяется во всём приложении.


Хотя у этого подхода есть свои преимущества, он имеет и некоторые недостатки. Рассмотрим пример уведомления, отправляемого пользователю посредством SMS и электронной почты:


interface NotificationSenderInterface { public function send(Notification $notification); } class SMSNotificationSender implements NotificationSenderInterface { public function send(Notification $notification) { $this->cutNotificationLength($notification); // Send an SMS... } /** * Makes sure the notification does not exceed the length of an SMS. */ private function cutNotificationLength(Notification $notification) { $message = $notification->getMessage(); $messageString = substr($message->getValue(), 160); $notification->setMessage(new Message($messageString)); } } class EmailNotificationSender implements NotificationSenderInterface { public function send(Notification $notification) { // Send an e-mail ... } } $smsNotificationSender = new SMSNotificationSender(); $emailNotificationSender = new EmailNotificationSender(); $notification = new Notification(new UserId(17466), new Subject("Demo notification"), new Message("Very long message ... over 160 characters.")); $smsNotificationSender->send($notification); $emailNotificationSender->send($notification);

Поскольку объект Notification передаётся по ссылке, получился непреднамеренный побочный эффект. При сокращении длины сообщения в SMSNotificationSender связанный объект Notification был обновлен во всём приложении, так что сообщение тоже было обрезанным, когда позже отправлялось в EmailNotificationSender .


Чтобы исправить это, сделаем объект Notification неизменяемым. Вместо того чтобы предоставлять set-методы для внесения в него изменений, добавим with-методы, которые делают копию исходного Notification перед внесением этих изменений:


class Notification { public function __construct(...) { /* ... */ } public function getUserId() : UserId { /* ... */ } public function withUserId(UserId $userId) : Notification { $c = clone $this; $c->userId = clone $userId; return $c; } public function getSubject() : Subject { /* ... */ } public function withSubject(Subject $subject) : Notification { $c = clone $this; $c->subject = clone $subject; return $c; } public function getMessage() : Message { /* ... */ } public function withMessage(Message $message) : Notification { $c = clone $this; $c->message = clone $message; return $c; } }

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


Однако обратите внимание, что в PHP очень сложно (если не невозможно) сделать объект по-настоящему неизменяемым. Но для того чтобы сделать наш код более защищённым от ошибок, будет достаточно добавить «неизменяемые» with-методы вместо set-методов, так как пользователям класса больше не нужно будет помнить о необходимости клонировать объект перед внесением изменений.

Возвращение null-объектов

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


Чтобы избавиться от необходимости проверки возвращаемых значений, мы могли бы возвращать вместо этого null-объекты. Например, у нас может быть ShoppingCart со скидкой или без:


interface Discount { public function applyTo(int $total); } interface ShoppingCart { public function calculateTotal() : int; public function getDiscount() : ?Discount; }

При вычислении конечной стоимости ShoppingCart перед вызовом метода applyTo нам теперь всегда нужно проверять, что вернула функция getDiscount(): null или скидку:


$total = $shoppingCart->calculateTotal(); if ($shoppingCart->getDiscount()) { $total = $shoppingCart->getDiscount()->applyTo($total); }

Если не выполнить эту проверку, то мы получим предупреждение PHP и/ или другие побочные эффекты, когда getDiscount() вернёт null .


С другой стороны, этих проверок можно избежать, если мы вернём null-объект, когда скидка не предоставляется:


class ShoppingCart { public function getDiscount() : Discount { return !is_null($this->discount) ? $this->discount: new NoDiscount(); } } class NoDiscount implements Discount { public function applyTo(int $total) { return $total; } }

Теперь, когда мы вызываем getDiscount() , мы всегда получаем объект Discount , даже если скидка отсутствует. Таким образом, мы можем применить скидку к итоговой сумме, даже если её нет, и нам больше не нужна инструкция if:


$total = $shoppingCart->calculateTotal(); $totalWithDiscountApplied = $shoppingCart->getDiscount()->applyTo($total);

Опциональные зависимости

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


Возьмём, к примеру, следующий класс:


class SomeService implements LoggerAwareInterface { public function setLogger(LoggerInterface $logger) { /* ... */ } public function doSomething() { if ($this->logger) { $this->logger->debug("..."); } // do something if ($this->logger) { $this->logger->warning("..."); } // etc... } }

Есть две проблемы:

  1. Нам постоянно нужно проверять наличие логгера в нашем методе doSomething() .
  2. При настройке класса SomeService в нашем сервис-контейнере кто-то может забыть сконфигурировать логгер, или он может вообще не знать, что у класса есть возможность это сделать.

Мы можем упростить код, сделав LoggerInterface обязательной зависимостью:


class SomeService { public function __construct(LoggerInterface $logger) { /* ... */ } public function doSomething() { $this->logger->debug("..."); // do something $this->logger->warning("..."); // etc... } }

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


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


Если бы мы захотели использовать SomeService без логгера, то могли бы применить ту же логику, что и с возвращением null-объекта:


$service = new SomeService(new NullLogger());

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

Public-методы

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


Свести количество public-методов к минимуму поможет аналогия с транзакциями. Рассмотрим, к примеру, перевод денег между двумя банковскими счетами:


$account1->withdraw(100); $account2->deposit(100);

Хотя база данных с помощью транзакции может обеспечить отмену снятия денег, если пополнение не может быть сделано (или наоборот), она не может помешать нам забыть вызвать либо $account1->withdraw() , либо $account2->deposit() , что приведёт к некорректной операции.


К счастью, мы легко можем исправить это, заменив два отдельных метода одним транзакционным:


$account1->transfer(100, $account2);

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

Примеры обнаружения ошибок

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

Unit-тесты

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


Поскольку кто-то может забывать проводить unit-тестирование, рекомендуется автоматически запускать тесты при внесении изменений с использованием таких сервисов, как Travis CI и GitLab CI . Благодаря им разработчики получают уведомления, когда что-то ломается, что также помогает убедиться, что сделанные изменения работают так, как задумывалось.


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

Отчёты о покрытии кода тестами и мутационное тестирование

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


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


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

Статические анализаторы кода

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


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

Логирование

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


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


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

Не подавлять ошибки

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


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


Помимо error_reporting , важно всегда включать strict_types , чтобы PHP не пытался автоматически приводить аргументы функций к их ожидаемому типу, поскольку это может приводить к трудно обнаруживаемым ошибкам (например, ошибкам округления при приведении float к int).

Использование вне PHP

Поскольку poka-yoke скорее концепция, чем конкретная методика, её также можно применять в сферах, не связанных с PHP.

Инфраструктура

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


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

REST API

При создании REST API можно внедрить poka-yoke, чтобы упростить использование API. Например, мы можем убедиться, что возвращаем ошибку всякий раз, когда неизвестный параметр передаётся в URL или в теле запроса. Это может показаться странным, поскольку мы, очевидно, хотим избежать «поломки» наших API-клиентов, но, как правило, лучше как можно скорее предупреждать разработчиков, использующих наш API, о некорректном использовании, чтобы ошибки были исправлены на ранней стадии процесса разработки.


Например, у нас в API может быть параметр color , но кто-то, кто использует наш API, может случайно использовать параметр colour . Без каких-либо предупреждений эта ошибка может запросто попасть в продакшн, пока её не заметят конечные пользователи.


Чтобы узнать, как создавать API, которые не доставят вам хлопот, прочтите книгу Building APIs You Won’t Hate .

Конфигурация приложения

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


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

Предотвращение ошибок пользователя

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

Заключение

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


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


Чтобы ещё больше уменьшить количество ошибок, мы должны стремиться к тому, чтобы public-интерфейсы нашего кода были максимально простыми и понятными.

Теги: Добавить метки

Сколько стоит написать твою работу?

Выберите тип работы Дипломная работа (бакалавр/специалист) Часть дипломной работы Магистерский диплом Курсовая с практикой Курсовая теория Реферат Эссе Контрольная работа Задачи Аттестационная работа (ВАР/ВКР) Бизнес-план Вопросы к экзамену Диплом МВА Дипломная работа (колледж/техникум) Другое Кейсы Лабораторная работа, РГР Он-лайн помощь Отчет о практике Поиск информации Презентация в PowerPoint Реферат для аспирантуры Сопроводительные материалы к диплому Статья Тест Чертежи далее »

Спасибо, вам отправлено письмо. Проверьте почту .

Хотите промокод на скидку 15% ?

Получить смс
с промокодом

Успешно!

?Сообщите промокод во время разговора с менеджером.
Промокод можно применить один раз при первом заказе.
Тип работы промокода - "дипломная работа ".

Предотвращение ошибок или "покэ-ека"


1. Биография Сигео Синго

2. История появления системы «покэ-ека»

3. Понятие метода «пока-ека»

4. Применение пока-ека в организациях

Список использованной литературы

1. Биография Сигео Синго


Синго Сигео родился в 1909 г. в городе Сага (Saga) в Японии. Получив специальность инженера-механика в Яманасском техническом колледже, он поступил на работу на Тайпейскую железнодорожную фабрику (Taipei Railway Factory) на Тайване. Именно там начал применять научный менеджмент.

Впоследствии, в 1945 г., он становится профессиональным консультантом по менеджменту в Японской ассоциации менеджмента (Japan Management Association). Позднее он руководил департаментом образования, компьютерным департаментом и отделением этой ассоциации в Фукиоко. Будучи главой департамента образования, Синго в 1951 г. впервые услышал о статистическом контроле качества и применил его. К 1954 г. обследовал 300 компаний. В 1955 г. он принял на себя обязанности по подготовке персонала в области организации и совершенствования промышленного производства в компании Тойота Моторс, причем был ответственным за подготовку служащих как самой компании, так и 100 компаний – поставщиков комплектующих.

В период с 1956 по 1958 г. Сигео Синго был ответственным за сокращение сроков полной сборки супертанкеров (водоизмещением 65 тыс. т) компании Мицубиси Хэви Индастриз (Mitsubishi Heavy Industries) в Нагасаки. Время сборки было сокращено с четырех до двух месяцев, и тем самым установлен мировой рекорд в кораблестроении. Система была распространена на все верфи Японии.

В 1959 г. Синго оставил Японскую ассоциацию менеджмента и основал Институт совершенствования менеджмента, который возглавил в качестве президента. В 1962 г. он начал программу по переподготовке кадров в области организации и совершенствования производства на Мацусита Электрик (Matsushita Electric Industrial Company). Как и раньше, переподготовка была крупномасштабной и охватывала около 7 тыс. сотрудников.

Именно в период с 1961 по 1964 г. Сигео Синго выдвинул идею «Пока-Йеке» - «защищенности от ошибок» (Poka-Yoke, mistake - proofing), или концепцию «нулевого дефекта» («Defects=0»). Впоследствии этот подход был успешно применен на различных заводах, и был установлен рекорд продолжительности работы без дефектов, равный двум годам.

В 1968 г. на металлургическом заводе в г. Сага (Saga Ironworks) Синго создал систему пре-автоматизации (Рге-Automation system), которая позже была распространена по всей Японии. В 1970 г. за выдающиеся заслуги в совершенствовании производства он был удостоен «Награды Желтого Банта». В том же году на Тойоте он создал систему SMED (Single Minute Exchange of Die - одномоментная замена штампов), которая является частью системы «точно вовремя» (Just in Time system).

Европу Сигео Синго посетил в 1973 г. по приглашению Литейных ассоциаций Западной Германии и Швейцарии. Он провел практические занятия на предприятиях Daimler Benz и Thurner в Западной Германии и на предприятиях H-Weidmann Ltd., Bucher-Guyer AG и Gebr. Buhler Ltd. в Швейцарии. В 1974 г. он посетил в США компанию Livernos Automation, в 1975-1979 гг. провел обучение системе SMED и «производству без запасов» на предприятии American Company Federal Mogul. В 1981 г. Синго впервые проконсультировал зарубежную фирму (это была французская фирма Citroen), а затем стал регулярно консультировать и читать лекции в Европе, Северной Америке и Австралии.

Перечислим другие компании, которые пользовались его советами: многие подразделения Daihatsu, Yamaha, Mazda, Sharp, Fuji, Nippon, Hitachi, Sony и Olympus в Японии и Peugeot во Франции. Использование его методов американской компанией Omark Industries привело к такому росту производства, снижению дефектов и уменьшению запасов, что эта компания установила для своих разбросанных по всему свету 17 предприятий специальную награду имени Синго, присуждаемую ежегодно за лучшие показатели по совершенствованию работы.


2. История появления системы «покэ-ека»


В 1961 году, анализируя производственную структуру предприятий «Yamaha Electric», Синго сформулировал метод бака-ёкэ (защита от дурака). Он пришел к выводу, что общепринятая система статистического контроля не предупреждает брака. Конечно, с ее помощью можно было предсказать степень вероятности появления очередного дефекта, однако это было бы лишь констатацией фактов. Синго решил внедрить элементы управления в сам процесс. Ведь брак появляется в результате ошибок людей. Ошибки, конечно же, неизбежны, но их можно предотвратить, создав станки и инструменты с обратной связью. Попытка неправильно вставить деталь мгновенно приводила к остановке работы. Тревожный сигнал поступал и в случае, когда работник забывал проделать какую-то операцию. После возникновения ошибки следовало ее выявление, идентификация и полное предотвращение возможности повторного возникновения. Таким образом, Сигэо Синго отделил причину от следствия - ошибку от дефекта, гарантировав 100% качество продукции. Ведь проверка качества велась отныне не методом проб образцов на столе ОТК, а непосредственно у станка на всех без исключения изделиях. Результаты не замедлили сказаться. Например, в 1977 году производственные цеха компании «Matsushita Elecric», где была внедрена система Синго, в течение 7 месяцев работали без каких-либо дефектов. С. Синго стал по праву пользоваться на родине и за рубежом титулом «Мистер Улучшение».

Правда, название «защита от дурака» не удержалось. Однажды, когда Синго знакомил рабочих с новым методом, одна из работниц заплакала: «Я не дура!». Пришлось извиниться и дать методу новое название: система пока-ёкэ (защита от дефектов, или же 0-дефект). Эта система значительно повышает эффективность производственного процесса, способствуя уменьшению отходов, сокращению издержек и потерь времени.


3. Понятие метода «пока-ека»


В основе бездефектного производства лежит метод защиты от ошибок, получивший название покэ-ека (Poka-Yoke). Система «Пока-ека» на русский язык может быть переведена как «дуракоустойчивость».

Основная идея состоит в остановке процесса, как только обнаруживается дефект, определении причины и предотвращении возобновления источника дефекта. Поэтому не требуется никаких статистических выборок. Ключевая часть процедуры состоит в том, что инспектирование источника ошибки проводится как активная часть производственного процесса с целью выявления ошибок до того, как они становятся дефектами. Обнаружение ошибки или останавливает производство до ее исправления, или процесс корректируется, чтобы воспрепятствовать появлению дефекта. Это осуществляется на каждой стадии процесса путем мониторинга потенциальных источников ошибок. Таким образом, дефекты определяются и корректируются у самого их источника, а не на более поздних стадиях. Естественно, этот процесс стал возможным с применением инструментов и механизмов с немедленной обратной связью (в процессе избегают использовать персонал из-за его способности ошибаться). Однако использование персонала существенно для определения потенциальных источников ошибок. В 40-летнем возрасте Синго изучил и в значительной степени использовал статистические методы контроля качества, но спустя 20 лет, в 1977 г., он сказал, что наконец освободился от их колдовского очарования. Это случилось, когда он собственными глазами наблюдал, как на линии сборки сливных труб на заводе стиральных машин компании Мацускыта (Matsushita) в Сизуока (Shizuoka), на которой было занято 23 рабочих, удалось непрерывно работать без единого дефекта в течение месяца, благодаря установке устройств «Пока-Йеке», которые предотвращали появление дефектов. Синго утверждает, что бездефектности можно достигнуть путем использования контроля за источниками появления дефектов и системы «Пока-Йеке». Вместе они составляют "нулевой контроль качества (Zero Quality Control)".

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

Система «пока-ека» – основа бездефектного производства.

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

некорректно разработанных стандартов или документированных процедур;

использования некачественного или устаревшего оборудования;

применения неподходящих материалов;

изношенности инструментов;

ошибок операторов.

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

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

Метод покэ-ека базируется на семи принципах:

для создания эффективных процессов используйте робастное проектирование;

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

устраняйте ошибки, также используя робастное проектирование: это позволит приблизить число ошибок к нулю;

устраняйте коренные причины появления дефектов, применяя метод 5 "Why" (Пять "почему");

действуйте сразу, используйте все возможные ресурсы;

устраняйте деятельность, не добавляющую ценность;

внедряйте улучшения и сразу задумывайтесь над дальнейшими улучшениями.

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

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

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

Подход, при котором метод покэ-ека применяется на других этапах производственного процесса, называют реактивным. В данном случае этот метод используется:

сразу по завершении процесса;

в ходе выполнения работ оператором;

при передаче на следующий этап процесса.

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

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

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

контактные;

считывающие;

последовательного движения.

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

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

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

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

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

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

4. Применение пока-ека в организациях


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

После появления подхода «пока-ека», он был успешно применен на различных заводах, был установлен рекорд продолжительности работы без дефектов, равный двум годам. В 1968 г. на металлургическом заводе в г. Сага (Saga Ironworks) Синго создал систему пре-автоматизации (Рге-Automation system), которая позже была распространена по всей Японии.

С 1975 года Сигео Синго развивал концепцию «ноль дефектов» на заводе стиральных машин фирмы Matsushita Electric в г. Сизуока. Работал над совершенствованием технологических процессов, основанных на фундаментальных подходах, включая высокоскоростное нанесение гальванического покрытия, моментальную сушку и исключение разметки. Данная концепция применяется там и сейчас.

Рисунок – Использование приемов защиты от ошибок


Если мы посмотрим на результаты опроса (рис. 2), то увидим, что 6% респондентов утверждают, что их компании достигли мирового уровня в области защиты от ошибок (опрос проводился консалтинговой компанией PalmTree, Inc., занимающаяся пропагандой и развертыванием концепции экономного производства, в начале 2003 г. среди членов Ассоциации производителей штата Иллинойс (США)). Среди этих 6% и компания Northrop Grumman Corp. - производитель электронно-лучевых трубок. Как заявил представитель компании Э. Шаудт, подобные успехи были достигнуты в результате ежедневной работы, в ходе которой деятельность каждого работника цеха оценивается по многим параметрам, а именно: соблюдение графика, уровень качества, снижение дефектности и другие измеряемые параметры экономного производства. Поскольку концепция экономного производства является составной частью повседневной производственной деятельности, все работники осознают, что чем лучше их показатели по любому из этих параметров, тем лучше их финансовое положение и больше возможностей для карьерного роста.

Система пока-ека применяется также в японской компании предприятии «Omron». Данная компания успешно сотрудничает с российскими предприятиями. Среди тех, кто сегодня использует автоматику «Omron», - АО «КамАЗ» и АО «АвтоВАЗ», череповецкий металлургический комбинат «Северсталь» и Западно-Сибирский металлургический комбинат, Красноярская ГЭС и НПО «Энергия». Процесс производства в компании «Omron» автоматизирован настолько, что практически исключает участие в нем человека, действия которого чаще всего и могут служить причиной брака. Поэтому-то компании и удается работать по принципу: нуль дефектов, 100-процентный контроль и 100-процентная надежность. Два европейских завода компании, находящиеся в Германии и Нидерландах, имеют сертификат соответствия их систем качества международным стандартам ISO серии 9000.

Список использованной литературы


Рамперсад Хьюберт К. Общее управление качеством: личностные и организационные изменения / Пер. с англ. – М.: ЗАО «Олимп-Бизнес», 2005. – 256 с.

//Япония сегодня. «Гуру менеджмента» (статья о Сигео Синго)

certicom.kiev/index.html

//Методы менеджмента качества, №9, 2005 г. «Предотвращение ошибок, или покэ-ёка», стр. 42

Похожие рефераты:

История возникновения и развития, статистические основы и содержание концепции "Шесть сигм" как высокотехнологичной методики точной настройки бизнес-процессов, применяемой с целью минимизации вероятности возникновения дефектов в операционной деятельности.

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

Становление и развитие менеджмента качества. Взаимосвязь общего менеджмента и менеджмента качества. Развитие принципов сертификации. Сертификация систем качества и стандарты ИСО 9000. Основные этапы развития систем качества.

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

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

3. Понятие метода «пока-ека»

В основе бездефектного производства лежит метод защиты от ошибок, получивший название покэ-ека (Poka-Yoke). Система «Пока-ека» на русский язык может быть переведена как «дуракоустойчивость».

Основная идея состоит в остановке процесса, как только обнаруживается дефект, определении причины и предотвращении возобновления источника дефекта. Поэтому не требуется никаких статистических выборок. Ключевая часть процедуры состоит в том, что инспектирование источника ошибки проводится как активная часть производственного процесса с целью выявления ошибок до того, как они становятся дефектами. Обнаружение ошибки или останавливает производство до ее исправления, или процесс корректируется, чтобы воспрепятствовать появлению дефекта. Это осуществляется на каждой стадии процесса путем мониторинга потенциальных источников ошибок. Таким образом, дефекты определяются и корректируются у самого их источника, а не на более поздних стадиях. Естественно, этот процесс стал возможным с применением инструментов и механизмов с немедленной обратной связью (в процессе избегают использовать персонал из-за его способности ошибаться). Однако использование персонала существенно для определения потенциальных источников ошибок. В 40-летнем возрасте Синго изучил и в значительной степени использовал статистические методы контроля качества, но спустя 20 лет, в 1977 г., он сказал, что наконец освободился от их колдовского очарования. Это случилось, когда он собственными глазами наблюдал, как на линии сборки сливных труб на заводе стиральных машин компании Мацускыта (Matsushita) в Сизуока (Shizuoka), на которой было занято 23 рабочих, удалось непрерывно работать без единого дефекта в течение месяца, благодаря установке устройств «Пока-Йеке», которые предотвращали появление дефектов. Синго утверждает, что бездефектности можно достигнуть путем использования контроля за источниками появления дефектов и системы «Пока-Йеке». Вместе они составляют "нулевой контроль качества (Zero Quality Control)".

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

Система «пока-ека» – основа бездефектного производства.

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

¾ некорректно разработанных стандартов или документированных процедур;

¾ использования некачественного или устаревшего оборудования;

¾ применения неподходящих материалов;

¾ изношенности инструментов;

¾ ошибок операторов.

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

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

Метод покэ-ека базируется на семи принципах:

1 для создания эффективных процессов используйте робастное проектирование;

2 работайте в командах: только так можно максимально полно использовать знания сотрудников;

3 устраняйте ошибки, также используя робастное проектирование: это позволит приблизить число ошибок к нулю;

4 устраняйте коренные причины появления дефектов, применяя метод 5 "Why" (Пять "почему");

5 действуйте сразу, используйте все возможные ресурсы;

6 устраняйте деятельность, не добавляющую ценность;

7 внедряйте улучшения и сразу задумывайтесь над дальнейшими улучшениями.

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

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

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

Подход, при котором метод покэ-ека применяется на других этапах производственного процесса, называют реактивным. В данном случае этот метод используется:

¾ сразу по завершении процесса;

¾ в ходе выполнения работ оператором;

¾ при передаче на следующий этап процесса.

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

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

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

¾ контактные;

¾ считывающие;

¾ последовательного движения.

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

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

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

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

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

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


4. Применение пока-ека в организациях

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

После появления подхода «пока-ека», он был успешно применен на различных заводах, был установлен рекорд продолжительности работы без дефектов, равный двум годам. В 1968 г. на металлургическом заводе в г. Сага (Saga Ironworks) Синго создал систему пре-автоматизации (Рге-Automation system), которая позже была распространена по всей Японии.

С 1975 года Сигео Синго развивал концепцию «ноль дефектов» на заводе стиральных машин фирмы Matsushita Electric в г. Сизуока. Работал над совершенствованием технологических процессов, основанных на фундаментальных подходах, включая высокоскоростное нанесение гальванического покрытия, моментальную сушку и исключение разметки. Данная концепция применяется там и сейчас.


Рисунок – Использование приемов защиты от ошибок

Если мы посмотрим на результаты опроса (рис. 2), то увидим, что 6% респондентов утверждают, что их компании достигли мирового уровня в области защиты от ошибок (опрос проводился консалтинговой компанией PalmTree, Inc., занимающаяся пропагандой и развертыванием концепции экономного производства, в начале 2003 г. среди членов Ассоциации производителей штата Иллинойс (США)). Среди этих 6% и компания Northrop Grumman Corp. - производитель электронно-лучевых трубок. Как заявил представитель компании Э. Шаудт, подобные успехи были достигнуты в результате ежедневной работы, в ходе которой деятельность каждого работника цеха оценивается по многим параметрам, а именно: соблюдение графика, уровень качества, снижение дефектности и другие измеряемые параметры экономного производства. Поскольку концепция экономного производства является составной частью повседневной производственной деятельности, все работники осознают, что чем лучше их показатели по любому из этих параметров, тем лучше их финансовое положение и больше возможностей для карьерного роста.

Система пока-ека применяется также в японской компании предприятии «Omron». Данная компания успешно сотрудничает с российскими предприятиями. Среди тех, кто сегодня использует автоматику «Omron», - АО «КамАЗ» и АО «АвтоВАЗ», череповецкий металлургический комбинат «Северсталь» и Западно-Сибирский металлургический комбинат, Красноярская ГЭС и НПО «Энергия». Процесс производства в компании «Omron» автоматизирован настолько, что практически исключает участие в нем человека, действия которого чаще всего и могут служить причиной брака. Поэтому-то компании и удается работать по принципу: нуль дефектов, 100-процентный контроль и 100-процентная надежность. Два европейских завода компании, находящиеся в Германии и Нидерландах, имеют сертификат соответствия их систем качества международным стандартам ISO серии 9000.


Список использованной литературы

1 Рамперсад Хьюберт К. Общее управление качеством: личностные и организационные изменения / Пер. с англ. – М.: ЗАО «Олимп-Бизнес», 2005. – 256 с.

2 //Япония сегодня. «Гуру менеджмента» (статья о Сигео Синго)

3 http://www.certicom.kiev.ua/index.html

4 //Методы менеджмента качества, №9, 2005 г. «Предотвращение ошибок, или покэ-ёка», стр. 42

Poka-yoke (Принцип нулевой ошибки, англ. Zero defects) - предотвращение ошибок, метод, благодаря которому работу можно сделать только одним правильным способом и дефект просто не может появиться. Принцип нулевой ошибки означает: допускается минимум ошибок или всего одна. При инициировании программ нулевой ошибки отношение к дефектам следующее: промахи из-за забывчивости, случайной перестановки, перепутывания, неправильного считывания, ложной интерпретации, заблуждений, незнания или невнимательности возможны и неизбежны. Однако они должны рассматриваться сотрудниками как нормальное явление. Их следует вскрывать и нельзя замалчивать. Необходимо искать не виновников дефекта, а его причину.

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

  • создание предпосылок для бездефектной работы,
  • внедрение методов бездефектной работы,
  • систематическое устранение возникших ошибок,
  • принятие мер предосторожности и внедрение простых технических систем, позволяющих сотрудникам предотвратить совершение промаха (poka-случайная, непреднамеренная ошибка; yoka- избежание, сокращение количества ошибок).

Применение метода Poka Yoke

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

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

Схема 1. Принцип действия Poka-yoke

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

Вопрос: Как можно предотвратить этот дефект? Типичная ошибка, которую можно устранить, используя:

  1. устройства;
  2. позиционирование на сверлильной стойке;
  3. обучение персонала;
  4. оптический контроль.

Дефекта больше не будет!

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

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

Схема 2. Poka-yoke во вспомогательных материалах на японском предприятии.

Схема 3. Poka-yokeв процессе установки детали на немецком предприятии.

Больше практических примеров можно найти в Альманахе «Управление производством» .

Выдвинутый доктором Схинго производственный принцип нулевой ошибки базируется на 3 компонентах:

  1. Анализ причины: Проверка и нахождение возможных ошибочных действий происходит не только после завершения процесса. Распознанные ошибочные действия могут предотвращаться так еще в ходе их возникновения, прежде чем их результатом станет изготовление брака. Вследствие этого возможнополное предотвращение дефектов.
  2. 100%-й контроль: с помощью простых и эффективных устройств ошибочные действия обнаруживаются еще в текущей стадии процесса. Благодаря простоте и экономичности устройств возможно не только выборочная проверка, но и каждая отдельной детаи.
  3. Немедленные меры по исправлению: возможно очень короткое время реакции от обнаруживания ошибки до введения необходимого корректирующего мероприятия.