در توسعه نرمافزار چابک، داستان کاربر (User Story) توضیحی مختصر و ساده از یک ویژگی یا عملکرد است که از دیدگاه کاربر نوشته شده است. بسیاری از کارشناسان چابک (Agile) نیز یک داستان کاربر را به عنوان کوچکترین واحد کار توسعه محصول توصیف می کنند .داستان کاربر به شما می گوید که مخاطبان شما چه کسانی هستند، چه چیزی می خواهند و چرا؟
داستان کاربر کمک میکند تا یک توصیف ساده از یک نیاز را در اختیار داشته باشیم.
در داستان کاربر، تمرکز از روی نیازها برداشته شده و به تجربه کاربران و نظرات آن ها می پردازد.
این وسوسه انگیز است که فکر کنیم داستان های کاربر در بیان ساده آن ، نیازمندی های سیستم نرم افزاری هستند. اما اینطور نیست.
یکی از مؤلفه های کلیدی توسعه نرمافزار چابک، قرار دادن افراد در اولویت است و داستان کاربر، کاربران نهایی را در مرکز گفتگو قرار میدهد. این داستان ها از زبان غیر فنی برای ارائه نیاز ها و کمبود های نرم افزار جهت استفاده توسط تیم توسعه به کار می روند. پس از خواندن داستان کاربر، تیم توسعه میداند که چرا میسازند، چه چیزی میسازند و چه ارزشی ایجاد میکند.
داستان های کاربر یکی از اجزای اصلی یک برنامه چابک است. آنها به ارائه یک چارچوب متمرکز بر کاربر برای کار روزانه کمک می کنند که باعث ایجاد همکاری، خلاقیت و به طور کلی محصول بهتر می شود.
با استفاده از روش داستان کاربر، با هزینه و زمان کمتر ، نمونه اولیه پلتفرم تولید می شود . سپس به سراغ تجربه و داستان های کاربران از پلتفرم می رود.نقص های ثبت شده و نیاز کاربران برای توسعه و گسترش پلتفرم شناسایی می شود و مجدد پلتفرم توسعه داده شده و بارگذاری می شود.
به این صورت، داستان کاربر، باعث صرفه جویی در زمان تولید شده و سپس طبق نظرات کاربران اصلاح میشود و پیشرفت میکند. به همین شکل، داستان کاربر به تیم ها کمک میکند تا محصول باکیفیتی را سریع تر در دسترس کاربر قرار دهد که البته با سلیقه کاربر هم تناسب دارد.
داستان کاربر روشی ساده برای پاسخگویی به سوالاتی از قبیل " چه کسی " ، چه چیزی ، " چرا " درباره محصول مورد نظر می باشد.این سوالات نیاز ها ، دلایل و سلایق کاربران را در استفاده از محصول و یا ویژگی خاصی از آن را بیان می کنند.این داستان ها کوتاه هستند و می بایست در زمان کمی نیاز کاربران و علت آن را بیان کنند.
هدف یک داستان کاربر این است که بستر لازم برای ارزش سازی برای مشتریان را فراهم کند. توجه داشته باشید که «مشتریان» لزوما به معنای سنتی کاربران نهایی و بیرونی تعریف نمی شوند بلکه می توانند مشتریان داخلی یا همکارانی در سازمان شما باشند که به تیم شما وابسته هستند.
این دست از داستان ها سازگاری کاملی با فریمورک های مختلف مدیریت چابک مانند Scrum و Kanban دارند. در اسکرام، sprint ها است که تیم توسعه به سراغ داستان های کاربران میرود. در کانبان نیز، تیمها داستان های کاربران را در BackLog محصول قرار داده و سپس از workflow خود موارد را پیگیری می کند.همین رسیدگی به داستان های کاربران است که باعث میشود تیم های اسکرام قادر به دستیابی به تخمینهای زمانی دقیق تر، برنامهریزی بهتر برای sprint ها و چابکی هرچه بیشتر باشند. به لطف داستان ها، تیم های کانبان میتوانند نحوه رسیدگی به کارهای در جریان (Work-in-Progress یا به اختصار WIP) را بیاموزند و جریان کاری خود را بیش از پیش بهبود دهند.
داستان های کاربران را ضمنا میتوان بلوک های سازنده فریمورک های بزرگ تر چابک مانند « اِپیکها » (Epics) و « ابتکارها » (Initiatives) به حساب آورد. اپیک ها وظایفی بزرگ هستند که به مجموعه ای از داستان ها تقسیم میشوند و از سوی دیگر، چندین اپیک با قرارگیری کنار یکدیگر، یک ابتکار را شکل میدهند. این ساختارهای بزرگتر باعث حصول اطمینان از این میشوند که امور روزمره تیم توسعه در مسیر اهداف تعیین شده سازمان می باشد.
داستانهای کاربر معمولاً از یک الگوی ساده پیروی می کنند:
من به عنوان یک < نوع کاربر > ، < نیاز - هدف > را می خواهم تا < چند دلیل >.
عموما داستان های کاربر غیر رسمی نوشته می شود تا تمرکز را از نوشتن درباره ویژگی ها به بحث در مورد آن ها تغییر دهد. در واقع این بحث ها مهمتر از هر متنی است که نوشته شود.
داستان کاربری تنها نیازهای ضروری را پاسخ می دهد:
در ادامه میخواهیم درباره اینکه چه کسی باید داستان کاربران را بنویسد صحبت کنیم. آیا مالک محصول باید داستان کاربر را بنویسد یا هر کسی می تواند داستان های کاربری بنویسد.
این مسئولیت مالک محصول است که اطمینان حاصل کند که یک داستان کاربر در BackLog محصول در سیستم چابک وجود داشته باشد تا خوراکی برای بحث وجود داشته باشد، اما این بدان معنا نیست که مالک محصول کسی است که آن ها را می نویسد. در طول یک پروژه چابک خوب، باید انتظار داشته باشید که داستان های کاربری توسط هر یک از اعضای تیم نوشته شود.
به عنوان کاربر اپلیکیشن X ، می خواهم تمامی قبوض خودم را در یک سوپر اپلیکیشن پرداخت کنم تا بتوانم راحت تر امور مالی و بانکی خودم را مدیریت کنم.
به عنوان کاربر بازدید کننده سایت ، می خواهم از کالاهای پر فروش و تخفیف دار زودتر باخبر شوم ، زیرا در حراج سفارش دادن برایم به صرفه است.
به عنوان مسافر تاکسی اینترنتی ، می خواهم حق انتخاب در مدل خودروی کرایه شده خودم داشته باشم ، زیرا می خواهم به مهمانی مهمی بروم و آسایش ، تمیز بودن خودرو و یا جنسیت سفیر تاکسی برایم اهمیت دارد.
منابع :
1-https://www.atlassian.com/agile/project-management/user-stories
2-https://karokasb.org/user-story