بیان مناسب داستانهای کاربری، کار ساده ای نیست. گاهی نویسندگان داستانهای کاربری در دام داستانهای کاربری بزرگ گرفتار می شوند. داستانهای کاربری بزرگ ، باعث ایجاد مشکلاتی در سطح برنامه ریزی، اجرا و تحویل می شوند و قاعده INVEST را مکررا نقض می کنند. اما چه کنیم که داستانهای کاربری بزرگ را به داستانهایی کوچکتر تقسیم کنیم؟ نوشتار زیر 15 پیشنهاد است برای همین منظور.

1.     می توان برای استخراج داستانهای کوچک کاربری از دل یک داستان بزرگ، بر یک نقش ویژه، یا عمل یک شخص خاص متمرکز شد. (بهتر است اول نقشهای کاربران را بشناسیم، سپس به داستانهای آنها توجه کنیم – Jeff Patton) مثلا: کاربر تازه وارد، کاربر شبکه اجتماعی، پزشک عمومی و ...

مثال : می توان به جای این داستان کاربری

Error handling.
User friendly error messages
detailed stack trace in log file
unique error code displayed to user and in log file

 سه داستان کاربری دیگر نوشت:

  • As a user I want to see an error message I can understand when something goes wrong.
  • As a programmer I want to see the full stack trace in the log file for any exception thrown during run-time so that I can better debug error situations.
  • As a programmer I want to show the user a unique error situation identifier so that I can locate the relevant portion of the log file faster and more reliably.

 

2.     می توان به جای تمرکز بر جنبه های عالی کاربرد پذیری و سهولت استفاده، ابتدا به کاربردی بودن داستان تمرکز کرد. به عبارت دیگر اول چیزی را بسازیم که کار کند (Utility) و به کاربر در رسیدن به هدفش کمک کند و سپس آن را زیبا، عالی و استفاده از آن را آسان کنیم (usability).

مثلا می توان به جای این داستان کاربری

As a beginning photographer I want to get recommended a camera kit to buy so that I don’t need to spend hours reading reviews to figure out which camera would suit me well.

نوشت:

  • As a beginning photographer I want to see a numeric sales rank so that I can better decide which camera to buy by comparing the sales of my alternatives.        
  • As a beginning photographer I want to see a numeric sales rank grouped by buyer expertise level so that I can better decide which camera to buy by comparing the sales of my alternatives.
 

3.     می توان یک داستان کاربری را با شکستن آن به محدوده هایی مانند "ایجاد"، "به روز رسانی" و یا "حذف" به داستانهای کوچکتری شکست.

مثلا می توان این داستان کاربری را

  • As a shop keeper I want to manage the products being sold in my online store so that I can sell what people want to buy.

تبدیل کرد به

  • As a shop keeper I want to add and remove products from my online store so that I can sell what people want to buy.
  • As a shop keeper I want to edit product details in my online store so that I can avoid recreating a product to fix a typo etc.

 

4.     می‌توان به جای اینکه یک داستان شامل سناریوی اصلی (Main Success Scenario) و روالهای استثناء (Exception Flow) باشد، صرفا از یکی از این روندها در بیان داستان کاربری استفاده شود و روالهای دیگر را به داستانهای دیگر منتقل کرد.

5.     می توان با توجه به اقلام اطلاعاتی پنهان در بطن یک داستان کاربری بزرگ، به نوشتن داستانهای کاربری کوچک تر اقدام کرد. مثلا به جای این داستان کاربری :

As a user looking for camera accessories I want to search for products so that I can avoid browsing through the whole product catalog.

می توان نوشت:

  • As a user looking for camera accessories I want to search for products by their name and description so that I can avoid browsing through the whole product catalog.
  • As a user looking for camera accessories I want to search for products by their price and availability so that I can avoid browsing through items I wouldn’t buy anyway.

 

6.     می‌توان بر اساس الگوریتمهای ساده تر داستانهای کاربری کوچکتری نوشت. الگوریتمهای ساده تر یعنی متغییرهای کمتر و متغییرهای کمتر یعنی تمرکز روی متغییرهای مهم تر در الگوریتم.

7.     می‌توان یک داستان کاربری را به نحوی شکست که پیاده سازی یک جزء شکسته شده با خرید و یا استفاده از یک کامپوننت آماده ساده تر شود به جای اینکه همه داستانها را خودمان پیاده سازی کنیم.

8.      می‌توان داستان کوچکتری نوشت وقتی که از تکنولوژیهایی که موجب زحمت در پیاده سازی و وابستگی به شرکت ارائه دهنده تکنولوژی می شوند، اجتناب کرد.

9.     می‌توان داستانهای کاربری را کوچکتر کرد وقتی که به جای مکانیزه کردن همه ی روندها توافق کنیم که بعضی از آنها را دستی انجام داد.

10. می‌توان داستان کاربری کوچکتری داشت وقتی که پردازش دسته ای(Batch) جای پردازش آنلاین را بگیرد. چونکه یک سیستم پردازشی دسته ای کنش مستقیمی با کاربر ندارد.

11. می‌توان در مقابل بیان سفارشی شده و ویژه و منحصر به یک نوع خاص از یک داستان کاربری ، یک بیان عام (Generic) برای نوشتن داستان استفاده کرد.

12. می‌توان داستان کاربری کوچکتری داشت وقتی که انواع سخت افزارها، سیستم عاملها و کلاینت های قابل پشتیبان، محدود و کم شود.

13. می‌توان یک داستان کاربری را از بطن شرط قبول (Acceptance Criteria) داستان کاربری دیگری استخراج کرد.

14. می‌توان گاهی به جای استفاده از واژه "چند" در متن داستان کاربری گفت "یک".

15. می‌توان با بررسی دقیق تر متن داستان کاربری به دنبال عبارتهایی مانند "و"، "یا"، "اگر" گشت. با کمی تامل می توان داستانهای جزیی تری یافت و آنها را از این داستان کاربری به داستانهای مستقل دیگری منتقل کرد.




منابع و کسب اطلاعات بیشتر: