ورود

View Full Version : اسکرام ساده شده



Asad.Safari
چهارشنبه 21 بهمن 1388, 16:43 عصر
[دلیل لینک دادن به وبلاگ فقط به خاطر اشکال درون مقاله می باشد ]

در طی مقالاتی که بنده در مورد Scrum به رشته تحریر درآوردم , اشکالی که وارد می باشد این است که کل مقالات به صورت بریده های روزنامه می باشد که خواننده نمی تواند جمع بندی بکند . در این پست قصد دارم کل اسکرام را به صورت کامل و با بیان ساده تشریح نمایم . امید بر انجام این مهم است .


ادامه (http://sirasad.wordpress.com/2010/02/09/%D8%A7%D8%B3%DA%A9%D8%B1%D8%A7%D9%85-%D8%B3%D8%A7%D8%AF%D9%87-%D8%B4%D8%AF%D9%87/)

موفق باشید

JaguarXF
سه شنبه 27 بهمن 1388, 08:51 صبح
مطلب بسیار خوبیه . نویسنده هم خودش فهمیده داره چی میگه .
موارد دیگری که خودمان در محیط کاری انجام میدهیم و ذهنیت داشتم:
جلسات کوتاه روزانه بصورت سرپایی با اعضای تیم . در این جلسه هر عضو تیم خیلی خلاصه میگوید که دیروز چه کرده . امروز چه قرار است بکند و آیا چیزی کارش رو بلاک میکند یا نه .
برای اینکه این جلسات از حالت خشکی بیرون بیاید برای مثال ما یک توپ قلقلی داریم که به همدیگر پرتش میکنیم و هرکسی گرفتش نوبت اون هست که جواب سوالات مربوطه اش رو بدهد . که مقداری فان ! بشود این جلسات.
در مورد نرمافزاری که بشود به این روش پروژه رو مدیریت کرد نرم افزاری های GreenHopper , VersionOne رو پیشنهاد میکنم.
موفق باشید.

Asad.Safari
چهارشنبه 28 بهمن 1388, 10:54 صبح
عجب استقبال شگرفی از این پست ما در اینجا شد ... 69بازدید و یک نظر

این است یک انرژی مثبت در منفی برای من که دیگر چنان در چنین موضوعاتی در اینجا ننویسم.

موفق باشید

حسین فلاحی
پنج شنبه 20 خرداد 1389, 00:34 صبح
نفرمایید...

مهم لذتی هست که در پایان کار بدست می آید نه نظر مردم در مورد کار.
البته چون لینک دادین احتمالا دوستان به اون مکان رفتند و کمتر در اینجا نظر دادند.

تشکر مطلب مفیدی بود.

m.hamidreza
جمعه 21 خرداد 1389, 19:51 عصر
اول از شما تشکر میکنم که تجربیاتی که دارین رو در اختیار علاقه مندان گذاشتین. درسته یه زمانی گذشته از تاریخ تاپیک ولی هنوز Agile مبحث داغی هست.
در مورد مقاله یه چند تا نکته ی گنگ هست که من مطرح میکنم امیدوارم به دوستان دیگه هم کمک کنه.

SCRUM (http://en.wikipedia.org/wiki/Scrum_%28development%29)، یک فریم ورک توسعه پذیر برای Agile Software Development هست که عملا یک متد یا روش برای استفاده از Agile هست و بر اساس این تعریف (http://en.wikipedia.org/wiki/Agile_software_development)، Agile Software Development گروهی از متدولوژی های توسعه نرم افزار هست که بر اساس توسعه مبتنی بر تکرار ِ یک فرآیند در توسعه نرم افزار کاربرد داره.
در اینجا تعاریف دیگه ای مثله AUP (http://en.wikipedia.org/wiki/Agile_Unified_Process) یا Agile Unified Process و همچنین AM (http://en.wikipedia.org/wiki/Agile_Modeling) یا Agile Modeling هم هستن که اولی همون RUP خودمونی هست که بر خلاف RUP دارای 7 دیسسپلین هست و دومی یک متدولوژی برای Modeling و مستندسازی هست که این توضیحاتش هم جالبه:


Agile Modeling is a supplement to other Agile (http://en.wikipedia.org/wiki/Agile_Software_Development) methodologies such as:


Extreme Programming (http://en.wikipedia.org/wiki/Extreme_Programming) ("XP")
Agile Unified Process (http://en.wikipedia.org/wiki/Agile_Unified_Process)
Scrum (http://en.wikipedia.org/wiki/Scrum_%28development%29)

In which it is used to replace the more standard UML (http://en.wikipedia.org/wiki/Unified_Modeling_Language), or other standard design tools.

قبل از اینکه وارد بحث Agile و SCRUM و ... بشیم اینها باید برای خواننده جا بیفته. این تعریف شما از SCRUM هست:


امروزه یکی از روش‌های تولید نرم‌افزار که به خصوص برای پروژه‌های نرم‌افزاری کوچک مورد استفاده قرار می‌گیرد و توسط بسیاری از اساتید و صاحب‌نظران مورد تأیید قرار گرفته است، روش SCRUM است.
ارتباط SCRUM با Agile و به طبع اون Agile با RUP چی هست؟ آیا Agile یک Unified Process هست و SCRUM یک متد برای پیاده سازی اون؟ حالا جایگاه XP در قیاس با SCRUM چی هست؟
این 7 تا دیسیپلینی که گفته شده تا چه حد عملیاتی هست چون من چیزی در موردش در وبلاگ شما ندیدم.

مساله دوم تعریف پروژه های کوچک هست؟ یعنی در چه مقیاسی؟ چون پستی داشتین که گوگل هم داره از Agile استفاده میکنه. نکته دیگه این هست که اگر مقیاس پروژه بزرگ بود Agile توانایی مدیریت نداره و باید از مثلا از RUP استفاده شه؟
من خیلی جاها دیدم که Agile رو جایگزینی برای RUP نمیدیدن و حتی قیاس این دو تا رو هم با هم رد کردن در این مورد هم توضیحی بفرمایید.

مساله سوم کلا دلیل استفاده از Agile هست که اون چیزی که من فهمیدم یکی سریعتر بودن و دیگری عدم نیاز به مستندات کامل در ابتدای پروژه هست. در RUP هم بدلیل همون itrative بودن ما این مساله رو داریم دلیل انتخاب Agile چی هست؟

مساله چهارم بر میگرده به محصول و پروژه. تعریف شما از محصول چه هست؟ تا اونجایی که من میدونم ما در نرم افزار چیزی به نام محصول نهایی نداریم چون مرتب در حال تکمیل هست. من محصول محور رو درک نمیکنم! نتیجه پروژه خوب محصول هست. فکر میکنم منظور شما این باشه که Scrum روی پروژه های تک محصولی کار میکنه نه چند محصولی. و برای چند محصولی احتمالا باید چند Scrum داشته باشیم؟

مساله پنجم زبان مدلسازی مورد استفاده و کلا شیوه و پلن زمانبندی تحلیل پروژه توسط این زبان در Agile هست. آیا در Agile صرفا از UML استفاده میشه(در قسمت پرسش و پاسخ البته به این مساله اشاره داشتید) و این Agile Modeling چی هست و چه کاربردی داره؟
من اینو نفهمیدم که شما در کجای Agile از Usecase ها یا مثلا Activity Diagram ها میکنید؟

مساله ششم در مورد Sprint ها هست لطفا یه مثال بزنید که مثلا یه سیستم دانشگاه و دانشجو از چند Sprint تشکیل شده؟ و بر چه اساسی این Sprint ها رو مجزا کردین؟
بعنوان مثال دیگه شما Name ها رو در Backlog از کجا میارین؟ آیا از UseCase ها در اینجا استفاده میکنید؟ سناریوهایی که در UML داریم در اینجا چه نقشی دارن؟

من تا آخر Backlog خوندم....
ممنون.

Asad.Safari
جمعه 21 خرداد 1389, 22:16 عصر
ارتباط SCRUM با Agile و به طبع اون Agile با RUP چی هست؟ آیا Agile یک Unified Process هست و SCRUM یک متد برای پیاده سازی اون؟ حالا جایگاه XP در قیاس با SCRUM چی هست؟
این 7 تا دیسیپلینی که گفته شده تا چه حد عملیاتی هست چون من چیزی در موردش در وبلاگ شما ندیدم.

اسکرام یک پکیج آماده برای دسترسی به روش Agile می باشد . در این پکیج روش هایی رو به شما پیشنهاد می شود مثلا در اسکرام گفته شده است که در هرروز باید Daily Stand up meeting انجام شود . این یک پیشنهاد عملی است ولی در واقع از طریق انجام این عمل به یکی (یا بیشتر) ارزش Agile (که در مثال ما همانا انگیزه بخشی به نیروی کار است) خواهید رسید.

ارتباطی بین Agile و RUP وجود ندارد . اگر هم وجود دارد بنده قبول ندارم و برای همین در وبلاگ بنده چیزی رو یافت نکردید .




مساله دوم تعریف پروژه های کوچک هست؟ یعنی در چه مقیاسی؟ چون پستی داشتین که گوگل هم داره از Agile استفاده میکنه. نکته دیگه این هست که اگر مقیاس پروژه بزرگ بود Agile توانایی مدیریت نداره و باید از مثلا از RUP استفاده شه؟
من خیلی جاها دیدم که Agile رو جایگزینی برای RUP نمیدیدن و حتی قیاس این دو تا رو هم با هم رد کردن در این مورد هم توضیحی بفرمایید.


بنده این مسئله را کلا تکذیب می کنم و به این قضیه اعتقاد دارم که در هر پروژه بزرگ می توان از اسکرام استفاده کرد ولی این قضیه را هم باور دارم پیاده سازی اسکرام در تیم های بزرگ کاری است مشکل .




[B]
مساله سوم کلا دلیل استفاده از Agile هست که اون چیزی که من فهمیدم یکی سریعتر بودن و دیگری عدم نیاز به مستندات کامل در ابتدای پروژه هست. در RUP هم بدلیل همون itrative بودن ما این مساله رو داریم دلیل انتخاب Agile چی هست؟


افراد و تعاملات بالاتر از فرآیندها و ابزارها
نرم افزار کارا بالاتر از مستند سازی جامع
همکاری مشتری بالاتر از قرارداد مذاکره
جوابگویی به تغییرات بالاتر از پیروی یک طرح

به نقل از : http://www.agilemanifesto.org/iso/pr/




مساله چهارم بر میگرده به محصول و پروژه. تعریف شما از محصول چه هست؟ تا اونجایی که من میدونم ما در نرم افزار چیزی به نام محصول نهایی نداریم چون مرتب در حال تکمیل هست. من محصول محور رو درک نمیکنم! نتیجه پروژه خوب محصول هست. فکر میکنم منظور شما این باشه که Scrum روی پروژه های تک محصولی کار میکنه نه چند محصولی. و برای چند محصولی احتمالا باید چند Scrum داشته باشیم؟


اسکرام ؟ نه فقط Product Backlog جدید نیاز خواهد شد .




مساله پنجم زبان مدلسازی مورد استفاده و کلا شیوه و پلن زمانبندی تحلیل پروژه توسط این زبان در Agile هست. آیا در Agile صرفا از UML استفاده میشه(در قسمت پرسش و پاسخ البته به این مساله اشاره داشتید) و این Agile Modeling چی هست و چه کاربردی داره؟
من اینو نفهمیدم که شما در کجای Agile از Usecase ها یا مثلا Activity Diagram ها میکنید؟

این اشکال صرفا از این حادث می شود که ما در RUP و یا Waterfall همیشه در اول پروژه برای برنامه نویسی آنالیز و طراحی کرده ایم و نه برای خود پروژه . ما در اینجا اول برای محصول آنالیز و طراحی می کنیم و سپس برای کدها . هر Iterative شامل پیاده سازی هم می شود ولی شما می توانید قبل از پیاده سازی (کد نویسی ) تحلیل و طراحی کنید اما فقط و فقط قسمتی را که می خواهید پیاده سازی کنید و نه کل سیستم و این نقطه فصل بین Agile با دیگر متدلوژی ها است .

البته به استفاده از UML سفارشی نشده است ولی بدلیل کارا بودن این زبان مدل سازی ما استفاده از این ابزار را به همه دوستان پیشنهاد می دهیم .




مساله ششم در مورد Sprint ها هست لطفا یه مثال بزنید که مثلا یه سیستم دانشگاه و دانشجو از چند Sprint تشکیل شده؟ و بر چه اساسی این Sprint ها رو مجزا کردین؟
بعنوان مثال دیگه شما Name ها رو در Backlog از کجا میارین؟ آیا از UseCase ها در اینجا استفاده میکنید؟ سناریوهایی که در UML داریم در اینجا چه نقشی دارن؟



البته بهتر بود اول کل مقاله رو مطالعه می فرمودید چون شاید یک سری از سوال ها رو مطرح نمی کردید . اول قضیه طول اسپرینت ها است که براساس مشتری , محصول و نیروی کار تعیین می شود . اما چه چیزی در کدام اسپرینت انجام شود را مشتری تعیین خواهد کرد . اما شاید بپرسید چگونه ؟ ما از مشتری می پرسیم که کدام Story برای وی از اهمیت بیشتری برخوردار است و او در واقع Story های سیستم را اولیت بندی می کند . اولویت های اصلی سیستم را زودتر در اسپرینت های اولیه و اولیت های پایین ها را دیرتر در اسپرینت های پایانی به مشتری ارائه خواهیم کرد .

موفق باشید

m.hamidreza
یک شنبه 23 خرداد 1389, 00:06 صبح
چیزی که جالب هست اینه که پیچیدگی RUP اصلا اینجا دیده نمیشه به نظر میاد خیلی ساده دارین کار میکنین؟ تو پروژه گم نمیشین؟!
من ازونجایی که علاقه مند شدم چندتا Ebook دانلود کردم دارم میخونم ولی در مورد مقاله شما جزئیات رو فعلا کاری ندارم تا بعد بهش بپردازیم ولی کلیات. ببینید اطلاعات گرفتن از کارفرما جزء پرهزینه ترین و زمانبر ترین کارهای پروژه هست و چیزی که شما در Agile دارین روش تاکید میکنید تعامل بیشتر با مشتری هست. البته در RUP هم اینطور نیست که فقط به مستندات اولیه اکتفا کرد و یا با اطلاعات ناقص نمیشه شروع کرد چون اون هم داره به همون تکرارش مینازه. اینو میخواستم بگم که پیداکردن یه PO آگاه از یه سازمان واقعا کار دشواری هست با این قضیه چطور کنار میاین؟ شما خیلی وابسته به PO هستین یعنی اشتباه PO پروژه رو Failed میکنه! من تجربه اینو داشتم که نماینده کارفرما از ما یه چیزی خواسته بعد از Demo اومده گفته مدیریت منظورش این نبوده من اشتباه فهمیدم!
از طرف دیگه مثلا در یه پروژه ERP هر بخش از یه کارخونه یا سازمان کارشناس خودش رو داره در این حالت تیم PO دارین؟ در اینجا چندمحصولی نمیشه؟
Role هایی که در تیم Agile شما فعالیت میکنن رو هم اگر بگین ممنون میشم.

Asad.Safari
یک شنبه 23 خرداد 1389, 02:11 صبح
اولا خوشحال شدم یکی پیدا شده است که واقعا بر اصول و قواعد دقت می کند و با دقت به همه چیز پیش میرود . واقعا مرسی .


چیزی که جالب هست اینه که پیچیدگی RUP اصلا اینجا دیده نمیشه به نظر میاد خیلی ساده دارین کار میکنین؟ تو پروژه گم نمیشین؟!


100%
شعار Agile حفظ سادگی است .

اصل 10 از اصول توسعه چابک
http://www.agilemanifesto.org/iso/pr/principles.html



ببینید اطلاعات گرفتن از کارفرما جزء پرهزینه ترین و زمانبر ترین کارهای پروژه هست و چیزی که شما در Agile دارین روش تاکید میکنید تعامل بیشتر با مشتری هست. البته در RUP هم اینطور نیست که فقط به مستندات اولیه اکتفا کرد و یا با اطلاعات ناقص نمیشه شروع کرد چون اون هم داره به همون تکرارش مینازه. اینو میخواستم بگم که پیداکردن یه PO آگاه از یه سازمان واقعا کار دشواری هست با این قضیه چطور کنار میاین؟


در Agile امکان شروع پروژه فقط با دانستن 20% از نیازمندی ها سیستم امکان پذیر است ولی در RUP چنین نیست زیرا در RUP ما Design تدریجی نداریم و در اکثر این متد ها طراحی به صورت UP-Front انجام می شود ولی در Agile بدین گونه نیست .

حالا بنده هیچ وقت از مقایسه RUP و Agile حس خوشایندی نداشتم زیراکه معتقدم هر ابزاری یک سری مزیت داره و هیچ ابزاری خوب یا بد نیست بلکه هر ابزار در جای خود خوب است .

اما در مورد Product Owner عرض کنم که ما بسیار وابسته به او عمل خواهیم کرد . PO باید شناخت خوبی نسبت به سیستم و نیازمندی های آن و اجازه لازم و اختیارات لازم را داشته باشد .

ما از بین کسانی انتخاب خواهیم کرد که بیشترین شناخت را از سیستم دارند , اما PO به خودی خود عمل نخواهد کرد بلکه باید پرورش یابد این پرورش توسط تیم توسعه و یا دیگر ذینفعان سیستم باید انجام شود , حتی در جلساتی که او با تیم توسعه است , تیم با کمک PO به نوع آوری هایی دست خواهند یافت که بالاتر از آن چیزی هایی خواهد بود که قبلا تصور می شد و این هم یکی دیگر از محسنات Agile می باشد



شما خیلی وابسته به PO هستین یعنی اشتباه PO پروژه رو Failed میکنه! من تجربه اینو داشتم که نماینده کارفرما از ما یه چیزی خواسته بعد از Demo اومده گفته مدیریت منظورش این نبوده من اشتباه فهمیدم!


اصلا .

Agile برای این تاکید دارد که بعد از هر Iterative باید دمو در اختیار مشتری قرار داده شود (حالا او این دمو را به هر احد و ناسی می خواهد نشان بدهد) . نقطه فصل Agile با دیگر روش ها در این است که در Agile بسیار سریع کج روی ها مشخص و قابل حل خواهند بود ولی در پروژه ای که 6 ماه کار شده است نمی توان کج روی ها را تصحیح کرد و به قول شما این یعنی Fail .

در این رابطه قبلا مطلبی در
این (http://sirasad.wordpress.com/2010/03/26/%D8%A7%D8%B3%DA%A9%D8%B1%D8%A7%D9%85-%D8%B1%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-%D8%B3%D9%88%DB%8C-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA/) آدرس نوشته ام که خواندن آن خالی از لطف نیست .



از طرف دیگه مثلا در یه پروژه ERP هر بخش از یه کارخونه یا سازمان کارشناس خودش رو داره در این حالت تیم PO دارین؟ در اینجا چندمحصولی نمیشه؟


مشکلی نیست ما برای هر Product Backlog می تونیم یک PO مجزا داشته باشیم . البته یک روش دومی وجود دارد بدین شکل :

Product Backlog به چندین Area Product Backlog تقسیم می شود . منظور از Area می تواند حوزه داده ای باشد . مثلا در مثال شما Sell Area Backlog شامل Area فروش خواهد بود . از اول مرور کنیم , ما یک Product Backlog برای کل سیستم ERP داریم و حتما برای این Backlog نیاز به PO هست و ما هم یکی را تعیین کردیم ولی ما در ادامه بدلیل وسعت پروژه و یا تنوع بخش های پروژه Backlog به چندین Area تقسیم کردیم (SELL Area) اما برای این Area ها چطور ؟ بلی حتما برای هر Area نیاز به یک Area Product Owner است که همه آنها زیر مجموعه PO اصلی فعالیت می کنند.




Role هایی که در تیم Agile شما فعالیت میکنن رو هم اگر بگین ممنون میشم.

Product Owner
Development Team
Scrum Master
Team Leader

حالا در بعضی از پروژه ها BA , QA هم می تواند شامل باشد (البته در صورت یافت) .

موفق باشید

Asad.Safari
شنبه 06 شهریور 1389, 18:33 عصر
دوستان مایل به یادگیری کامل اسکرام , می توانند به تاپیک زیر مراجعه فرمایند :

http://barnamenevis.org/forum/showthread.php?t=234947

موفق باشید