مسئول کیفیت نرمافزار چه کسی است؟

یک باگ به production میرود. کاربر ناراضی میشود، پشتیبانی درگیر میشود و تیم فنی دنبال علت میگردد. در چنین لحظهای معمولاً اولین سؤال این است: «چرا QA این را نگرفت؟»
این سؤال از یک نگرانی واقعی میآید. کسی انتظار دارد قبل از رسیدن خطا به کاربر، یک جایی در مسیر جلوی آن گرفته شود. اما همین سؤال، اگر دقیق بررسی نشود، ما را به یک برداشت سادهانگارانه میرساند: اینکه کیفیت چیزی است که در انتهای مسیر، توسط یک نقش جدا، به محصول اضافه میشود.
به نظرم این برداشت ریشهی خیلی از سوءتفاهمهای تیمهای نرمافزاری است. این متن علیه QA نیست و قرار نیست تخصص تست و کیفیت را بیارزش کند. مسئله این است که QA نباید جایگزین مسئولیت تیم شود. کیفیت اگر در فهم مسئله، طراحی، کدنویسی، تست، انتشار و بازخورد ساخته نشده باشد، در آخر مسیر فقط دیرتر خراب بودنش را میفهمیم.
پس ایدهی اصلی این متن ساده است: کیفیت مسئولیت مشترک تیم است؛ اما مسئولیت مشترک نباید به بیمالکیتی تبدیل شود. هر نقش باید مالک کیفیت همان تصمیمی باشد که روی آن اثر میگذارد.
