بررسی Agile بصورت جزئی تر (قسمت اول)

در مورد مدیریت پروژه ی به روش Agile با متدلوژی های مختلف مانند Scrum یا RUP , XP و … مطالب کلی زیادی وجود دارد اما در این نوشته قصد دارم نکات جزئی تر و تخصصی تر که کمتر در مورد آن بحث شده است همچنین تجربیات شخصی ای که داشته ام را بنویسم تا برای کسانی که آشنایی اولیه به این روش اجرای پروژه های نرم افزاری دارند مفیدتر باشد .
بصورت اجمالی agile را بصورت زیر تعریف می کنم :
Agile یک روش برای مدیریت پروژه است که دارای متدلوژی های مختلفی است اما در همه ی آنها موارد مشترکی از قبیل برنامه ریزی و طراحی تدریجی و افزایشی وجود دارد . شرکتهایی که با Agile کار می کنند چابک هستند و در هر لحظه می توانند چشم انداز و اهداف خود را اصلاح کنند و با توجه به وضعیت کسب و کار آنها را تغییر دهند ، محصولاتی که می سازند برای نیاز مشتری هایی است که از قبل مشخص شده اند. در این روش ابتدای بازه های زمانی از قبل مشخص شده که اصطلاحا به آنها Iteration گفته می شود ، جلسات درون تیمی انجام می شود و در آن تصمیم گرفته می شود که پروژه با چه سرعتی و در کدام جهت پیش رود . بعد از هر iteration یک نسخه از محصول نرم افزاری برای فیدبک به مشتریان و مدیران شرکت ارائه می شود و با توجه به نظرات، برنامه ی مرحله ی آینده ریخته می شود . به همین صورت پروژه به طور تدریجی و افزایشی به سمتی می رود که بهتر است و محصولی در نهایت ارائه می شود که اولا نیاز بازار است و ثانیا مورد تایید مشتریست .
با توجه به این توضیحات اولیه نکات جزئی و تخصصی تر را در این نوشته و قسمتهای بعدی که منتشر خواهد شد ذکر می کنم .

employee-run


1- اینکه چه کاری چقدر طول می کشد نباید خللی در زمان جلسات Iteration وارد کند ، جلسات دقیقا بعد از رسیدن به زمان تعیین شده برگزار می شوند .
2- کاهش ریسک در Agile بصورت تدریجی انجام می شود . مانند مدیریت پروژه ی سنتی نباید یک زمان خاص برای فکر کردن در مورد ریسک های پیش رو گذاشت و زمانی برای پیدا کردن راه حل ، می بایست در طی انجام پروژه هر ریسکی که به ذهن میرسد یک جا یادداشت شود و طی زمان هر راه حلی که به ذهن می رسد نیز زیر آن یادداشت شود و راه حل های مختلف هم همان موقع تست و امتحان شود و گزارش نتایج تست نیز نوشته شود .
3- اینکه چه کاری انجام بدهید و پروژه را چگونه به جلو ببرید را فقط و فقط کسب و کار مشخص می کند ، هیچ امکاناتی را بدون توجیه کسب و کاری نباید انجام دهید ، هیچ کاری را برای آینده نباید انجام دهید ، همه ی کارها برای زمان حال و کسب و کار بهتر می بایست انجام شود .
4- برای تصمیم گیری در مورد ویژگی های سیستم در هر مرحله باید به دو مورد توجه کرد الف : کدام ویژگی ارزش کسب و کار بیشتری را دارد . ب: کدام ویژگی ریسک بیشتری را کاهش می دهد .
5- تمام اعضای تیم باید دائما در حال رویاپردازی/نگرانی باشند ، رویاپردازی برای کسب و کار بهتر (الف) و نگرانی بابت ریسکها (ب) همچنین هم از اعضای تیم و هم از مشتری می بایست فیدبک گرفته شود
6- در مواجه با ریسک ها سه روش موجود است : از بین بردن ریسک ، منتقل کردن ریسک به ریسک دیگر ، کاهش اثر ریسک
7- مراحل مقابله با ریسک ها به این صورت است الف : آنالیز ریسک ب: ارزیابی ریسک ج: مهیا کردن نحوه ی مقابله با آن د:مانیتور کردن (به این معنی که بعد از تصمیم گیری در مورد راه حل می بایست شخصی مسئولیت دخداد این ریسک را داشته باشد و هر زمان اتفاق افتاد گزارش دهد و بعد از مقابله با آن هم نتیجه را گزارش دهد)
8- Agile برای همه مناسب نیست و برای هر پروژه ای هم مناسب نیست ، افرادی میتوانند به روش Agile کار کنند که روحیه ی فردگرا نداشته باشند و روحیه ی تیم گرا داشته باشند ، وقتی کدی می نویسند احساس مالکیت شخصی روی آن نکنند ، کد را برای تیم بدانند و اگر کسی آن را تغییر داد احساس بدی پیدا نکنند . تمام افراد تیم باید خود مدیر و خود منضبط و خود سازمان یافته باشند ، همه باید پروژه را از خود بدانند و به مدیر پروژه به عنوان رهبر نگاه کنند نه رئیس ، همچنین پروژه هایی مناسب روش Agile است که نتیجه و نهایت کار معلوم نباشد و با محصولی از پیش طراحی شده و ساخته شده سروکار نداشته باشیم . برای این پروژه هایی که اول و آخر آن 100% معلوم است همان مدیریت پروژه ی معمولی و سنتی کافیست، Agile مخصوصا برای کار نرم افزار مناسبت است که هر روز ممکن است نتیجه و محصول نهایی و حتی استراتژی شرکت تغییر بنیادین کند .
9- در Agile رهبری و هدایت توسط سرپرست تیم انجام می شود نه مدیریت و سازماندهی سنتی ، هر تیم برای خودش تصمیم میگیرد و اطلاعات جزئیات سیستم به مقامهای بالا نخواهد رسید .
10- برنامه ریزی هر مرحله iteration در جلسه ی تیمی با حضور همه ی اعضای تیم انجام می شود و با توجه به روند پروژه و مراحل قبل برنامه ریزی برای این مرحله ی پیش رو در جلسه انجام می شود . مراحل برنامه ریزی به این صورت است الف) وضعیت فعلی چشم انداز کجاست ؟ ب) نقاط کلیدی پروژه کجاست ج)سنگ نشان ها (milestone)برای هر مرحله چیست ؟ د) محیط اجرای agile چگونه است
11- برای مشخص شدن وضعیت چشم انداز باید به هردفعه این سوالات جواب داد : چه کسی مشکل دارد؟ مشکل چیست؟ سود منفعت پروژه کجاست و چرا نیاز داریم این پروژه انجام شود . چگونه می فهمیم موفق شدیم .
12- سنگ نشان ها برنامه ی جزئی هر مرحله است یعنی در این مرحله چه کارهایی باید انجام دهیم و به چه چیزهایی باید برسیم . ابتدا همه ی این موارد را بدون اولویت می نویسیم و بعد اولویت بندی میکنیم .
13- اینکه مکان جلسات کجا باشد و چه امکاناتی داشته باشد هم می بایست مشخص باشد ، مثلا همه ی تیم بتوانند روی تخته وایت برد بنویسند و ایده های خود را بیان کنند .

(در قسمت های بعدی به ادامه ی این موارد می پردازم)


2 پاسخ به “بررسی Agile بصورت جزئی تر (قسمت اول)”

  1. […] ادامه نوشته ی پیشین راجع به بررسی Agile بصورت جزئی تر (قسمت اول) و راهکارهای عملی در مدیریت پروژه چابک ، در این نوشته به […]

  2. […] ادامه نوشته های پیشین قسمتهای اول و دوم  راجع به بررسی مدیریت پروژه ی چابک بصورت جزئی تر […]

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *