FutureForgeFutureForge

FutureForge services

  • Product developmentFrom problem to a product that works in the real world.
  • Full-stack developmentBuild frontend, API, and data as one product.
  • Engineering auditBefore you spend more, know the real state of the system.
  • Architecture consultingClarify the path before an expensive technical decision.
  • Infrastructure & deploymentDeploy the product so it stays reliable after launch.
  • AI in productWe do not add AI for show — we add it to solve a problem.
WorkNotesPricingAbout
Start a conversation
  1. Home
  2. /Notes
  3. /Notes
FutureForge

Product engineering studio — design, build, and deploy software.

Services

WordPress websitesCustom developmentProduct engineeringInfrastructure & deploymentArchitecture consultingAI in product

How to choose

NotesPricingEstimate project costCompare approachesPortfolioAboutContact

Contact

hello@futureforge.ir

Have something to build?

Share what you need and we will talk through the development path and next step.

Start a conversation

© 2026 FutureForge. All rights reserved.

PrivacyTerms of use
HomeWorkStartContact
Product engineering

شرح نیازمندی نرم‌افزار قابل‌تخمین: الگو و چک‌لیست

SE
Soheil Ebrahimpour
·Oct 18, 2026·4 min read
شرح نیازمندی نرم‌افزارنیازمندی‌هابرآورد نرم‌افزارمعیار پذیرشبک‌لاگ
برگه‌های یادداشت چسبان روی تخته‌ای برای مرتب‌سازی نیازمندی‌های پروژه

برآورد خوب از تعریف خوب شروع می‌شود. الگوی هفت‌بخشی شرح نیازمندی با مثال فرضی، بر پایهٔ مخروط عدم‌قطعیت McConnell و معیارهای Wake و Scrum Guide.

«برآورد دقیق بدهید» وقتی ممکن است که چیزی دقیق تعریف شده باشد. این مقاله ساختاری برای شرح نیازمندی می‌دهد که تیم فنی بتواند روی آن سؤال بپرسد و برآورد کند. هیچ استاندارد واحدی را تقلید نمی‌کند؛ الگو توصیهٔ نویسنده است و فقط ادعاهای مربوط به برآورد و داستان‌ها از منابع نقل شده‌اند.

چرا تعریف مبهم، برآورد مبهم می‌دهد؟

Steve McConnell در توضیح «مخروط عدم‌قطعیت» می‌نویسد دقت برآورد به میزان پالایش تعریف نرم‌افزار بستگی دارد: هر چه تعریف دقیق‌تر، برآورد دقیق‌تر. او می‌گوید تغییرپذیری برآورد از تغییرپذیری خود پروژه می‌آید و تنها راه کم‌کردنش کم‌کردن همان تغییرپذیری است. یعنی یک هفتهٔ بیشتر وقت دادن به تیم برآوردکننده، بدون روشن‌تر شدن تعریف، دقت را بالا نمی‌برد. برای مرحلهٔ پیش از نوشتن نیازمندی‌ها هم برنامه‌ریزی پروژهٔ نرم‌افزاری پیش از نوشتن کد مفید است.

الگوی هفت‌بخشی (توصیهٔ نویسنده)

  1. مسئله و هدف: چه چیزی امروز خوب کار نمی‌کند و موفقیت را چگونه می‌فهمیم؟
  2. کاربران و نقش‌ها: چه کسانی، با چه سطح دسترسی؟
  3. جریان‌های اصلی: هر جریان از شروع تا پایان، شامل مسیرهای خطای مهم.
  4. محدودیت‌ها: سیستم‌های بیرونی، قوانین، مهلت، فناوری‌های الزامی.
  5. معیار پذیرش: برای هر جریان اصلی چند سناریوی قابل‌آزمون.
  6. خارج از محدوده: چیزهایی که صریحاً قرار نیست ساخته شوند.
  7. سؤال‌های باز: ندانسته‌ها، با مسئول و موعد پاسخ.
هفت بلوک ساختار شرح نیازمندی
نمودار مفهومی: بخش‌های شرح نیازمندی.

مثال فرضی: ثبت درخواست مرخصی

مثال زیر کاملاً فرضی است و فقط ساختار را نشان می‌دهد.

  • مسئله: درخواست‌ها از طریق پیام‌رسان جمع می‌شود و پیگیری وضعیت سخت است.
  • کاربران: کارمند، مدیر مستقیم، مسئول منابع انسانی.
  • جریان: کارمند درخواست می‌دهد؛ مدیر تأیید یا رد می‌کند؛ منابع انسانی وضعیت را ثبت می‌کند.
  • محدودیت: فهرست کارمندان از سامانهٔ موجود منابع انسانی خوانده شود.
  • پذیرش (Given-When-Then، طبق توضیح Fowler): با فرض اینکه کارمند وارد شده و مدیر مستقیم دارد، وقتی درخواست را ثبت کند، آنگاه مدیر مستقیم او آن را در فهرست «در انتظار» ببیند.
  • خارج از محدوده: محاسبهٔ حقوق، سامانهٔ حضور و غیاب.
  • سؤال باز: اگر مدیر در دسترس نباشد، تأییدکنندهٔ جانشین کیست؟ (مسئول: منابع انسانی)

چک‌لیست قابل‌تخمین‌بودن

Bill Wake در توضیح مخفف INVEST می‌گوید داستان خوب باید «قابل‌تخمین» باشد: لازم نیست برآورد دقیق باشد، ولی قابل‌برآوردبودن به مذاکره‌شدن داستان، اندازهٔ آن و تجربهٔ تیم بستگی دارد، و گاهی باید بخشی را به یک spike زمان‌محدود برای کسب اطلاعات جدا کرد. او همچنین می‌گوید داستان خوب «قابل‌مذاکره» است، یعنی قرارداد صریح برای ویژگی‌ها نیست و جزئیات در حین کار شکل می‌گیرد، و «کوچک» است (معمولاً حداکثر چند نفر-هفته کار). این‌ها دیدگاه‌هایی از دنیای چابک‌اند؛ برای قرارداد ثابت‌قیمت باید جزئیات بیشتری مکتوب شود. Scrum Guide هم می‌گوید آیتم‌هایی که در یک اسپرینت Done می‌شوند برای انتخاب آماده‌اند و معمولاً بعد از refinement، یعنی شکستن به آیتم‌های کوچک‌تر و دقیق‌تر با توضیح، ترتیب و اندازه، به این حالت می‌رسند. اندازه‌دادن با کسانی است که کار را انجام می‌دهند.

  • هر جریان به قطعه‌هایی شکسته شده که هر کدام قابل‌نمایش به کاربر است.
  • هر قطعه دست‌کم یک معیار پذیرش دارد.
  • ورودی‌های ناشناخته با spike یا سؤال باز مشخص شده‌اند، نه حدس.
  • برای نوشتن داستان‌ها از قالب مناسب استفاده شده؛ برای آن User Story چیست؟ را ببینید.

سؤال‌های باز را پنهان نکنید

بخش «سؤال‌های باز» به برآورد صادق‌تر کمک می‌کند: هر ندانسته یا پاسخ می‌خواهد یا در برآورد به‌صورت بازه و فرض ثبت می‌شود. اگر برآورد اولیه می‌خواهید، برآوردگر پروژه نقطهٔ شروع است، نه قول قطعی.

اشتباه‌های رایج

  • فهرست ویژگی‌ها بدون هدف و بدون معیار پذیرش.
  • نوشتن راه‌حل فنی به‌جای مسئله، که فضای طراحی را می‌بندد.
  • نبود بخش «خارج از محدوده»؛ هر طرف چیز دیگری فرض می‌کند.
  • اینکه ندانسته‌ها «بعداً مشخص می‌شود» و در قیمت نمی‌آید.

اگر می‌خواهید پیش‌نویس شرح نیازمندی خودتان را با یک تیم بررسی کنید، می‌توانید آن را در صفحهٔ شروع پروژه توضیح دهید؛ ارسال فرم تعهدی ایجاد نمی‌کند.

منابع و مراجع

  • Software Development's Cone of Uncertainty — Steve McConnell، Construx Software، White Paper، Version 1، January 2010.
  • INVEST in Good Stories, and SMART Tasks — Bill Wake (XP123).
  • The Scrum Guide — Ken Schwaber و Jeff Sutherland، نسخهٔ نوامبر ۲۰۲۰.
  • Given When Then — Martin Fowler، ۲۱ اوت ۲۰۱۳.

Author

SE

Soheil Ebrahimpour is the founder of FutureForge. He works on product design, architecture, and getting custom software into production.

Related notes

Related notes

Categories

Related services

From note to project

If this topic is close to your product or system, we can talk about the real scope.

If you are unsure about architecture or the build path, we can talk about the project.

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Soheil Ebrahimpour
Notes
قرارداد توسعهٔ نرم‌افزار: تحویل‌دادنی‌ها و معیار پذیرش را چطور بنویسیم؟
هزینهٔ ساخت وب‌اپلیکیشن را چگونه برآورد کنیم؟ روش بازه و سناریو
توکن‌های طراحی چیستند؟ هم‌نام‌سازی Figma و کد
سیستم طراحی کوچک برای تیم وب: چه زمانی ارزش دارد؟
نرم‌افزار قدیمی را از نو بنویسیم یا کم‌کم نوسازی کنیم؟

Product engineering

قرارداد توسعهٔ نرم‌افزار: تحویل‌دادنی‌ها و معیار پذیرش را چطور بنویسیم؟

Oct 18, 2026

Product engineering

هزینهٔ ساخت وب‌اپلیکیشن را چگونه برآورد کنیم؟ روش بازه و سناریو

Oct 18, 2026

Product engineering

توکن‌های طراحی چیستند؟ هم‌نام‌سازی Figma و کد

Oct 20, 2026

Product engineering

سیستم طراحی کوچک برای تیم وب: چه زمانی ارزش دارد؟

Oct 20, 2026

Product engineering

نرم‌افزار قدیمی را از نو بنویسیم یا کم‌کم نوسازی کنیم؟

Oct 19, 2026
All notes248
Software architecture15
Glossary37
Operations87
Product engineering97
Web guide12
Product engineering
Full-stack engineering
Engineering audit
Architecture consulting
Infrastructure and deployment
Start a conversation
Free tools
Start a conversation