اپیک، استوری و تسک: فرقشان چیست؟
اپیک، استوری و تسک هر کدام یک سطح از کارند. در این یادداشت با یک مثال ساده فرقشان را میبینیم و یک قاعدهی کوتاه برای تشخیصشان یاد میگیریم.

در جلسهی برنامهریزی کسی میگوید «این که استوری نیست، تسک است» و بقیه سر تکان میدهند، در حالی که شاید خیلیها مطمئن نباشند مرز دقیق کجاست. اپیک (Epic)، استوری (Story) و تسک (Task) در تیمهای نرمافزاری مدام شنیده میشوند و مدام هم جایشان با هم عوض میشود.
سادهترین راه برای جدا کردنشان این است که ببینیم هر کدام به چه سؤالی جواب میدهد. اپیک میگوید به چه هدفی میخواهیم برسیم. استوری میگوید کاربر چه چیزی گیرش میآید. تسک میگوید تیم دقیقاً چه کاری باید انجام دهد. در ادامه همین را با یک مثال باز میکنم.
سه سطح، یک مثال
فرض کنید سازمانی میخواهد روند کاغذی درخواست مجوز را به یک سامانهی آنلاین تبدیل کند. این مثال را تا آخر نگه میداریم. نمودار زیر همهچیز را یکجا نشان میدهد: یک اپیک در بالا، چند استوری زیر آن، و چند تسک زیر یکی از استوریها.
یک اپیک، استوریهای آن و تسکهای زیر استوری اول
اپیک (Epic): هدف بزرگ
اپیک یک هدف بزرگ است که برای کسبوکار فایده دارد و با یک کار یکروزه تمام نمیشود؛ معمولاً چند اسپرینت (Sprint) یا چند هفته طول میکشد. در مثال ما اپیک این است: «متقاضیها بتوانند بدون مراجعهی حضوری و بدون کاغذ، درخواست مجوز بدهند.»
چه کسی مینویسد؟ معمولاً مالک محصول یا مسئول کسبوکار، با کمک کسانی که خودشان با مشکل درگیرند.
چقدر طول میکشد؟ چند اسپرینت یا چند هفته.
کی تمام میشود؟ وقتی هدف کسبوکار واقعاً به دست آمده باشد، نه فقط وقتی چند صفحه ساخته شده است.
استوری (Story): یک تکه فایده برای کاربر
استوری، یا همان داستان کاربر، یک تکهی مشخص از کار است که از دید کاربر معنی دارد. معمولاً آن را با این الگو مینویسند: «من بهعنوان …، میخواهم … تا …». یعنی سه چیز را روشن میکنیم: چه کسی (نقش)، چه چیزی میخواهد، و برای چه (چه فایدهای میبرد).
مثلاً: «من بهعنوان متقاضی میخواهم درخواست مجوزم را آنلاین ثبت کنم تا مجبور نباشم برای تحویل فرم کاغذی به اداره بروم.» اپیک ما سه استوری دارد: ثبت آنلاین درخواست، پیگیری وضعیت درخواست، و اطلاعرسانی هنگام تغییر وضعیت.
چه کسی مینویسد؟ مالک محصول؛ بعد با تیم روی جزئیاتش گفتوگو میشود.
چقدر طول میکشد؟ باید در یک اسپرینت تمام شود.
کی تمام میشود؟ وقتی معیارهای پذیرش (Acceptance Criteria) برقرار شوند. معیار پذیرش یعنی چند شرط ساده که با آن میفهمیم استوری درست کار میکند؛ مثلاً «درخواست بدون مدارک لازم ثبت نشود» و «بعد از ثبت، پیام تأیید به متقاضی نشان داده شود».
تسک (Task): کاری که تیم باید انجام دهد
تسک یک کار فنی یا اجرایی است که برای تمام شدن استوری لازم است. تسک بهتنهایی برای کاربر ارزشی ندارد. متقاضی اهمیتی نمیدهد که «API بارگذاری فایل» ساخته شده یا نه؛ فقط میخواهد بتواند مدرکش را ضمیمه کند. زیر استوری «ثبت آنلاین درخواست» این تسکها را داریم: طراحی فرم، ساخت API بارگذاری فایل، نوشتن قواعد اعتبارسنجی، و آزمایش با مدارک واقعی.
چه کسی مینویسد؟ خودِ اعضای تیم که کار را انجام میدهند، معمولاً موقع برنامهریزی اسپرینت.
چقدر طول میکشد؟ کار یک نفر است و بین چند ساعت تا یکیدو روز طول میکشد.
کی تمام میشود؟ وقتی خودِ آن کار انجام و بررسی شده باشد.
مقایسهی سریع
اگر یک نگاه کلی بخواهید:
اندازه: اپیک یک هدف بزرگ است، استوری یک تکه فایده برای کاربر، و تسک یک کار مشخص.
صاحب کار: اپیک با مالک محصول یا مسئول کسبوکار است، استوری با مالک محصول و تیم، و تسک با کسی که انجامش میدهد.
زمان: اپیک چند اسپرینت یا چند هفته، استوری حداکثر یک اسپرینت، و تسک چند ساعت تا یکیدو روز.
تمام شدن: اپیک وقتی هدف کسبوکار برآورده شود، استوری وقتی معیارهای پذیرش برقرار شوند، و تسک وقتی کار انجام و بررسی شود.
چهار اشتباه رایج
تسک را به شکل استوری نوشتن. «ساخت API بارگذاری» استوری نیست، چون کاربری در آن دیده نمیشود. اگر کاربر نه آن را میبیند و نه برایش مهم است، تسک است.
استوریای که در یک اسپرینت جا نمیشود. چنین چیزی احتمالاً اپیکی است که اسمش را استوری گذاشتهایم. آن را به چند استوری کوچکتر بشکنید.
اپیک بدون هدف کسبوکار. «بازسازی پایگاه داده» فقط فهرستی از تسکهاست. اپیک باید بگوید چه چیزی برای کسبوکار یا کاربر بهتر میشود.
اپیک غولآسایی که هیچوقت بسته نمیشود. وقتی هر ایدهی تازه را زیر «فاز دو» میریزیم، دیگر نمیشود گفت چه چیزی تحویل دادهایم. اپیک را وقتی هدفش برآورده شد ببندید و برای هدف بعدی اپیک تازه بسازید.
یک قاعدهی ساده برای تشخیص
اگر کاربر میتواند آن را ببیند و برایش اهمیت دارد، استوری است. اگر فقط تیم به آن اهمیت میدهد، تسک است. اگر برای تحویلش چند استوری لازم است، اپیک است.
این قاعده کامل نیست، ولی بیشتر بحثهای جلسهی برنامهریزی را در یک دقیقه تمام میکند.
تیم شما کارها را چطور تقسیم میکند؟ خوشحال میشوم بدانم چه روشی برایتان جواب داده است.


