هنر برنامه نویسی

چرا و چطور برنامه نویس خوبی باشیم ؟!

هنر برنامه نویسی

چرا و چطور برنامه نویس خوبی باشیم ؟!

۱۵ مطلب در ارديبهشت ۱۳۹۱ ثبت شده است

تعریف User story

فهیم آیت | چهارشنبه, ۲۷ ارديبهشت ۱۳۹۱، ۰۹:۱۴ ب.ظ | ۰ نظر

تعریف :

user story یا روایت کاربر ، شامل جملاتی از قول کاربر است که بخشی از کار وی یا نیاز کاربر از نرم افزار را توصیف می کند.

این مجموعه جملات ( که شباهت هایی با UseCase در متدولوژی هایی مانندRUP دارد ) سنگ بنای طراحی در متدولوژی های چابک است.

user Story ها ، جملات ساده ای هستند که از دید کاربر ، نیازمندی های سطح بالای ( و نه فنی) نرم افزار را مشخص می کنند.

 

نحوه طراحی :

روایت کاربر باید در قالب جمله های کوتاه و حتی الامکان غیر فنی و سطح بالا بیان شوند. همچنین ، اولیت بندی این روایت(در صورت امکان از جانب کاربر) اهمیت ویژه ای دارد.  سپس هزینه پشتیبانی (یا تولید) هر user Story توسط تیم یا فرد مسئول تخمین زده می شود.

اینکه یک userstory چقدر باید کوچک باشد (از نظر هزینه) بسته به اندازه Iteration ها در روال پیاده سازی سیستم است.

یک user story باید آنقدر کوچک باشد که در یک Iteration قابل پیاده سازی باشد.

قالب استاندارد user story ها به این صورت می باشد :

"As a <role>, I want <goal/desire> so that <benefit>"

این قالب به سادگی مشخص می کند که هر user story از دید کدام نقش در سیستم است و چه فوایدی برای سیستم دارد.

 

user story ها ، در مراحل بعدی تکمیل می شوند. البته تکمیل به معنی تغییر صورت user story نیست. به این معنی است که در مصاحبه های بعدی با کاربران ، فاز های طراحی و پیاده سازی ، جزئیات دقیق تری به این روایات اضافه می شوند و گاها با کمک flowchart ها و activity diagram ها شاخ و برگ بیشتری پیدا می کنند،

در مدل سنتی (بدون استفاده از ابزار های طراحی) برای هر user story یک کارت در نظر گرفته می شود که در روی آن کارت ، اصل روایت نوشته می شود و پشت آن توضیحات و جزئیات بیشتر.

 

در کنار User story دو مفهوم دیگر نیز بکار برده می شود : Epic و Theme

Epic:

یک UserStory بزرگ است که به علت بزرگی ، امکان پیاده سازی آن در یک Iteration وجود ندارد ، لذا در مراحل طراحی آن را به User story های کوچک تقسیم می کنند. برخی از منابع استفاده از Epic های تو در تو را نشانه اشتباه در انتخاب متودولوژی می دانند. اینکه سیستم آنقدر گسترده و پیچیده باشد که نیاز به چندین لایه تو در تو از Epic ها داشته باشد ، می تواند نشانه این باشد که برای پیاده سازی چنین سیستمی باید از متدلوژی های سنگین تر ( و نه چابک) استفاده کزد.

 

Theme :

مجموعه ای از User Story های مرتبط که برای طراحی release های بکار می روند. theme ها مشخص می کنند که در هر نسخه از نرم افزار ، کدام User Story ها باید تکمیل و تست شده باشند تا آن زیر سیستم برای کاربران قابل استفاده باشد. به عنوان مثال ، در یک سیستم مدیریت پروژه ، UserStory های تعریف افراد و تعریف پروژه در یک Theme قرار می گیرند. چرا که برای استفاده از زیرسیستم تعریف و اطلاعات پایه سیستم مدیریت پروژه ، تا زمانی که کاربر ها تعریف نشده باشند ، تعریف پروژه معنایی ندارد.

 

منابع :

http://www.agilemodeling.com/artifacts/userStory.htm

http://blog.assembla.com/assemblablog/tabid/12618/bid/5543/Do-s-and-Don-ts-for-User-Stories-Use-Cases-Scenarios.aspx

http://johnnyholland.org/2009/08/user-stories-a-strategic-design-tool/

http://en.wikipedia.org/wiki/User_story

  • فهیم آیت