مدیریت پروژه
الزامات غیرعملکردی کدامند و چگونه میتوان آنها را در پروژه گنجاند؟
دادهها نشان میدهند که جمعآوری نادرست الزامات یکی از دلایل اصلی شکست ۷۰ درصد پروژههاست. با این حال، پشت این آمار مشکل واقعی وجود دارد: تیمها بیش از حد بر الزامات عملکردی (آنچه سیستم انجام میدهد) تمرکز میکنند و جنبههای غیرعملکردی (نحوه انجام آن سیستم) را نادیده میگیرند.
الزامات غیرعملکردی (Non-Functional Requirements) تضمین میکنند که تجربه کاربری خوبی ارائه میدهید و محصول شما در سطحی عمل میکند که مشتریان و ذینفعان انتظار دارند.
متأسفانه، بسیاری از تیمهای محصول تا زمانی که خیلی دیر نشده، الزامات غیرکاربردی (NFR) را نادیده میگیرند. حتی بدتر از آن، بهروزرسانی الزامات غیرکاربردی پس از ساختن نرمافزار پرهزینه است و میتواند بودجه شما را از بین ببرد.
در این راهنما به این موضوع میپردازیم که الزامات غیرعملکردی کدامند، چرا مهم هستند و چگونه باید آنها را در نقشه راه محصول و برنامهریزی اسپرینت خود بگنجانید.
الزامات غیرعملکردی چیست؟
الزامات غیرعملکردی، «چگونگی» انجام کار توسط سیستمها را تعریف میکنند. این شامل ویژگیهایی مانند عملکرد، امنیت، قابلیت نگهداری، مقیاسپذیری و سهولت استفاده است. اساساً، آنها بررسیها و تعادلهای مناسبی را برای الزامات عملکردی فراهم میکنند.
الزامات عملکردی چیزی است که شما میخواهید بسازید. این میتواند به معنای یک صفحه وب، اپلیکیشن یا جریان ورود باشد. در ظاهر، به نظر میرسد عملکرد محصول مهمترین چیزی است که تیم شما باید روی آن تمرکز کند؛ و این کاملاً درست است! بدون نرمافزار کاربردی، شما چیزی برای ارائه به کاربران ندارید.
اما عملکرد برای ایجاد یک محصول قانعکننده کافی نیست.
الزامات غیرعملکردی تضمین میکنند که یک سیستم یا محصول واقعاً قابل استفاده است، یک تجربه عالی برای مشتری ارائه میدهد، ایمن است و با مقررات قانونی مطابقت دارد.
تصور کنید در حال خرید یک ماشین اسپرت هستید. از جمله الزامات عملکردی شما برای ماشین این است که درب داشته باشد. الزامات غیرعملکردی، نحوه عملکرد آن درها را مشخص میکند. آیا آنها درهای قدیمی معمولی هستند؟ یا درهای فوقالعاده باحالی که در تسلا و مرسدس بنز میبینید؟
هر انتخابی خوب خواهد بود؛ اما شما باید تصمیم بگیرید که کدام گزینه بهترین تجربه رانندگی را به شما میدهد.
۱۰ نوع اصلی الزامات غیرعملکردی
اشتباه اکثر تیمها در رابطه با الزامات غیرعملکردی این است که روی یکی دو مورد واضح تمرکز کرده و بقیه را فراموش میکنند.
تیم شما “فراموش نمیکند” به مسائل عملکرد یا قابلیت اطمینان تست بپردازد. اما آیا برای بومیسازی، مسائل نظارتی یا قابلیت نگهداری نیز برنامهریزی میکند؟
یک مدیر محصول خوب باید ده الزامات غیرعملکردی را در مرحله توسعه در نظر بگیرد که عبارتند از:
- عملکرد: روی سرعت، کارایی و حجم کاری سیستم تمرکز دارد. به عنوان مثال، سیستم با چه سرعتی پاسخ میدهد؟
- مقیاسپذیری: اطمینان حاصل میکند که سیستم میتواند به تغییرات تقاضا پاسخ دهد. به عنوان مثال، سیستم چگونه منابع اضافی را جذب خواهد کرد؟
- قابلیت اطمینان: در دسترس بودن سیستم و تحمل شکست را تعریف میکند، به عنوان مثال، زمان آپتایم هدف چیست؟
- انعطافپذیری: مشخص میکند که یک سیستم در صورت شکست چقدر سریع میتواند بازیابی شود. به عنوان مثال، فرآیند تنظیم مجدد چگونه کار میکند؟
- امنیت: بر نحوه ایمن نگه داشتن سیستم، ذخیره دادهها و پاسخ به حملات تمرکز میکند. یعنی پروتکلهای امنیتی سایت چیست؟
- قابلیت استفاده: نحوه عملکرد سیستمها برای مشتری/کاربر نهایی را مشخص میکند. به عنوان مثال، چند کلیک برای رسیدن به یک مکان خاص لازم است؟
- قابلیت نگهداری: اطمینان حاصل میکند که ارتقای سیستم و عیبیابی آسان است. یعنی گزارش خطا چه فرمتی دارد؟
- قابلیت تغییر: نحوه تغییر سیستم را در صورت لزوم تعریف میکند. به عنوان مثال، کاربران چگونه میتوانند ویژگیهای خاصی را سفارشی کنند؟ توسعهدهندگان چگونه میتوانند کد را تنظیم نمایند؟
- بومیسازی: نحوه انطباق یک سیستم با موقعیت مکانی کاربر را مشخص میکند. به عنوان مثال، سیستم چگونه زبانها/ارزهای مختلف را شناسایی کرده و نمایش میدهد؟
- نظارت: تضمین میکند که سیستم از قوانین پیروی میکند. به عنوان مثال، این سیستم چگونه با استاندارد ISO27001 مطابقت دارد؟
۷ مرحله برای گنجاندن الزامات غیرعملکردی در نقشه راه و برنامهریزی
الزامات غیرعملکردی به وضوح مهم هستند. اما چگونه باید آنها را در استراتژی محصول خود بگنجانیم؟
در اینجا هفت مرحله ساده برای گنجاندن الزامات غیرعملکردی در نقشه راه پروژه یا محصول شما آورده شده است:
۱- یک لیست ویژگیهای کیفیت بسازید
با درک اینکه “کیفیت” برای شما و مشتری به چه معناست شروع کنید.
برای هر ویژگی یا الزام عملکردی خاص، سعی کنید با پرسیدن از خودتان بفهمید که مشتری به چه چیزی نیاز دارد:
- چه چیزی برای مشتری مهم است؟
- چه ویژگیهایی این ویژگی/محصول را عالی میسازد؟
اگر مشکل دارید، سعی کنید با طوفان فکری مسیر برعکس را در پیش بگیرید: یعنی دریابید چه چیزهایی ویژگی را بد میسازد؟
مثلا:
الزام عملکردی: به عنوان یک کاربر، من میخواهم در صفحه اصلی فرود بیایم تا بتوانم استفاده از محصول را شروع کنم.
چه چیزی آن را عالی میکند؟ اینکه خیلی سریع لود شود.
چه چیزی آن را بد میکند؟ اگر اندازه متن خیلی کوچک باشد، نمیتوان آن را خواند.
اکنون شما دو مورد الزام ویژگی کیفیت (QAR) را کشف کردهاید!
اگر به اطلاعات بیشتری نیاز دارید، از انجام تحقیقات و بررسی بازار برای درک ویژگیهای خوب و بد محصولات مشابه نترسید.
۲- برای هر نیاز، انتظارات روشنی تعیین کنید
اکنون که ایده بهتری در مورد ویژگیهای کیفیتی که میخواهید ارائه دهید دارید، وقت آن است که به موارد دیگر بپردازید و الزامات غیرعملکردی خود را تکمیل کنید.
این شامل کمّی کردن انتظارات کاربر و تبدیل کلمات مبهم به اظهارات محکم و عملی است که میتوانید از آنها محصول خود را بسازید.
بیایید از مثالهای قبلی استفاده کنیم:
قبل ← «اینکه خیلی سریع بارگیری شود.»
بعد ← «صفحه در کمتر از ۱ ثانیه بارگیری میشود»
قبل ← «اگر اندازه متن خیلی کوچک باشد، نمیتوان آن را خواند»
بعد ← «اندازه متن ۱۶ پیکسل خواهد بود»
به یاد داشته باشید که برای درک زمینه و آنچه که مشتری برای دستیابی به آن نیاز دارد، به طور مداوم به الزامات عملکردی خود مراجعه کنید.
۳- تأثیر گستردهتر الزامات غیرعملکردی خود را تجزیه و تحلیل کنید
هیچ پروژهای به صورت مجزا اتفاق نمیافتد. پروژهها، تغییرات و نقشههای راه زیادی حول محور کسبوکار وجود خواهد داشت.
قبل از شروع توسعه، یک قدم به عقب بردارید و اطمینان حاصل کنید که الزامات غیرعملکردی شما به طور ناخواسته باعث ایجاد مشکل برای بخش دیگری از محصول یا زیرساخت گسترده IT شما نمیشود.
در اینجا چند نمونه آوردهایم:
- عملکرد: آیا الزامات عملکردی شما منابع دیگر را تخلیه میکند؟
- امنیت: آیا با استانداردهای مشابه سایر برنامهها کار میکنید؟
- قابلیت استفاده: آیا مشتری شما از قبل با گردش کار سایر محصولات آشنا است؟
- قابلیت نگهداری: آیا فرآیندهای مرکزی برای به روز رسانی محصول وجود دارد؟
- انعطافپذیری: آیا استانداردهایی برای تداوم در سراسر کسب و کار وجود دارد؟
اگر هیچ چیز دیگری نیست، بررسی متقابل الزامات غیرعملکردی با سایر تیمهای پروژه ممکن است به شناسایی الزامات جدیدی که حتی فکرش را هم نمیکردید کمک کند!
جمعبندی
بسیاری از پروژهها شکست میخورند زیرا مدیران آنها فراموش میکنند الزامات غیرعملکردی را در نظر بگیرند. اشتباهات مشابه را مرتکب نشوید و با الزامات غیرعملکردی کنار بیایید، زیرا آنها تفاوت بین کاربران راضی و ناراضی را ایجاد میکنند.
این مقاله، راهنمای کاملی برای گنجاندن الزامات غیرعملکردی در نقشه راه محصول از ابتدا تا انتها در این فرآیند را ارائه میدهد. هنگامی که دید واضحی از آنچه برای کاربران مهم است به دست آوردید، باید به ساختاردهی تحویل الزامات غیرعملکردی از طریق کشف، برنامهریزی، آزمایش و استقرار بپردازید. در پایان، مطمئن خواهید شد که نحوه عملکرد محصول شما به اندازه کاری که انجام میدهد مهم است.
مجموعه
مدیریت پروژه
- هر آنچه باید در مورد زمان انجام و زمان چرخه بدانید
- ساختار تجزیه منابع (RBS) در مدیریت پروژه چیست و چگونه نوشته میشود؟
- نمودار SIPOC چیست و چه کاربردی در مدیریت پروژه دارد؟
- نظریه دو عاملی هرزبرگ چیست و چه کاربردی در مدیریت پروژه دارد؟
- زمان تکت (Takt Time) چیست و چه اهمیتی دارد؟
- اصول مدیریت پروژه بازاریابی چابک
- راهنمای کامل مدیریت پروژه به زبان ساده: چگونه پروژه را قبل از پایان دنیا تمام کنیم! (به همراه دانلود فایل نمونه مدیریت پروژه)
- راهنمای کامل مدیریت پروژه براساس PMBOK
- مروری بر مفهوم پروژه و استاندارد PMBOK
- آموزش و راهنمای کامل مدیریت پروژه براساس PRINCE2
- مدیریت چابک و ناب چه تفاوتهایی دارند؟
- راهنمای کامل اصول مدیریت پروژه
- مدیر پروژه کیست و چه وظایفی دارد؟
- مدیر پروژه فنی کیست و چگونه میتوانیم به این نقش دست یابیم؟
- تفاوت مدیر پروژه و مدیر برنامه در چیست؟
- ۱۶ مهارت ضروری که مدیران پروژه باید داشته باشند
- داشبورد مدیریتی (Executive Dashboard) چیست و چه ویژگیهایی دارد؟
- مدیریت پروژه ساخت و ساز و مدیریت پروژه ساختمانی چیست؟
- معرفی برترین مسئولیتهای مدیر پروژه ساختمانی
- بودجهبندی پروژه چیست و چگونه انجام میشود؟
- تعریف هزینه عملیاتی (OpEx) و هزینه سرمایهای (CapEx)
- سرریز هزینه (Cost Overrun) چیست و چگونه از آن جلوگیری کنیم؟
- دستیار مدیر پروژه (Assistant Project Manager) کیست؟
- فرایند جمعآوری نیازمندیها در پروژه
- مدیریت پورتفولیو پروژه چیست و چه اجزایی دارد؟
- هرآنچه باید در مورد جمعآوری نیازمندیها در مدیریت پروژه بدانید
- راهنمای مدیریت انتشار (Release Management)
- مدیریت تدارکات پروژه چیست و چه اهمیتی در پروژه دارد؟
- راهنمای کامل تعریف، مزایا و روشهای کنترل هزینه (Cost Control)
- کنترل پروژه چیست و چه مراحلی دارد؟
- چرخه عمر پروژه چیست و چه اهمیتی دارد؟
- تعریف انجام شده یا Definition of Done به چه معناست؟
- ساختار شکست کار (WBS) در مدیریت پروژه چیست و چگونه اجرا میشود؟
- مدیریت محدوده پروژه (Project Scope) چیست و چه اهمیتی دارد؟
- منشور پروژه (Project Charter) چیست و چگونه تهیه میشود؟
- چگونه جدول زمانی یا برنامه زمانبندی پروژه را ایجاد کنیم؟
- مدیریت ارزش کسب شده یا EVM چیست و چه اصولی دارد؟
- مدیریت قرارداد (Contract Management): مراحل، چالشها و مزایا
- بهترین مدارک و گواهینامههای مدیریت پروژه در دنیا کدام مدارک هستند؟
- جلسه آغاز پروژه (Project Kickoff Meeting) چیست و چگونه برگزار میشود؟
- تعریف مدیریت وظایف در مدیریت پروژه
- مدیریت وظیفه در مقایسه با مدیریت پروژه؛ کدام برای شما بهتر است؟
- مدیر محصول خوب چه کسی است؟
- ماتریس RACI چیست و چگونه اجرا میشود؟
- برنامه عملیاتی (Action Plan) چیست و چگونه نوشته میشود؟
- ۵ دلیل اینکه باید نرمافزار اکسل را در مدیریت پروژه کنار بگذاریم
- معرفی برترین نرمافزارهای مدیریت پروژه
- معرفی مهمترین مهارتهای مدیریت پروژه
- معرفی برترین متریکهای مدیریت پروژه
- نقش و مسئولیتهای دفتر مدیریت پروژه (PMO) در سازمان چیست؟
- ذینفعان در مدیریت پروژه چه کسانی هستند؟
- راهنمای کامل مدیریت ذینفعان پروژه
- راهنمای کامل معرفی برنامه مدیریت پروژه (Project Management Plan)
- استراتژی محصول چیست و چگونه تدوین میشود؟
- نقشه راه محصول (Product Roadmap) چیست و چگونه ایجاد میشود؟
- چگونه از شکست فاجعه بار در پروژه جلوگیری کنیم؟
- نکات کلیدی که باید در مورد اکشن پلن (Action Plan) و نحوه نوشتن آن بدانید
- کاربرد هوش مصنوعی (AI) در مدیریت پروژه
- نمودار Burndown چیست و چه انواع و محدودیتهایی دارد؟
- برون سپاری فرایند دانش چیست و چگونه انجام میشود؟
- یکپارچهسازی و مدیریت خدمات (SIAM) چیست و چه کاربردی در کسب و کار دارد؟
- معرفی یک چارچوب ۳ مرحلهای برای نوشتن اهداف پروژه بهتر
- نظریه انگیزش مزلو چیست و چه کاربردی در مدیریت پروژه دارد؟
- مدل WSJF برای اولویتبندی کارهای پروژه و محصول
- چرا تیمهای چابک به منشور تیم (Team Charter) نیاز دارند؟
- چارچوب کریستال در روش چابک چیست؟
- بررسی برآورد از پایین به بالا و کاربرد آن در مدیریت پروژه
- روش نمودار تقدم (PDM) چیست و چگونه در مدیریت پروژه استفاده میشود؟
- اصل هرم چیست و چگونه در ارائه به ما کمک میکند؟
- راهنمای گام به گام ایجاد نقشه راه محصول
- نظریه ذینفعان چیست و چه کاربردی در کسب و کار دارد؟
- تحقیق کاربر در UX چابک: چگونه UX و توسعه چابک دست به دست هم میدهند؟
- ۵ مورد از رایجترین نشانههای شکست پروژه و نحوه جلوگیری از آنها
- بک لاگ چیست و چرا در مدیریت پروژه اهمیت دارد؟
- اصلاح بکلاگ چیست و به چه منظور انجام میشود؟
- الزامات غیرعملکردی کدامند و چگونه میتوان آنها را در پروژه گنجاند؟