دادهها نشان میدهند که جمعآوری نادرست الزامات یکی از دلایل اصلی شکست ۷۰ درصد پروژههاست. با این حال، پشت این آمار مشکل واقعی وجود دارد: تیمها بیش از حد بر الزامات عملکردی (آنچه سیستم انجام میدهد) تمرکز میکنند و جنبههای غیرعملکردی (نحوه انجام آن سیستم) را نادیده میگیرند.
الزامات غیرعملکردی (Non-Functional Requirements) تضمین میکنند که تجربه کاربری خوبی ارائه میدهید و محصول شما در سطحی عمل میکند که مشتریان و ذینفعان انتظار دارند.
متأسفانه، بسیاری از تیمهای محصول تا زمانی که خیلی دیر نشده، الزامات غیرکاربردی (NFR) را نادیده میگیرند. حتی بدتر از آن، بهروزرسانی الزامات غیرکاربردی پس از ساختن نرمافزار پرهزینه است و میتواند بودجه شما را از بین ببرد.
در این راهنما به این موضوع میپردازیم که الزامات غیرعملکردی کدامند، چرا مهم هستند و چگونه باید آنها را در نقشه راه محصول و برنامهریزی اسپرینت خود بگنجانید.
الزامات غیرعملکردی چیست؟
الزامات غیرعملکردی، «چگونگی» انجام کار توسط سیستمها را تعریف میکنند. این شامل ویژگیهایی مانند عملکرد، امنیت، قابلیت نگهداری، مقیاسپذیری و سهولت استفاده است. اساساً، آنها بررسیها و تعادلهای مناسبی را برای الزامات عملکردی فراهم میکنند.
الزامات عملکردی چیزی است که شما میخواهید بسازید. این میتواند به معنای یک صفحه وب، اپلیکیشن یا جریان ورود باشد. در ظاهر، به نظر میرسد عملکرد محصول مهمترین چیزی است که تیم شما باید روی آن تمرکز کند؛ و این کاملاً درست است! بدون نرمافزار کاربردی، شما چیزی برای ارائه به کاربران ندارید.
اما عملکرد برای ایجاد یک محصول قانعکننده کافی نیست.
الزامات غیرعملکردی تضمین میکنند که یک سیستم یا محصول واقعاً قابل استفاده است، یک تجربه عالی برای مشتری ارائه میدهد، ایمن است و با مقررات قانونی مطابقت دارد.
تصور کنید در حال خرید یک ماشین اسپرت هستید. از جمله الزامات عملکردی شما برای ماشین این است که درب داشته باشد. الزامات غیرعملکردی، نحوه عملکرد آن درها را مشخص میکند. آیا آنها درهای قدیمی معمولی هستند؟ یا درهای فوقالعاده باحالی که در تسلا و مرسدس بنز میبینید؟
هر انتخابی خوب خواهد بود؛ اما شما باید تصمیم بگیرید که کدام گزینه بهترین تجربه رانندگی را به شما میدهد.

۱۰ نوع اصلی الزامات غیرعملکردی
اشتباه اکثر تیمها در رابطه با الزامات غیرعملکردی این است که روی یکی دو مورد واضح تمرکز کرده و بقیه را فراموش میکنند.
تیم شما “فراموش نمیکند” به مسائل عملکرد یا قابلیت اطمینان تست بپردازد. اما آیا برای بومیسازی، مسائل نظارتی یا قابلیت نگهداری نیز برنامهریزی میکند؟
یک مدیر محصول خوب باید ده الزامات غیرعملکردی را در مرحله توسعه در نظر بگیرد که عبارتند از:
- عملکرد: روی سرعت، کارایی و حجم کاری سیستم تمرکز دارد. به عنوان مثال، سیستم با چه سرعتی پاسخ میدهد؟
- مقیاسپذیری: اطمینان حاصل میکند که سیستم میتواند به تغییرات تقاضا پاسخ دهد. به عنوان مثال، سیستم چگونه منابع اضافی را جذب خواهد کرد؟
- قابلیت اطمینان: در دسترس بودن سیستم و تحمل شکست را تعریف میکند، به عنوان مثال، زمان آپتایم هدف چیست؟
- انعطافپذیری: مشخص میکند که یک سیستم در صورت شکست چقدر سریع میتواند بازیابی شود. به عنوان مثال، فرآیند تنظیم مجدد چگونه کار میکند؟
- امنیت: بر نحوه ایمن نگه داشتن سیستم، ذخیره دادهها و پاسخ به حملات تمرکز میکند. یعنی پروتکلهای امنیتی سایت چیست؟
- قابلیت استفاده: نحوه عملکرد سیستمها برای مشتری/کاربر نهایی را مشخص میکند. به عنوان مثال، چند کلیک برای رسیدن به یک مکان خاص لازم است؟
- قابلیت نگهداری: اطمینان حاصل میکند که ارتقای سیستم و عیبیابی آسان است. یعنی گزارش خطا چه فرمتی دارد؟
- قابلیت تغییر: نحوه تغییر سیستم را در صورت لزوم تعریف میکند. به عنوان مثال، کاربران چگونه میتوانند ویژگیهای خاصی را سفارشی کنند؟ توسعهدهندگان چگونه میتوانند کد را تنظیم نمایند؟
- بومیسازی: نحوه انطباق یک سیستم با موقعیت مکانی کاربر را مشخص میکند. به عنوان مثال، سیستم چگونه زبانها/ارزهای مختلف را شناسایی کرده و نمایش میدهد؟
- نظارت: تضمین میکند که سیستم از قوانین پیروی میکند. به عنوان مثال، این سیستم چگونه با استاندارد ISO27001 مطابقت دارد؟
۷ مرحله برای گنجاندن الزامات غیرعملکردی در نقشه راه و برنامهریزی
الزامات غیرعملکردی به وضوح مهم هستند. اما چگونه باید آنها را در استراتژی محصول خود بگنجانیم؟
در اینجا هفت مرحله ساده برای گنجاندن الزامات غیرعملکردی در نقشه راه پروژه یا محصول شما آورده شده است:
۱- یک لیست ویژگیهای کیفیت بسازید
با درک اینکه “کیفیت” برای شما و مشتری به چه معناست شروع کنید.
برای هر ویژگی یا الزام عملکردی خاص، سعی کنید با پرسیدن از خودتان بفهمید که مشتری به چه چیزی نیاز دارد:
- چه چیزی برای مشتری مهم است؟
- چه ویژگیهایی این ویژگی/محصول را عالی میسازد؟
اگر مشکل دارید، سعی کنید با طوفان فکری مسیر برعکس را در پیش بگیرید: یعنی دریابید چه چیزهایی ویژگی را بد میسازد؟
مثلا:
الزام عملکردی: به عنوان یک کاربر، من میخواهم در صفحه اصلی فرود بیایم تا بتوانم استفاده از محصول را شروع کنم.
چه چیزی آن را عالی میکند؟ اینکه خیلی سریع لود شود.
چه چیزی آن را بد میکند؟ اگر اندازه متن خیلی کوچک باشد، نمیتوان آن را خواند.
اکنون شما دو مورد الزام ویژگی کیفیت (QAR) را کشف کردهاید!
اگر به اطلاعات بیشتری نیاز دارید، از انجام تحقیقات و بررسی بازار برای درک ویژگیهای خوب و بد محصولات مشابه نترسید.

۲- برای هر نیاز، انتظارات روشنی تعیین کنید
اکنون که ایده بهتری در مورد ویژگیهای کیفیتی که میخواهید ارائه دهید دارید، وقت آن است که به موارد دیگر بپردازید و الزامات غیرعملکردی خود را تکمیل کنید.
این شامل کمّی کردن انتظارات کاربر و تبدیل کلمات مبهم به اظهارات محکم و عملی است که میتوانید از آنها محصول خود را بسازید.
بیایید از مثالهای قبلی استفاده کنیم:
قبل ← «اینکه خیلی سریع بارگیری شود.»
بعد ← «صفحه در کمتر از ۱ ثانیه بارگیری میشود»
قبل ← «اگر اندازه متن خیلی کوچک باشد، نمیتوان آن را خواند»
بعد ← «اندازه متن ۱۶ پیکسل خواهد بود»
به یاد داشته باشید که برای درک زمینه و آنچه که مشتری برای دستیابی به آن نیاز دارد، به طور مداوم به الزامات عملکردی خود مراجعه کنید.
۳- تأثیر گستردهتر الزامات غیرعملکردی خود را تجزیه و تحلیل کنید
هیچ پروژهای به صورت مجزا اتفاق نمیافتد. پروژهها، تغییرات و نقشههای راه زیادی حول محور کسبوکار وجود خواهد داشت.
قبل از شروع توسعه، یک قدم به عقب بردارید و اطمینان حاصل کنید که الزامات غیرعملکردی شما به طور ناخواسته باعث ایجاد مشکل برای بخش دیگری از محصول یا زیرساخت گسترده IT شما نمیشود.
در اینجا چند نمونه آوردهایم:
- عملکرد: آیا الزامات عملکردی شما منابع دیگر را تخلیه میکند؟
- امنیت: آیا با استانداردهای مشابه سایر برنامهها کار میکنید؟
- قابلیت استفاده: آیا مشتری شما از قبل با گردش کار سایر محصولات آشنا است؟
- قابلیت نگهداری: آیا فرآیندهای مرکزی برای به روز رسانی محصول وجود دارد؟
- انعطافپذیری: آیا استانداردهایی برای تداوم در سراسر کسب و کار وجود دارد؟
اگر هیچ چیز دیگری نیست، بررسی متقابل الزامات غیرعملکردی با سایر تیمهای پروژه ممکن است به شناسایی الزامات جدیدی که حتی فکرش را هم نمیکردید کمک کند!
جمعبندی
بسیاری از پروژهها شکست میخورند زیرا مدیران آنها فراموش میکنند الزامات غیرعملکردی را در نظر بگیرند. اشتباهات مشابه را مرتکب نشوید و با الزامات غیرعملکردی کنار بیایید، زیرا آنها تفاوت بین کاربران راضی و ناراضی را ایجاد میکنند.
این مقاله، راهنمای کاملی برای گنجاندن الزامات غیرعملکردی در نقشه راه محصول از ابتدا تا انتها در این فرآیند را ارائه میدهد. هنگامی که دید واضحی از آنچه برای کاربران مهم است به دست آوردید، باید به ساختاردهی تحویل الزامات غیرعملکردی از طریق کشف، برنامهریزی، آزمایش و استقرار بپردازید. در پایان، مطمئن خواهید شد که نحوه عملکرد محصول شما به اندازه کاری که انجام میدهد مهم است.