منبع پایان نامه درمورد نرم افزار، کسب و کار

ي که هر کدام ارائه مي‌دهند، متفاوت مي‌باشند. براي آشنايي بيشتر با اين روشها و خصوصيات آنها چند روش به صورت اجمالي معرفي خواهند شد. سعي مي شود که عمق و وسعت بحث آتي در مورد هر کدام از آنها فراتر از مجال اين مطالعه نباشد. طبعا مطالعه کاملتر هر روش حوصله اي فراتر از اين گزارش را مي خواهد که هدف اصلي اين رساله نيست. نکته قابل ملاحظه در اين خصوص عدم تناسب مستندات موجود در خصوص اين روشها است. به عنوان مثال در خصوص روش XP مستندات بسيار مناسب و جامعي موجود است اما در مورد روشي چون DSDM چندان مستند قابل اتکايي وجود ندارد. بقيه روشها نيز از اين حيث در بين اين دو قرار دارند.
2-5-1 روش Extreme Programming (XP)
روشXP بي شک يکي از معروفترين و پر طرفدارترين روشهاي چابک است. اين روش که در ابتدا در سال 1998 معرفي شد [16]، در سال بعد آن با انتشار کتاب معروف Kent Beck به نام ” Extreme Programming Explained: Embracing change” بيشتر مورد توجه قرار گرفت. اين روش بيشتر مورد توجه برنامه نويساني قرار گرفت که از روشهاي سنتي توسعه نرم افزار سرخورده شده بودند[7] و به دنبال فعاليت هاي جديد و فوق العاده تري بودند. دوازده قاعده XP مانند خود روش، ساده و مختصر هستند. اين سادگي چنان است که هر کس مي تواند بدون خواندن حتي يک صفحه از کتاب فوق آن را پياده نمايد[10].
* بازي برنامه ريزي6
نيازمندي ها را داستان هاي کاربر مي نامند. هر نيازمندي بر روي يک کارت داستان درج مي‌گردد و زمان مورد نياز براي اجراي آن نيز تخمين زده مي شود. در اين روش نيازمندي ها به زباني ساده و داستان گونه که براي همه عوامل قابل فهم باشند، نوشته مي شوند. در شروع هر تکرار، در جلسه اي با حضور مشتري، مديران و توسعه دهندگان، نيازمندي هاي کاربر، براي آن تکرار بررسي شده و اولويت بندي مي‌گردند.
* نشرهاي کوچک7
يک ورژن ابتدايي از سيستم پس از چند تکرار اول، به عنوان محصول اوليه شناخته مي شود. سپس هر چند روز/هفته، نسخه جديدتري (تکامل يافته تر) ارائه مي گردد. روش XP مدل مارپيچي اسپيرال را براي نشرهاي خود به کار ميگيرد و نشرهاي کوچک آن هر 3 يا 4 هفته يکبار منتشر مي‌گردند. در انتهاي هر نشر مشتري ضمن بررسي و بازرسي محصول، ايرادات و پيشنهادات خود را مطرح مي کند.
* استعاره (تشبيه)8
مشريان، مديران و توسعه دهندگان XP تشبيه يا استعاره هايي را براي مدل سازي سيستم مي سازند. در واقع اعتقاد بر اين است که هر سيستم نرم افزاري بر اساس يک استعاره يکپارچه سازي شده است. بر اساس کتاب Beck، استعاره سيستم، داستاني است که همه مشتريان، برنامه نويسان و مديران مي توانند در مورد چگونگي کار سيستم بيان کنند. در واقع بياني عاميانه از سيستم در حال توسعه را به عنوان ملاکي براي بحث در مورد سيستم به رسميت مي شناسد.
* تست ها
توسعه دهندگان قبل از هر کاري تست هاي مربوط به آن بخش را تهيه مي کنند. در واقع تهيه تست پذيرش، مرحله اي قبل از نوشتن کد توسعه سيستم است. مشتريان نيز تست هاي کاربردي يا عملياتي را براي هر تکرار تهيه مي کنند و در پايان هر تکرار، همه تست ها اجرا مي شوند.
* طراحي ساده
از توسعه دهندگان خواسته شده که طراحي را تا حد ممکن ساده انجام دهند. ” همه چيز يکبار و فقط يکبار گفته مي شود” [5] در طراحي ساده فرض بر اين است که توسعه دهندگان نبايد نيازهاي پروژه را پيش بيني نمايند و بايد فقط ساده ترين کاري که قابل انجام است را انجام دهند.
* بازسازي9
در همان حالي که توسعه دهندگان در حال کار هستند، طراحي بايد به نحوي باشد که آن را حتي الامکان ساده نگه دارد. در اين ديدگاه بدون تغيير هر وظيفه، سعي در بهبود ساختار آن مي شود. تکرار مستمر اين امر يکي از تأکيدات XP است.
* برنامه نويسي جفتي(زوج برنامه نويسي)
دو توسعه دهنده پشت يک کامپيوتر ( يک کيبورد و يک مانيتور) نشسته و کد را به صورت جفتي مي نويسند.
* يکپارچه سازي مستمر10
برنامه نويسان بايستي کد هاي جديد را به طور مستمر به سيستم اضافه نمايند. پس از افزودن کد جديد لازم است تمام تست هاي کاربردي مجددآً روي سيستم اعمال شود و در صورت وجود نقص، کد اضافه شده را براي رفع مشکل از سيستم حذف نمايند.
* مالکيت جمعي11
مالکيت کد متعلق به همه توسعه دهندگان است و هر کس در هر زمان و هر جا که لازم باشد مي تواند تغييرات مورد نياز را روي آن اعمال کند.
* مشتري در محل
براي هر محصول لازم است يک نفر از طرف مشتري همراه تيم توسعه به طور دائم کار کند. اين فرد لازم است به سوالات احتمالي توسعه دهندگان پاسخ داده، تستهاي مورد نياز براي پذيرش محصول را انجام دهد و از روند پيشرفت توسعه چنانچه توقع دارد، اطمينان حاصل کند.
* هفته هاي 40 ساعتي
نيازمندي هاي هر تکرار بايد به نحوي انتخاب شود که توسعه دهندگان به زمان بيشتري براي اضافه کاري در هفته در طول يک تکرار نياز نداشته باشند. در XP عقيده بر آن است که اضافه کاري موجب خستگي و در نتيجه افت کيفيت محصول توليدي خواهد شد.
* فضاي کاري باز
توسعه دهندگان بايستي در يک فضاي کاري مشترک در کنار همديگر کار کنند به نحوي که ماشين هاي توسعه مشترک در مرکز اين مکان قرار گيرند. هدف از اين اصل، تسهيل روابط بين افراد در سطح سازمان است.
متخصصين معتقدند که قدرت و توانمندي XP از هيچ يک از اصول 12گانه فوق به طور منفرد حاصل نمي شود و در واقع ترکيب آنها موجب ايجاد توانمندي در اين متدولوژي مي‌باشد. همچنين پنج اصل کليدي در XP که توسط فعاليت هاي اين روش محقق مي شوند عبارتند از “ارتباطات”، “سادگي”، “بازخورد”، “جرات” و “کار با کيفيت” [7] دست اندرکاران توسعه درXP به راحتي مي توانند در مورد مفيد بودن يا نبودن مدل در توسعه نرم افزار نظر دهند.
ساير ويژگيهاي XP عبارتند از:
* اندازه تيم: از آنجا که تيم توسعه بايد بتواند در يک فضاي مشترک کار کند، اندازه تيم محدود به تعداد نفراتي است که بتوانند در يک اتاق جاي گيرند و با هم کار کنند و معمولا بين 2 الي 10 نفر در نظر گرفته مي شود.
* طول هر دوره تکرار: XP داراي کوتاهترين طول هر تکرار بين روشهاي چابک بوده و توصيه شده است که تکرار ها زير دو هفته باشند.
* پشتيباني از تيم هاي غير متمرکز: به دليل تأکيد XP بر حضور افراد در يک محل و حداکثر ارتباط آنها در اين روش، از تيم هاي غير متمرکز پشتياني نمي‌شود. اگر چه امروزه با استفاده از ابزارهاي ارتباطي تا حدي ارتباطات تيمي به صورت الکترونيکي تامين مي شود، اما در نهايت کماکام موانعي در اين خصوص (جنبه هاي انساني توسعه) وجود دارد.
* حساسيت سيستم: روش XP براي توسعه يک طيف سيستم خاص طراحي نشده است و به خودي خود محدوديتي براي کاربرد آن در سيستم هاي حساس وجود ندارد.
2-5-2 اسکرام Scrum
اسکرام به همراه XP يکي از متداولترين روشهاي چابک مي باشد. اين روش در سال 1996 با شعار “اسکرام مي پذيرد که فرايند توسعه قابل پيش بيني نيست” معرفي شد و توسط چند توسعه دهنده نرم افزار با موفقيت مورد استفاده قرار گرفت. نام اين روش از بازي راگبي گرفته شده است. در اين بازي وقتي اسکرام رخ مي‌دهد که بازيکنان يک تيم در کنار همديگر جمع مي شوند و براي پيشبرد بازي تلاش مي کنند [1, 7]. در شکل 1 شماي چرخه حيات توسعه در روش اسکرام نشان داده شده است. پروژه هاي اسکرام به تکرار هاي متعددي تقسيم مي شوند. هر تکرار در اسکرام، اسپرينت12 ناميده مي شود و شامل موارد زير است[5] :

* برنامه ريزي قبل از اسپرينت: همه کارهايي که در سيستم بايد انجام گيرند در محلي به نام بک لاگ13 نگهداري مي شوند و طي جلسه برنامه ريزي قبل از هر اسپرينت، مواردي از بک لاگ که قرار است در آن اسپرينت انجام گيرند، انتخاب مي شوند. همه موارد موجود در بک لاگ توسط نماينده مشتري که صاحب محصول14 ناميده مي شود اولويت بندي مي‌شوند و تيم توسعه بر اساس اولويت آنها اقدام به انتخاب آنها مينمايد. اين موارد منتخب، بک لاگ اسپرينت را تشکيل مي دهند.

شکل 2-1: چارچوب کاري اسکرام

* اسپرينت: به محض اتمام جلسه برنامه ريزي، بک لاگ اسپرينت تحويل تيم مي‌گردد. در اين مرحله همه وظايف موجود در بک لاگ اسپرينت تثبيت شده و در طول اسپرينت غير قابل تغيير خواهند بود. اعضاي تيم از بين وظايف موجود وظايف مورد نظر خود را انتخاب کرده و کار بر روي آنها را شروع مي کنند. جلسات کوتاه روزانه اسکرام15 در توفيق اسکرام بسيار حياتي هستند. اين جلسات هر روز صبح براي بررسي اقدامات انجام شده، مشکلات پيش رو و وضعيت پروژه بين اعضاي تيم برگزار مي گردد. اين جلسات که بايد حداکثر 15 دقيقه باشند، با هدف افزايش ارتباطات بين افراد تيم و تأکيد بر هدف مشترک و رفع موانع برگزار مي گردند.
* جلسات پس از اسپرينت (دمو): در پايان هر اسپرينت، جلسه اي با حضور همه عوامل پروژه برگزار مي گردد. در اين جلسه ضمن بررسي و تحليل پيشرفت پروژه، سيستم ساخته شده فعلي نيز نمايش داده مي شود. اين جلسه حدود 4 ساعت به طول خواهد انجاميد.
* جلسه بازنگري اسپرينت16: اين جلسه که پس از جلسات دموي اسپرينت برگزار مي گردد با هدف بررسي آنچه در طول اسپرينت قبلي رخ داده است تشکيل مي گردد.
نقش افراد در اسکرام
در يک تيم اسکرام افراد تيم در قالب يکي از نقش هاي زير سازماندهي مي شوند:
* مدير اسکرام (اسکرام مستر)17: وظيفه تسهيل اسکرام بر عهده اين فرد است. مدير اسکرام وظيفه دارد که موارد و مشکلات پيش روي تيم را رفع کرده و به افراد تيم در دستيابي به اهداف اسکرام کمک نمايد. اگر چه مدير اسکرام نقش رهبري تيم را بر عهده دارد، اما وظيفه دارد که تيم را به کار بر روي وظايف اسپرينت متمرکز نمايد.
* صاحب محصول: اين فرد نماينده ذي نفعان پروژه و به نوعي صداي مشتري است. اين فرد وظيفه دارد که اطمينان حاصل کند که تيم ارزش هايي را براي کسب و کار ايجاد مينمايد.
* تيم توسعه: تيم توسعه متشکل از افرادي است که وظيفه توسعه سيستم قابل ارائه را بر عهده دارند. اين تيم متشکل از افرادي است که وظايف مختلف را بر عهده دارند. اين وظايف شامل تحليل، طراحي، توسعه، تست، مستند سازي و ارتباطات مي باشند. اين تيم خود سازمانده بوده و تقسيم وظايف در آن با مشارکت جمعي و تعامل گروهي انجام مي گيرد.
مبدع اسکرام اصول کليدي زير را براي اسکرام تعريف نموده است [17, 18] :
1- تيم هاي کاري کوچک که ارتباطات آنها حداکثر، بالاسري آنها حداقل و به اشتراک گذاري دانش ضمني در آنها حداکثر است.
2- تطبيق پذيري به تغييرات فني و تجاري براي حصول اطمينان از اينکه بهترين محصولي که مي تواند ساخته شود، توليد گردد.
3- “ساخت18” هاي مکرر که بتوانند تست، بازرسي و مستند سازي شوند.
4- تقسيم کردن کار و وظايف تيم به بخش هايي با حداقل وابستگي
5- تست مداوم و مستند سازي محصول به محض ساخته شدن
6- توانايي بيان خاتمه يک محصول در زمان مورد نياز (چرا که کاربر نهايي منتظر آن است، چرا که شرکت به پول آن نياز دارد و …)
اسکرام مانند همه روشهاي تکراري، مبتني بر زمان بسته 19است، يعني هر اسپرينت بايستي بر اساس زمان بندي، دقيقاً به موقع تمام شود و چنانچه در طي هر اسپرينت نيازمندي هاي موجود در بک لاگ اسپرينت به هر دليلي تکميل نشده اند، تيم بايستي آنها را کنار گذاشته و مجددا وارد بک لاگ اصلي نمايد.
ساير ويژگيهاي اسکرام عبارتند از:
* اندازه تيم: اگرچه در منابع اصلي اسکرام، تعداد نفرات تيم حداکثر 7 نفر ذکر شده است اما در عمل، اندازه تيم ايده آل را 3±6 نفر مي‌دانند. اين تيم بايد شامل حداقل يک توسعه دهنده، يک مهندس تضمين کيفيت و يک مستند ساز باشد.
* طول(زمان) هر اسپرينت: اگرچه طول هر اسپرينت توسط مبدع اسکرام 1

دیدگاهتان را بنویسید