پوکا یوکه – تکنیک خطاناپذيرسازی فرآيندها

  • یوسف مهرداد بی‌بالان

کتاب پوکا یوکه تکنیک خطاناپذيرسازی فرآيندها تأليف مايکل آر. بيوریگارد، ریموند جی.میکولاک، رابین ای مک درموت و ترجمه مهندس سارا صلواتی کتاب جالبی است. این کتاب را از حسین هدیه گرفتم و چه هدیه باارزشی. بخش‌هایی از کتاب را در زیر آورده‌ام:
“در لغت‌نامه ژاپنی، پوکایوکه به معنی حماقت‌ناپذيری ترجمه شده بود و لیکن به تشخیص اساتید من، … ترجمه آن را خطاناپذيری نامیدند.
پس از بازگشت به آمریکا متوجه شدم که اکثر شرکتهای ما نیز ازخطاناپذيری فقط در همان زمینه (یعنی به عنوان ابزار ایمنی) استفاده می‌کنند و خطاناپذيرسازی در زمنیه بهبود تولید و بهره‌وری کاربردی ندارد. درحالیکه امروزه استفاده از این تکنیک تغییر کرده و من از اینکه می‌بینم خطاناپذيرسازی در جریان اصلی بهبود فرآيند کاربرد پیدا کرده است، خوشحالم.
به نظر من، موفقیت نصیب کسانی خواهد شد که روشهای خطاناپذيرسازی را در درازمدت دنبال کنند.
خطاناپذیرسازی روشی جهت غیرممکن ساختن اشتباهات است. این تکنیک می‌تواند با ایجاد تغییرات دائمی در تجهیزات، عملیات و یا رویه‌ها، فرصت بروز اشتباهات را حذف یا در صورت بروز یک اشتباه، با ارسال سیگنال، سریعاً جلوی انجام کار اشتباه را بگيرد.
تمرکز تکنیک خطاناپذیرسازی بر سلب فاکتورهای انسانی در مواقعی است که انجام کاری بر اثر تکراری بودن آن نیاز به حافظه، توجه و تمرکز دارد. البته این بدان معنی نیست که فکرکردن را در انجام کارها حذف کنیم، بلکه باید کاری کرد که زمان و ذهن افراد آزاد شده، با انجام یک سیستم خلاق و یک فعالیت ارزش‌آفرين(Value Adding) کارها بدون ترس از اشتباه بودن آنها و به صورتی صحیح انجام شوند.
مطمئناً اغلب اشتباهات به طور عمدی ایجاد نمی‌شوند، آنها معمولاً بر اثر پيچيدگی فرآيندها ایجاد می‌شوند.
در زمینه بروز اشتباهات، دو طرز تفکر متفاوت وجود دارد:
1- اشتباهات اجتناب ناپذیرند و شما باید بیاموزید که چگونه با آنها زندگی کنید. این طرز تفکر موجب کاهش بهره‌وری شده و همیشه ما را به سوی شکست سوق می‌دهد.
2- اشتباهات می‌توانند و باید حذف شوند. اگر چه این طرز تفکر به تنهایی چاره‌ساز نیست و لیکن زمینه‌ساز فعالیتهای بعدی جهت دستیابی به محصولات با عیوب صفر است.
نمونه‌هایی از خطاناپذیرسازی در زندگی روزمره:
1-اغلب اتوها در صورت عدم استفاده از آنها به طور خودکار خاموش می‌شوند.
2-نوارهای صوتی-تصویری و دیسکتهای کامپیوتر که با برداشتن زبانه ایمنی آنها از پاک شدن و یا ضبط مجدد بر روی آنها جلوگیری می‌شود.
3-دیسکتهای کامپیوتری را نمی‌توان به صورت اشتباه وارد درایو نمود. “

مطالعه این کتاب باعث شد که خیلی در مورد به کارگيری این روش در تولید نرم‌افزار فکر کنم.
ما از دو سو با فرآيند درگیر هستیم.
اول: در تولید نرم‌افزار همه ما از یک فرآيند و روش استفاده می‌کنیم. منظورم از روش، روشهايی مانند RUP، Agile، … نیست. بلکه گامهای انجام کار تولید نرم‌افزار است.
دوم:در اکثر قریب به اتفاق نرم‌افزارهايی که تولید می‌کنیم، روش و فرآيند انجام کار مشتری را مکانیزه و گاه دستخوش تغییر می‎‌‌کنیم.
اگر بتوانیم این ایده و تکنیک را در این دو مقوله به کار بگیریم، شاید بتوانیم درصد اشتباهات را کاهش دهیم، اشتباهات حین تولیدمان و اشتباهات کاربر محصولمان.
یک مجموعه از ایده‌ها در ذهنم است ولی هنوز پخته نیست.
اگر شما هم نمونه‌ها و يا ايده‌هايی در این زمینه دارید، برایم یادداشت بگذارید.

نظرات (2)

wave
  • نیوشا

    12 آذر 1385 در 00:00

    با درود بسیار:
    به نظر من دلیل بروز بسیاری از اشتباهات ما در فرایند تولید نرم افزار (یا هر فرایند دیگر ) به سطح دانش و تجربه ما بر می گردد. و در اغلب موارد اشتباه ما ناشی از اتنخاب میان گزینه درست یا نادرست نیست. به عنوان مثال طبق مثالی که در متن آورده اید، اگر ما بدانیم و به این نتیجه رسیده باشیم که ایجاد زبانه ایمنی از پاک شدن اطلاعات بر روی دیسکتهای کامپیوتر جلوگیری می کند، قطعا از آن در ساخت دیسکتهای کامپیوتر استفاده می کنیم، اما نکته مهم اینجاست که برای رسیدن به این دانش و سطح تجربه که بتواند از بروز خطا یا اشتباه جلوگیری کند، چه باید کرد ؟
    یعنی به نظر من با کسب دانش و مهارت های لازم می توان احتمال خطاناپذیرسازی را بالا برد.
    این بحث بسیار جالب است و خواهش می کنم در ادامه نیز به آن بیشتر بپردازید.

    پاسخ
  • علی نوبر

    16 آذر 1385 در 00:00

    جناب آقای مهرداد،
    وبلاگ شما را تازه کشف کردم و آدرس آن بدون تردید وارد Favorite شد(!). علاوه بر مفید بودن مطالب، لحن متون ارسال شده هم قابل توجه است.
    مطلب اخیر (خطاناپذیری فرآیندها) نیز از این قاعده مستثنی نیست. بسیاری سوالات در مورد آن برایم مطرح شد که چند مورد را میپرسم: آیا میتوان در یک سیستم پیچیده (مانند یک سیستم نرم افزاری بزرگ) حد این خطاها را به سمت صفر میل داد؟ ظاهرا انجام Validation در سیستمهای نرم افزاری مرتبط با مطلب فوق الذکر است. سوال اینجاست که چه فاکتورهای دیگری جهت تضمین خطاناپذیری در سیستمهای نرم افزاری نقش دارند؟

    پاسخ

برای خروج از جستجو کلید ESC را بفشارید