حاج قربان و سازش

  • یوسف مهرداد بی‌بالان

پیش گفتار:
حاج قربان سلیمانی (۱۲۹۹ – ۳۰ دی ۱۳۸۶)، بخشی و نوازنده دوتار و خواننده موسیقی محلی شمال خراسان بود.

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

می گفت: «وقتی ساز می زنم همه چیز را از یاد می برم. در وضعیت معمولی نشستن برایم سخت است؛ نیم ساعتی که می نشینم، خسته می شوم. اما ساز که می زنم؛ تو بگو دوساعت؛ سه ساعت می زنم. دیگر حواسم به چیز دیگری نیست. من با سازم حرف می زنم. سازبه من می‌گوید؛ حالا بزن یا نزن. نمی دانم او ساز من است یا من ساز اووقتی که ساز و نوایش آدم را گیر بیندازد دیگر نمی‌توانی از چنگش آزاد شوی. در این حال است که از خود بی خود می‌شوم، حساب زمان از دستم در می‌رود و تمام بدنم خیس عرق می‌شود. سیم‌های ساز جان می‏گیرند و با هر پنجه من به فریاد و لرزه در می‌آیند.»

حاج قربان رابطه عجیبی با سازش داشت، از ماجرای اجرایش در سال‌های دهه شصت خاطره‌ای جالب نقل کرده است: « وقتی به ساز نگاه کردم، دیدم که ساز با حالتی شگفت به من چشم غره می‌رود. به پسرم گفتم این ساز امروز خیلی غرور دارد و من نمی توانم حریفش شوم. پسرم گفت چاره‌ای نداری باید روی صحنه بروی. مردم منتظرند. به روی صحنه رفتم. وقتی بر ساز زخمه زدم حال خودم را نفهمیدم. گویی من از زمین می زدم و او از آسمان جواب می داد.» به نقل از اینجا

من در سالهای دور خاطره ای خوانده بودم بسیار جالب از آن مرحوم و آنهم در مورد قهر سازش بود که ازش سوال کرده بودند که شده سازت باهات قهر کنه گفته بود که بله و یه روز ساز با من قهر کرد و هر چه خواستم بنوازنم نشد که نشد و یه روز که ساز با من بود چنان غوغائی کرد که حضار در آن جلسه شاید دقایق بسیار زیادی رو به تشویق من پرداختند . به نقل از اینجا

گفتار:
خدا رحمت کند حاج قربان را. چه عاشقانه درباره‌ی سازش سخن گفته است.
هر چند من و سماموس، هیچ شباهتی به استاد بزرگ، حاج قربان و سازش نداریم، اما اتفاقات چند وقت اخیر مرا یاد حاج قربان انداخت و حرفهایش، سه ماهی است که اینجا چیزی ننوشته‌ام و ماجرا از آن جا شروع شد که «یه روز ساز با من قهر کرد و هر چه خواستم بنوازنم نشد که نشد». خیلی فکر کردم و مانده‌ بودم که «او ساز من است یا من ساز او».
اما هر چه باشد حقیقت این است که «وقتی ساز می‌زنم همه چیز را از یاد می‌برم. … اما ساز که می‌زنم؛ تو بگو دوساعت؛ سه ساعت می‌زنم. دیگر حواسم به چیز دیگری نیست. من با سازم حرف می‌زنم. ساز به من می‌گوید؛ حالا بزن یا نزن. نمی‌دانم او ساز من است یا من ساز او… وقتی که ساز و نوایش آدم را گیر بیندازد دیگر نمی‌توانی از چنگش آزاد شوی.»

گزیده:
ندارد

نیازمندی‌های چابک (Agile Requirements) – بخش دوم

  • یوسف مهرداد بی‌بالان

مترجم: خانم مهندس فاطمه اردستانی

بخش اول

۱-۲- داستان کاربر به کاهش فاصله مشتری-توسعه‌دهنده کمک می‌کند
در توسعه‌ی چابک‏‏، توسعه‌دهنده موظف است به زبان کاربر صحبت کند، اما کاربر موظف به صحبت به زبان توسعه‌دهنده نیست. نکته اصلی، ارتباط مؤثر است که برای تحقق آن، نیاز به زبان مشترکی است. داستان کاربر این نقش ‏‏را بازی می‌کند چرا‏‏که کاربر و تیم فنی برداشت یکسانی از آن دارند.

بیل وِیک یکی از ابداع‌کنندگان XP، این موضوع را بدین شکل توصیف می‌کند:
زبان دست‌وپا شکسته، زبان ساده‌ای است که معمولاً برای تجارت‏‏ و توسط افرادی به‌کار می‌رود که علی‌رغم تمایل به همکاری، نمی‌توانند به زبان مادری‏‏ یکی از دو طرف با هم صحبت کنند. داستان‏‏ کاربر شبیه این زبان است. انتظار نداریم که مشتریان یا کاربران، سیستم را مانند برنامه‌نویسان بفهمند. لذا داستان کاربر، کارِ زبان دست‌وپا شکسته را می‌کند تا دو طرف تا اندازه‌ای که برای همکاری موثر لازم است، گفت‌وگو کنند و به توافق برسند.

به کمک داستان کاربر مجبور نیستیم زبان یکدیگر را با مهارتی که برای سرودن شعر و غزل لازم است، یاد بگیریم. بلکه نیازمان این است وقتی‌که درباره‌ی معامله‌ای برد-برد مذاکره می‌کنیم، همدیگر را به‌اندازه کافی درک کنیم!

۱-۳-داستان‌کاربر نیازمندی نیست
اگرچه با داستان کاربر اکثر کارهایی که قبلاً توسط مشخصات نیازمندی نرم‌افزار، مورد کاربرد و غیره انجام می‌شد امکان‌پذیر است؛ اما اساساً در پاره‌ای موارد ظریف ولی بسیار مهم متفاوتند:
– آنها مشخصات تفصیلی نیازمندی‌ها نیستند(کاری که سیستم باید انجام دهد) بلکه عبارات قابل مذاکره درباره‌ی انگیزه‌ی کاربرند (نیاز است کاری در این‌باره انجام شود).

– آنها کوتاه، روان و قابل فهم برای توسعه‌دهندگان، ذینفعان و کاربران هستند.

– آنها بخش‌های کوچکی از کارکردهای باارزش سیستم‏‏ را نشان می‌دهند که برنامه‌نویس می‌تواند در بازه‌ی چند روز تا چند هفته پیاده‌سازی کند.

– برآورد آنها نسبتاً آسان است، در نتیجه حجم کار لازم برای پیاده‌سازی کارکردهای سیستم می‌تواند به‌سرعت تعیین گردد.

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

– آنها در ابتدای پروژه دارای جزئیات نیستند بلکه جزییات آنها در وقت مناسب(به‌موقع ) بیان می‌شود و به همین دلیل است که از تفصیل زودهنگام، تأخیر در توسعه‏‏، افزایش موجودی نیازمندی‏‏ها و اعلام قیدهای بیش‏ ‏‏‏‏‏از حد برای راه‌حل اجتناب می‌کنند.

– خیلی کم پیش می‌آید که نیاز داشته باشیم آنها را نگهداریم و از این‌رو می‌توان آنها را بعد از پیاده‌سازی با خیال راحت دور انداخت.

– داستان کاربر و کدی که به‌سرعت برای آن نوشته می‌شود، ورودیِ تدوین مستنداتی است که به تدریج و همزمان با کد کامل می‌شوند.

گزیده:
مراقب باش كه نيروهايت را بر سر مسايل پراكنده از دست ندهي. هميشه تلاش كن كه آنها را متمركز كني. گوته
مرجع: اس.جی.

برچسب‌ها: چابک Agile, نیازمندی‌ها Requirements

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

  • یوسف مهرداد بی‌بالان

Mostly, when you see programmers, they aren’t doing anything. One of the attractive things about programmers is that you cannot tell whether or not they are working simply by looking at them. Very often they’re sitting there seemingly drinking coffee and gossiping, or just staring into space. What the programmer is trying to do is get a handle on all the individual and unrelated ideas that are scampering around in his head.
Charles M. Strauss

گزیده:
ندارد

هدف اسپرینت (Sprint Goal) – اختیاری یا اجباری؟

  • یوسف مهرداد بی‌بالان

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

سوال این بود که:
آيا در برنامه ريزی اسپرينت، احتمالا در هر اسپرينت بايد هدف خاصی دنبال شود. يعنی منظورم اين است که ما يک هدف خاصی رو مشخص می‌کنيم و برای رسيدن به اون هدف يک اسپرينت رو برنامه‌ريزی می‌کنيم يا اينکه در يک اسپرينت هدف اين است که مقداری کار انجام پذيرد

پاسخ:
در مورد اسپرینت، تعیین هدف الزامی است. اما ممکن است به صورت رسمی و فرمال وجود نداشته باشد مثلاً در پروژه‌ای که به تازگی شروع شده، اقلام اولویت‌دهی‌ شده‌ای وجود دارند که باید به ترتیب انجام شوند. اما در توسعه‌ی محصول به خصوص زمانی که به محصول نسخه یک نزدیک شده‌ایم یا بعد از انتشار(Release) نسخه یک محصول وجود هدف الزامی است.

توصیه‌ام این است که همیشه مالک محصول باید هدف مشخصی برای اسپرینت تدوین و اعلام کند. برخی از دلایلم را در زیر نوشته‌ام:
۱- هدف اسپرینت یکی از عوامل انتخاب و اولویت‌دهی اقلام بک‌لاگ برای اسپرینت جاری است.
مثال غیرنرم‌افزاری آن این است که شما ظرف یک ماه آینده دو تا جشن تولد در پیش دارید و بر خلاف همه ماه‌ها، خریدهایتان در این ماه شامل آماده‌سازی جشن تولد است. در حالی که همین هدف در اسفند تبدیل می‌شود به خرید شب عید. این که چه اقلامی می‌خرید تحت تأثیر هدف و بودجه‌تان است. هر چند بعضی چیزها مثل گوشت را همیشه می‌خرید.
وقتی تیم توجیه می‌شود که هدف اسپرینت چیست، می‌تواند به مالک محصول در انتخاب اقلام لازم برای تحقق هدف کمک کند. معمولاً مالک محصول تسلط کافی به ارتباطات بین اقلام ندارد. مثلاً نمی‌داند که خطای الف هم به هدف ب مرتبط است. یا این که برای جشن تولد فقط شیرینی و .. .لازم نیست بلکه تعمیر چراغ راهروی ساختمان هم ضروری است.

۲-یکی از شاخص‌های ارزیابی مؤفقیت تیم در اسپرینت، میزان تحقق هدف آن است. به عبارت دیگر، بخشی از تعهد تیم، تحقق هدف اسپرینت است. در بازنگری اسپرینت (Sprint Review) یکی از ورودی‌های مهم، هدف اسپرینت است. در پایان ماه از خانواده خواهیم پرسید که خوب ما که این همه خرج کردیم و هدفمان برگزاری جشن تولد بود، آیا جشن تولد به خوبی برگزار شد؟ آیا همه شاد و خندان بودند و رفتند؟

۳- هدف اسپرینت تحت تأثیر مسیر محصول(product roadmap) است که برای خیلی از شرکتهای ایرانی، واژه‌ای غریب است. مالک محصول باید و باید مسیری برای محصول داشته باشد. در مثال جشن تولد، خانواده و به خصوص مادر خانواده باید بداند که در دی ماه دو تا جشن تولد دارد، در اسفندماه خرید شب عید دارد و در فروردین هم مسافرت دارد و همه اینها خرج دارد و حقوق همسر(ظرفیت تیم) هم محدود و مشخص است

۴- تعیین هدف اسپرینت یکی از روشهایی است که مالک محصول وادار می‌شود بیشتر به محصول فکر کند. از آنجایی که وی ممکن است بعضی مواقع جزییات را نتواند با ذینفعان پیش ببرد، مالک محصول مجبور است حتماً و حتماً تأیید ذینفعان را روی هدف اسپرینت داشته باشد. به عبارت ساده به آنها بگوید پولی که خرج می‌کنید قرار است برای چه هدفی هزینه شود. هر چه زمان اسپرینت بیشتر باشد، اهمیت این موضوع بیشتر است. در مثال جشن تولد، مادر خانواده به پدر خانواده می‌گوید که دو سوم بودجه ماه را صرف برگزاری جشن تولد خواهم کرد و پدر خانواده …. !

۵- اگر هدفی مشخص نشود، معمولاً عارضه‌ی «کار می‌کنیم که کار کرده باشیم» پیش می‌آید(ببخشید، این اصطلاح من‌درآوردی است). «کجا می‌روید؟ داریم می‌رویم خرید. چه می‌خواهید بخرید؟ نمی‌دانیم. برویم گشتی بزنیم!(پولها خرج می‌شود بدون آن که حواسمان به این باشد که هدف، برگزاری جشن تولد است)»

۶- روشهای چابک به شدت بر فرایندهای اعتمادپذیر(reliable) استوارند. فرایندهای اعتمادپذیر بر خلاف فرایندهای تکرارپذیر(repeatable) بر این اصل استوارند که «حرکت به سوی هدف با وجود روبروشدن با موانع». از این رو هدف اسپرینت عامل سازگاری و انطباق‌پذیری تیم با شرایط و موانع است.

۷- هدف اسپرینت یکی از عوامل سازماندهی کننده بازنگری اسپرینت است. به عبارت دیگر ذینفعان و مالک محصول می‌دانند که باید دنبال چه باشد و از شروع بحث‌ها و مذاکرات خارج از محدوده اجتناب خواهند کرد. شاید این جمله که بارها تیمها آن را تکرار کرده‌اند به گوشمان آشنا باشد: «قرار نبود که در این مرحله این کارها را انجام دهیم، پس برای چه ما را متهم به کم‌کاری می‌کنید ؟!»

۸- نمونه‌ها گواه این موضوع‏اند که وقتی برای تیمی مشخص می‌کنید که چه می‌خواهید، خلاقیت افراد برای تحقق خواسته شما افزایش می‌یابد. تیم خودمختار است به شکل دلخواه، هدف اسپرینت را تحقق بخشد. گاه در تیمها افرادی هستند که استاد پیداکردن راه‌های کوتاه و درست برای رسیدن به هدف هستند. این کار توانایی شخصی این گونه افراد را پررنگ و پرفایده برای تیم می‌کند.

گزیده:
«در زندگی باید دنبال دو هدف بود: یافتن آنچه می‌خواهیم و لذت بردن از آنچه داریم. تنها انسان‌های باهوش به هدف دوم می‌رسند». لوگان اسمیت

برچسب‌ها: Scrum اسکرام, Agile چابک

اسکرام SCRUM – بخش پنجم

  • یوسف مهرداد بی‌بالان

مترجم: مهندس شهاب‌الدین فرحبخش

بخش اول
بخش دوم
بخش سوم

بخش چهارم

۳-۱– بک‌‏لاگ محصول

با به‌‏کارگیری اسکرام، همیشه باارزش‏‏‌ترین کارها زودتر انجام می‌‏شوند. مالک محصول با اطلاعات دریافتی از تیم‏ توسعه و ذینفعان، مسئول نهایی تعیین و مدیریت توالی انجام کارهاست. کارها به شکل فهرستی دارای اولویت‏(یا ترتیب) به نام بک‌‏لاگ محصول (Product Backlog) ارائه می‌‏‏شوند

شکل: بک‌‏‏لاگ محصول، مرجع

بک‏‏‌لاگ یک محصول جدید، در ابتدا حاوی ویژگی‏‏‌ها و امکانات مورد نیاز برای تحقق چشم‌‏‏اندار مالک محصول است. اما بک‏‏‌لاگ محصولی که در حال تکمیل است شامل ویژگی‏‏‌های جدید، تغییرات ویژگی‌‏‏های موجود، نقص‏‏‌‏ها و ایرادها، بهبودهای فنی و موارد مشابه است.

مالک محصول با همکاری ذینفعان، اعم از داخلی یا خارجی، اقلام بک‌‏‏لاگ محصول را گردآوری و تعریف می‌‏‏کند. سپس مطمئن می‏‌‏شود که اقلام با ترتیب درستی(بر اساس معیارهایی مانند ارزش، هزینه، دانش و ریسک ) در بک‏‏‌لاگ قرار گرفته‏ باشند به‏ گونه‌‏‏ای که اقلام با ارزش‏‌‏تر، بالاتر و اقلام کم ارزش‏‌‏تر، پایین‌‏‏‏تر باشند.

بک‏‏‌لاگ محصول، فراورده‌‏‏ای است که همواره در حال تکمیل است. مالک محصول می‌‏‏تواند اقلام بک‌‏‏لاگ را به دلایلی چون تغییر شرایط کسب‏‏‌وکار، افزایش دانش تیم اسکرام با رشد و تکمیل محصول، اضافه، حذف یا اصلاح کند. فعالیت ایجاد و اصلاح، برآورد و اولویت‏‌دهی اقلام بک‌‏‏لاگ محصول، «آماده‏‏‌سازی» (Grooming) نامیده می‌‏‏شود

در سال 2011 انتخاب واژه مناسب برای شیوه چینش اقلام بک‏‏‌لاگ، موضوع بحث و جدل شد. موضوع بحث این بود که کدام یک از دو واژه اولویت‌‏دهی‌ شده (نخستین واژه)(Prioritized) یا مرتب‌‏‌شده(Ordered) (استفاده شده در راهنمای اسکرام 2011)، واژه مناسب‏‌‏تری است. برخی مدعی بودند که اولویت‌دهی فقط نوع ساده‏‏ای از مرتب‏‌‌‏سازی است(و البته حتی مناسب‏‏‌ترین روش آن نیز نیست).

بهترین چینش اقلام در بک‌‏‏لاگ به عوامل زیادی بستگی دارد و توضیح آن ساده نیست. با وجودی که از دیدگاه نظری توجه به تفاوت اولویت‏‏‌دهی با مرتب‌‏‏سازی اقلام بک‏‏لاگ مهم است، بسیاری از افراد، از این دو واژه به صورت معادل در بحث‌ها و گفت‏‏‏وگوها استفاده می‌‏‏نمایند.

قبل از اولویت‌‏‏دهی یا مرتب‏‏‌سازی یا به طور کلی سازماندهی بک‏لاگ، اندازه (Size) هر یک از اقلام باید مشخص باشد. اندازه هر قلم برابر با هزینه انجام آن است و مالک محصول برای تعیین درست اولویت هر قلم، نیاز دارد اندازه آن را بداند.

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


شکل: اندازه‏‌گیری نسبی؛ مرجع

به عبارت دیگر، فقط به نسبت اندازه‏ یک قلم به سایر قلمها توجه می‌‏‏کنند. به عنوان مثال فرض کنید اندازه ویژگی C برابر 2 و ویژگی E برابر 8 است. پس اندازه ویژگی E، 4 برابر ویژگی C است. در روش اندازه‏‌‏گیری نسبی، تنها چیزی که اهمیت دارد، 4 برابر بودن اندازه E نسبت به C است و نه اندازه دقیق E و C.

گزیده:
در طول زندگیم هیچگاه از کسانی که با نظر من موافق بودند چیزی نیاموختم. مالرو
مرجع: اس.جی.

برچسب‌ها: Scrum اسکرام, Agile چابک

دریافت ترجمه مقاله Embracing Change with XP

  • یوسف مهرداد بی‌بالان

ضمن تشکر از دوست گرامی جناب آقای مهندس مهدی نگاهی، ترجمه مقاله “در آغوش گرفتن تغییرات با XP”
یا Embracing Change with Extreme Programming نوشته Kent Beck را می‌توانید از اینجا دریافت فرمایید.

گزیده:
«هرگز نباید چیزی را که نمی‌توانید بهتر از آن جایگزینش سازید، از بین ببرید.» پلوتارخ

برچسب‌ها: چابک Agile

نیازمندی‌های چابک (Agile Requirements) – بخش اول

  • یوسف مهرداد بی‌بالان

پیش گفتار
همان طور که قبلاً گفته شد در راستای تولید محتوای فارسی برای موضوعات مورد علاقه و باارزش، مطالب برگزیده پس از ترجمه توسط چند تن از عزیزان و بازنگری آن، از طریق وبلاگ در اختیار خوانندگان قرار خواهد گرفت. با وجود همه کمبودها، امیدوارم که این کار اثرگذار و مفید باشد.

مجموعه جدید مقاله‌ها، به حوزه نیازمندی‌ها در متدهای چابک اختصاص داده شده است. مرجع فعلی مطالب، کتاب Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise نوشته‌ی Dean Leffingwell است.

ترجمه‌ی این مجموعه توسط خانم مهندس فاطمه اردستانی انجام شده است که از ایشان برای قبول زحمت سپاسگزارم.

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


فصل ششم
1-مقدمه
1-1-مروری بر داستان کاربر
1-2-داستان کاربر به کاهش فاصله مشتری-توسعه‌دهنده کمک می‌کند
1-3-داستان کاربر نیازمندی نیست
2-شکل داستان کاربر
3-INVEST در داستان‌های کاربر خوب
4-تقسیم داستان‌های کاربر
5-اسپایک‌ها(Spike)
6-مدلسازی داستان با کارت‌های نمایه
7-خلاصه فصل


۱-مقدمه
در فصل سوم، «نیازمندی‌های چابک برای تیم»، مفاهیم و روابط بین فرآورده‏های اصلی یعنی بک‏لاگ، داستانهای کاربر و وظیفه‏ها بیان گردیدند که توسط تیمهای چابک برای تعریف، ساخت و آزمون سیستم استفاده می‏شوند. در آنجا اشاره شد که داستان کاربر اسب بارکش توسعه‌ی چابک و وسیله‏ای برای انتقال و تحویل «ارزش» به مشتری است. همچنین داستان کاربر استعاره‏ای(metaphor) از رویکرد تدریجی و ارزش‏آفرینی‏ برای کاربر است یعنی این که:

درمورد آن‏چه که برای کاربر ارزشمند است، داستانی تعریف کنید؛
آن را در یک تکرار کوتاه پیاده‏سازی و آزمایش کنید؛
سپس آن را به کاربر نمایش یا تحویل دهید؛
تا ابد این کار را تکرار کنید!

شکل ۶-۱ خلاصه‏ای از فرآورده‏های مرتبط با نیازمندی‏ها را نشان می‏دهد که برای تحقق این رویکرد لازمند.

مطابق شکل، داستان نوعی قلم بک‏لاگ است که با انجام کارهایی مثل طراحی، کدنویسی و آزمون، توسعه داده می‏شود. از آن گذشته تا زمانی که داستان‏ کاربر آزمون پذیرش را با مؤفقیت پشت‏ سر نگذارد، «کامل شده » به‏شمار نمی‏آید.
در این فصل، جزییات بیشتری از داستان کاربر تشریح می‏شود، زیرا داستان کاربر به همراه مجموعه‏ای از تجربه‏های چابکی کمک می‏کند تا همزمان علاوه بر تطبیق مستقیم راه‏حل با نیازهای مشتری، کیفیت نیز تضمین گردد.

۱-۱-بازنگری داستان کاربر
به بخشی از تأثیرات اسکرام در توسعه تجربه‏های سازمانی چابک در فصلهای گذشته اشاره شد. به عنوان نمونه می‏توان به نقش «مالک محصول» اشاره کرد که بخش‏ مهمی از تجربه‌های حوزه نیازمندی‏ است. اما ابداع داستان کاربر را به متد XP مدیونیم و این طرفداران XP بودند که آن را بسط و گسترش دادند. بک(Beck) و فاولر(Fowler) در [2005] می‏نویسند:
«داستان، واحد کارکرد پروژه‏‏های مبتنی بر XP است. پیشرفت پروژه با تحویل کد هر داستان که آزمایش‏ و یکپارچه شده‏، نشان داده می‏شود. داستان باید قابلِ فهم برای مشتریان و توسعه‏دهندگان؛ آزمون‏پذیر؛ ارزشمند برای مشتریان؛ و به اندازه‏ای کوچک باشد که برنامه‏نویس بتواند تعدادی از آنها را در هر تکرار انجام دهد.»

با این حال، هر چند سرآغاز داستان کاربر از XP است، اما از جمله موضوعاتی است که درباره‏ی آن در متدولوژی‏ها اتفاق‏نظر وجود دارد. به همین دلیل، هم‏اکنون داستان‏ کاربر بخشی از دوره‏های آموزشی اسکرام به عنوان ابزاری جاافتاده برای ایجاد بک‏لاگ محصول و تعریف اسپرینت است. بخش عمده‏ای از یکپارچه‏سازی داستان‏کاربر با اسکرام توسط مایک کوهن(Mike Cohn) انجام شده که از وی سپاسگزاریم. او یکی از فعالان انجمن‏های اسکرام و کسی است که مفهوم داستان کاربر را در کتابش [2004] بسط و گسترش داد.

به دلایلی، داستان کاربر را به شکل ساده‏ی زیر تعریف می‏کنیم:
«داستان کاربر شرح کوتاهی است از انگیزه‌ی کاربر در مورد کاری که انتظار دارد سیستم برایش انجام دهد».

اغلب داستان‏های کاربر در XP توسط مشتری نوشته می‏شود که باعث حضور مستقیم وی در فرایند توسعه می‏شود. در اسکرام نیز اغلب مالک محصول داستانهای کاربر را با دریافت اطلاعات از مشتریان، ذینفعان و تیم می‏نویسد. عملاً هر عضو تیم که درباره‏ی قلمروی مسأله دانش کافی داشته باشد، می‏تواند داستانهای کاربر را بنویسد، اما وظیفه‏‏ی پذیرش و اولو‏یت‏دهی آنها با مالک محصول است.

داستان کاربر ابزاری برای تعریف رفتار سیستم است به‏گونه‏ای که برای کاربر و توسعه‏دهنده قابل فهم باشد. با به‏کارگیری داستان کاربر، کارها براساس ارزش تعیین‏شده‏‏ی کاربر انجام می‌شوند و نه براساس روش رایجِ ساختار شکستِ کارکردی(functional breakdown structure) . از طرف دیگر داستان کاربر، رویکردی سبک و مؤثر برای مدیریت نیازمندی‏ها نیز فراهم می‏کند.

داستان کاربر شرح کوتاهی از کارکرد سیستم است که بر روی یک کارت نمایه (index card) یا احتمالاً در یک ابزار نوشته می‏شود. در ساده‏‏ترین شکلِ بک‏لاگ، داستان‏ها فقط فهرستی از کارهایی‌اند که سیستم باید برای کاربر انجام دهد. به عنوان مثال:
○ ورود به صفحه‏ی پرتال پایش انرژی
○ دیدن مصرف انرژی روزانه
○ کنترل نرخ هزینه‏ی فعلی برق

جزئیات رفتار سیستم در داستان کاربر آورده نمی‌شود، بلکه به آینده موکول می‌گردد تا از طریق گفت‌وگو و تعیین معیارهای پذیرش بین تیم و مالک محصول مشخص شود.

گزیده:
انسانها ابزارِ ابزارهای خود شده‌اند.
اچ دی تورو

برچسب‌ها: چابک Agile, نیازمندی‌ها Requirements

برای خروج از جستجو کلید ESC را بفشارید