گاهی مجبور میشیم تا مسائل رو ملموستر توصیف کنیم! و خب هیچی ملموستر از پول وجود نداره!
اگر توسعه نرمافزار رو یک خط افقی در نظر بگیریم که از برنامهریزی، تا انتشار کشیده شده؛ کنترل کیفیت به شکل سنتی بر سمت راست این طیف تمرکز داره! یعنی بعد از اینکه قابلیتی توسعه داده شد، کیفیتش رو کنترل میکنند: مثل همون کاری که با رب گوجهفرنگی میکنند! مدل Shift-Left توصیه میکنه که کنترل کیفیت رو به سمت چپ، جایی که اساسا باگ به سیستم تزریق میشه، منتقل کنیم! به عبارت دقیقتر توجه به کیفیت هرچقدر به سمت چپ معطوف بشه، توسعه نرمافزار اقتصادیتر خواهد بود. در تفسیرهای مدرنتر، امنیت رو هم به مفهوم کیفیت اضافه کردند. توجه به امنیت در ابتدای توسعه بجای تست امنیت در انتهای توسعه!
Requirement — Development — Test — Deliver
در جمعی برای توضیح اهمیت این موضوع تصمیم گرفتم پای پول رو وسط بکشم. چیزی که ذهن افراد اون جمع بسیار باهاش ارتباط برقرار میکرد. اصولا مغز اقتصادی انسان، اینکه چقدر پول ممکنه از دست بده رو بهتر و عمیقتر از اینکه چقدر پول ممکنه بدست بیاره، درک میکنه! در اقتصاد و علوم شناختی به این پدیده میگن Loss-Aversion یا زیانگریزی! برای اولین بار آقای دانیل کانمن و دوستش در سال ۱۹۸۴ نشون دادند که گم کردن یک ۱۰۰ دلاری دو برابرِ پیدا کردن یک ۱۰۰ دلاری، درد داره! البته این سوگیری میتونه به یک وسواس هم تبدیل بشه.
اقتصادِ تست
در این مثال، دو روش توسعه با هم مقایسه شدند. اولی روشی است که یک دلوپر و یک تستر، از توسعه تا تحویل فیچر به شکل دست به دست (Handover) با هم کار میکنند. روش بعدی نقطه مقابل طیف هست که یک دولوپر فرهنگ کاری Shift-Left Testing رو به نمایش میذاره. همون طور که گفتم این یک طیفه و در دنیای واقعی تیمها یک جایی بین این دو قرار میگیرند. این مدل توصیه میکنه تا اونجایی که میتونیم به سمت چپ متمایل باشیم، چون هزینه ها به شکل خارق العادهای کاهش پیدا میکنه!
در محاسبات سرانگشتی، از سربارهای جانبی هر دو روش و بخصوص روش اول مثل هزینه های جذب و منابع انسانی، شلوغی سازمان، تجهیزات، خطای انسانی و هزینه هایزِنباگها (heisenbugs) صرفنظر شده!
تصویر به نظرم گویاست و تحلیلش رو به بیننده میسپارم.
دیدگاهتان را بنویسید