اصول و تجربه هایی که بر تولید ناب، توسعه محصول ناب، خدمات ناب و تفکر ناب اعمال می شوند معمولا عمیق و گسترده هستند. اگرچه بدنه عمومی کار بزرگ است، اما لارمن و وود چارچوبی را برای تفکر نرم افزار ناب توصیف کرده اند که به موجب آن بسیاری از اصول و تجربه های اصلی را به متن نرم افزار قابل مدیریت ترجمه می کند. آن ها برای انجام این کار، تصویر «خانه تفکر ناب» را مجددا ارائه می کنند، به طوری که از خانه های ناب قبلی همانند تویوتا و ... الهام گرفته شده است. خانه نرم افزار ناب در شکل ذیل قابل مشاهده است.
خانه نرم افزار ناب شامل پنج جزء ذیل است:
- سقف، هدف: پایداری به تحویل ارزش سرعت می بخشد
- ستون اول: به افراد احترام بگذارید
- ستون دوم: بهبود مداوم
- شالوده: حمایتِ مدیریت
- محتویات: جریان توسعه محصول
سقف خانه ناب: پایداری به تحویل ارزش سرعت می بخشد
هدف ناب قابل مذاکره نیست: در کوتاه ترین زمان ممکن باید بتوانیم ارزش تحویلی به مشتری را حداکثر کنیم.
در ادامه، نحوی نگرش دیگران در این مورد بیان میشود:
تایچی اوهنو: از زمانی که مشتری سفارشی را به ما می دهد تا زمانی که هزینه آن را دریافت کنیم، آنچه که انجام می دهیم این است که به محور زمان نگاه میکنیم تا آن را با کنار گذاشتن کارهای بدون ارزش افزوده کاهش دهیم.
پوپن دیک: روشی برای تحویل بسیار سریع نرم افزار نیاز داریم تا مشتریان زمان کافی برای تغییر طرز فکر خود نداشته باشند.
لارمن و وود: بر روی چوب دستی متمرکز شوید نه بر روی دونده ها. «به جای اینکه به مشغول بودن افراد یا بهینه محلی فکر کنید بر روی جریان ارزش و نرخ ارزش/ اتلاف متمرکز شوید»
بنابراین، به نکات ذیل در مورد نیازمندی ها توجه می کنیم:
- بجای تمرکز بر روی افراد یا سازمان هایی که نیازمندی ها را مدیریت می کنند، بر روی نیازمندی های مشتری متمرکز می شویم.
- فعالیت های بدون ارزش افزوده را کشف می کنیم و آنها را فعالانه به حداقل میرسانیم.
از دیدگاه نیازمندی های نرم افزار می توانیم «زنجیره ارزش» تحویل نرم فزار سازمان را همانند شکل ذیل نمایش دهیم.
بهبود مداوم یا «کایزن» ستون دوم ناب است. با کایزن، از طریق بازبینی و بهبود مداوم به سوی یک سازمان یادگیرنده هدایت می شویم.
- منشاء مسئله را کشف نماید و برای حل آن و بهبود فرایند شخصاً دادهها را مشاهده و بررسی کنید.
- تصمیم گیری ها را تدریجی و با توافق انجام دهید و همه گزینه ها را در نظر بگیرید. سپس تصمیم ها را به سرعت پیاده سازی کنید.
- برای تشخیص علت اصلی ناکارآمدی، بهبود مداوم را به کار بگیرید و اقدامات متقابل موثر را اعمال کنید.
- از طریق پرورش پرسنل با ثبات، ارتقاء تدریجی و سیستم های جانشینی دقیق از پایگاه دانش سازمانی محافظت کنید.
- در نقاط عطف اصلی تفکر کنید و پس از پایان پروژه به طور آشکار کاستی های پروژه را شناسایی نمایید.
حمایتِ مدیریت شالوده تفکر ناب است. در حقیقت، «حمایت» واژه مناسبی نیست تا به وسیله آن نقش اصلی و فعال مدیریت در پیاده سازی و هدایت ناب توصیف گردد. واژه «رهبری» ممکن است انتخاب بهتری باشد. در ناب، مدیریت با به کارگیری تجربه ها و ابزارهای تفکر ناب و بهبود مداوم، اعمال همیشگی آن ها و تعلیم به کارمندان، آموزش می بیند.
در این مورد، ناب از بیشتر تجربه های ما در توسعه چابک فاصله می گیرد. براساس تجربهای که داریم، چابک اغلب به صورت فرایند تیم محور ترویج پیدا کرده است و در بدترین حالت تمایل به کنار گذاشتن مدیریت از فرایند و تجربه های اصلی را دارد. البته، کنار گذاشتن مدیریت از مشارکت و حل مسئله رویکرد مناسبی نیست. موارد ذیل تفاوت های میان چابک و ناب را بیان میکنند:
- در چابک، انتظار داریم مدیریت ما را حمایت کند و در برطرف کردن موانع کمک نماید.
- در ناب، انتظار می رود که مدیریت ما را رهبری کند و نقش فعالی را در انجام بهبود مداوم بازی نماید.
این اصل مهم برای ناب هدایت کننده ای با اهمیت در سازمان نرم افزاری است. مدیران و هیئت رئیسه به جای پیگیری، رهبری می کنند و برای پیشبرد مداوم تجربه ها پاسخگو هستند.
محتویات خانه ناب: اصول جریان توسعه محصول
در مرکز خانه نرم افزار ناب اصول و تجربه هایی قرار دارند که توسط تیم برای توسعه و تحویل نرم افزار به کاربران پایانی استفاده می شوند. برای انجام این کار تنها یک روش درست وجود ندارد بلکه کتاب هایی هستند که دیدگاه های مختلفی را فراهم میکنند. در کتاب «اصول جریان توسعه محصول» هشت موضوع مهم مطرح شده است که هر کدام توسط تعدادی اصول کمکی پشتیبانی می شوند. این موضوعات به همراه اصول مربوطه راهنمای جامعی برای ناب فراهم میکنند. از دیدگاه من، این بهترین و معمولترین رویکر برای توصیف اصول ناب است که بر روی توسعه محصول اعمال میشود. همچنین، این اصول راهنمای عالی و با اهمیتی برای تیم توسعه نرم افزار است. این هشت موضوع شامل موارد ذیل هستند:
- دید اقتصادی داشته باشید
- به طور فعال صف ها را مدیریت نمایید
- تغییرپذیری را درک نمایید و از آن بهرهبرداری کنید
- اندازه بسته ها را کاهش دهید
- محدودیت های کار در جریان را اعمال کنید
- جریان تحت عدم قطعیت را کنترل کنید(ریتم و همگام سازی)
- بازخورد را تا حد ممکن سریع دریافت کنید
- کنترل را نامتمرکز کنید