اسكرام (Scrum) چيست؟
اسکرام (Scrum) یک روش تکراری برای مدیریت پروژه های نرم افزاری است. در این روش سازمان دهی تیم توسعه و برقراری ارتباط مناسب با مشتری یا مشتریان امکان پذیر می گردد. هم چنین با مدیریت صحیح فرایند تولید و توسعه نرم افزار توسط این متدولوژی، امکان ارائه محصول با کیفیت در مدت زمان مشخص مقدور می گردد.
اسکرام چیست؟
اسکرام(Scrum) یک روش گروهی برای تولید و توسعه نرم افزار است. این متدولوژی یک مدل تکراری(Iterative) از
متدولوژی Agile
برای حل مسایل پیچیده است. با اسکرام این امکان وجود خواهد داشت که مسایل پیچیده به راحتی مدیریت گردد.
در واقع اسکرام یک فرایند و یا تکنیک تولید محصول نیست، بلکه چارچوبی است که بوسیله آن میتوان مدیریت تولید محصول را بهینه نمود. این متدولوژی ساده و آسان است و همه میتوانند به راحتی قوانین موجود در آن را فراگرفته و به کار گیرند، اما تسلط کامل به اسکرام معمولا دشوار است.
تاریخچه اسکرام
متدولوژی اسکرام در سال 1986 در کشور ژاپن توسط Hirotaka Takeuchi و Ikujiro Nonaka برای اولین بار اختراع شد. اسکرام در دهه 90 میلادی توسط Ken Schwober و Jeff Stherland توسعه داده شد و به عنوان یک متدولوژی رسمی جهت تولید محصولات نرم افزاری شناخته و به کار گرفته شد.
اسپرینت
هسته اصلی اسکرام را اسپرینتها تشکیل میدهند. در متدولوژیهای تکرار شونده(Iterative) دورههای زمانی تکراری(Iteration) وجود دارد که در این دوره ها به تدریج محصول کامل میگردد. بدین صورت که در تولید یک محصول، تعدادی تکرار در نظر گرفته میشود که در پایان دوره زمانی هر تکرار، یک محصول قابل ارائه وجود دارد. به این دورههای زمانی تکرار شونده در اسکرام اسپرینت(Sprint) میگویند. در پایان هر اسپرینت، محصول کامل تر شده و در نهایت محصول نهایی تولید میگردد. هر اسپرینت دارای تعریفی است که در آن باید مشخص شده باشد که چه چیزی قرار است ساخته شود، نیازمندیها، راهنمای ساخت و محصول خروجی نیز باید مشخص باشند.
مجموعه نیازمندیهای عملیاتی و غیر عملیاتی(Functional and Non Functional Requirements) پروژه، که مستند شده است را Backlog گویند. مجموعه نیازمندیهایی که در هر اسپرینت باید تمام شوند Sprint Backlog نامیده میشود. هر Sprint Cycle تا زمانی ادامه پیدا میکند که محصول آماده Release باشد. بعد از Release محصول ممکن است صاحب پروژه نیازمندیهای جدیدی به پروژه اضافه نماید که به آنها Product Backlog گویند.
مدت زمان هر اسپرینت بستگی به نوع پروژه دارد. این مدت زمان میتواند از یک هفته تا یک ماه متغیر باشد. هر اسپرینت باید دقیقا سر وقت به اتمام برسد و اگر به هر دلیلی در پایان اسپرینت محصول آماده نبود باید نیازمندیهای Sprint Backlog به Product Backlog منتقل شوند.
در ابتدا و در هنگام شروع اسپرینت، جلسهای با حضور تمام اعضای تیم تشکیل میشود و به همه افراد هدف نهایی اسپرینت و وظایف هریک از اعضای تیم شرح داده میشود.
وظایف مشخص شده در هر اسپرینت شامل سه جنبه است:
Transparency:
تمامی جنبههای فرایند برای همه اعضای تیم (مشتری و تیم برنامه نویس) باید مشخص و واضح باشد.
Inception:
اگر در هر مرحله، فرایند دچار انحراف شد، باید انحراف سریع تشخیص داده شود.
Adaption:
انحرافهای شناسایی شده، در کمترین زمان ممکن باید تعدیل شوند.
در هر اسپرینت، جلسهای به صورت روزانه با حضور اعضای تیم (تیم تولید و ذینفعان) انجام میشود تا پیشرفتهای پروژه بررسی گردد. در این جلسات باید به سه پرسش زیر پاسخ داده شود:
چه پیشرفتهایی حاصل شده است؟
چه موفقیتهایی در اسپرینت بعدی حاصل میگردد؟
چه موانعی برسر راه ادامه کار وجود دارد؟
در انتهای هر اسپرینت جلسهای برگزار میشود تا محصول نهایی به ذینفع یا ذینفعان نشان داده شود و نتیجه نهایی کار بررسی گردد.
نقش های اسکرام (Scrum Roles)
اسکرام مستر(Scrum Master) :
رهبر اسکرام وظیفه دارد تا تمامی اعضای تیم را هدایت و راهنمایی نماید تا هیچ یک از اعضای تیم از چارچوب و قوانین اسکرام خارج نشوند. رهبر اسکرام نقش مدیر را ندارد بلکه تنها وظیفه رهبری تیم را بر عهده دارد تا با رفع مشکلات و موانع پیش رو (در صورتی که اعضای تیم قادر به رفع موانع نباشند.)، اجرای اسکرام را بهبود بخشد.
نماینده صاحب پروژه و یا ذینفع(Product Owner) :
صاحب پروژه با اعلام دقیق نیازمندیهای خود به تیم تولید، با راهبر اسکرام و تیم تولید همکاری مینماید. صاحب پروژه باید به سوالات تیم پاسخ داده و همواره در دسترس باشد.
تیم تولید و توسعه نرم افزار (Development Team) :
افراد این تیم در چارچوب قوانین اسکرام، به تولید آن چه که صاحب پروژه درخواست کرده است، میپردازند. تعداد اعضای تیم تولید نه باید آن قدر کم باشد که همکاری گروهی و کار تیمی بی معنا شود و نه آن قدر زیاد باشد که هماهنگی بین اعضای تیم تبدیل به امری دشوار و وقت گیر گردد. تعداد اعضای تیم تولید، بستگی به پروژه دارد اما معمولا 6 تا 9 نفر اعضای این تیم را تشکیل میدهند.
نتيجه گيري:
هدف اسکرام جلوگیری از شکست های معمول در حین فرایند تولید و توسعه است. بوسیله اسکرام میتوان از حداکثر توان و خلاقیت تیم تولید بهره برد. این متدولوژی در تعداد زیادی پروژه در سراسر دنیا توسط شرکتهای مختلف مورد استفاده قرار گرفته و موفق بوده است.
منبع مقاله:
http://www.parsdata.com/articles/scrum-methodology