اغلب مشتریان و کاربران نهایی آنچه را که تصور می‌کنند راه‌حلی مناسب برای یک مشکل است، به عنوان یک نیاز مطرح می‌کنند. داستان کلاسیک در این زمینه توسط هری هیلیکر، طراح اصلی هواپیمای F-16 Falcon بیان شده است. از تیم او خواسته شده بود تا هواپیمایی طراحی کنند که به سرعت ماخ ۲ تا ۲.۵ برسد؛ این موضوع در آن زمان، و احتمالاً هنوز هم، چالش‌برانگیز است، به‌ویژه وقتی هدف ساخت یک هواپیمای سبک و «ارزان» باشد. توجه داشته باشید که نیروی مورد نیاز برای غلبه بر مقاومت هوا، با دو برابر شدن سرعت چهار برابر می‌شود و این مسئله تأثیر زیادی بر وزن هواپیما دارد.

وقتی تیم طراحی از نیروی هوایی پرسید که چرا به سرعت ماخ ۲ تا ۲.۵ نیاز دارند، پاسخ این بود که «برای فرار از نبرد». با مشخص شدن نیاز واقعی، تیم طراحی توانست مسئله اصلی را حل کرده و راه‌حلی عملی ارائه کند: هواپیمایی چابک با نسبت بالای رانش به وزن که شتاب و مانورپذیری بالایی دارد و نه صرفاً سرعت بالا.

این درس باید در توسعه نرم‌افزار نیز مورد توجه قرار گیرد. با پرسیدن ارزش مورد نظر از یک ویژگی یا نیاز درخواستی، معماران می‌توانند به مسئله واقعی بپردازند و امیدوار باشند راه‌حلی بهتر و مقرون‌به‌صرفه‌تر از آنچه مشتری پیشنهاد کرده، ارائه دهند. تمرکز بر ارزش همچنین اولویت‌بندی را ساده می‌کند: نیازمندی‌های با بیشترین ارزش، به نیازمندی‌های اصلی تبدیل می‌شوند.

پس چگونه باید پیش رفت؟ از بسیاری جهات رویکرد مورد نیاز در «مانیفست چابک» نهفته است: «همکاری بیش از قرارداد». از نظر عملی، این یعنی برگزاری کارگاه‌ها و جلساتی که در آنها تمرکز معماران بر نیازهای مشتری است—کمک به مشتری برای پاسخ دادن به سؤال «چرا». توجه داشته باشید که پاسخ به سؤال «چرا» می‌تواند دشوار باشد، زیرا اغلب با دانش ضمنی سر و کار داریم. در این کارگاه‌ها باید از بحث در مورد جزئیات فنی پرهیز شود، چرا که توجه را از حوزه مشتری به حوزه توسعه نرم‌افزار منحرف می‌کند.

نویسنده: Einar Landre

اینار لاندری متخصص فعال در حوزه نرم‌افزار با ۲۵ سال تجربه به عنوان توسعه‌دهنده، معمار، مدیر، مشاور و نویسنده/سخنران است. او در حال حاضر در بخش خدمات کاربردی کسب‌وکار شرکت StatoilHydro در زمینه توسعه برنامه‌های حیاتی، بررسی‌های معماری و فعالیت‌های بهبود فرآیند نرم‌افزار فعالیت دارد و تخصص او شامل SOA، طراحی مبتنی بر دامنه، استفاده از عامل‌های چندگانه و طراحی سیستم‌های بزرگ، شبکه‌ای و نرم‌افزارمحور است.