کریستال و صفر تا صد آن در مدیریت چابک
کریستال و صفر تا صد آن در مدیریت چابک
کریستال یک چارچوب چابک است که در مقابل، فرآیندها و ابزارها بر روی افراد و تعاملات بینشان تمرکز می کند. به عبارت دیگر، این چارچوب نتیجه مستقیم یکی از ارزش های اصلی بیان شده در مانیفست چابک است.
متدهای خانواده کریستال، شامل انواع متفاوتی میباشد تا بتوانید مناسبترین متد هر پروژه را انتخاب کنید. علاوه بر این، رویکرد کریستال شامل اصولی میشود که متدها را با توجه به شرایط متفاوت هر پروژه متناسبسازی میکند. کوبرن در سال 2002 بر مبنای این باور که پروژههای مختلف متدهای مختلف را ایجاب میکنند، کریستال را بعنوان خانوادهای از متدها پیشنهاد کرده است. در کریستال، پروژهها بر مبنای اندازه و اهمیت سیستم دستهبندی میشوند. بر مبنای آنچه ممکن است به دلیل شکست در سیستم تولید شده از دست برود، چهار سطح اهمیت تعریف میشود که در واقع میزان بحرانی بودن یا میزان خسارتی است که در اثر خرابی سیستم به کاربر تحمیل میشود و شامل چهار نوع است:
- (C) راحت : از دست رفتن آرامش
- (D) پول پس انداز: از دست رفتن پول احتیاطی
- (E) پول ضروری: از دست رفتن پول ضروری
- (L) زندگی: از دست رفتن زندگی افراد
حداکثر افرادی که ممکن است در یک پروژه درگیر شوند، به اندازه پروژه بستگی دارد. مثلاً پروژهای با ردهبندی D6 پروژهای است با ماکزیمم تعداد 6 نفر که یک سیستم با حداکثر حساسیت پول احتیاطی را ایجاد میکنند.
متدهای کریستال بر روی ارتباطات افراد درگیر در پروژه تأکید بسیار دارند. بنابراین، پروژههایی با افراد بیشتر نیازمند متدهای سنگینتری هستند چون عده بیشتری را شامل میشوند و در نتیجه، به هماهنگی بیشتری نیاز دارند. به هر عضو از خانواده کریستال رنگی اختصاص داده شده است که میزان پیچیدگی را نشان میدهد، هرچه متد سنگینتر باشد، رنگی که به آن اختصاص داده میشود تیرهتر است. شکل زیر بخشی از شبکه مبنای پروژه را همانطور که در کریستال تعریف شده نشان میدهد.
شکل 1: ابعاد متدهای کریستال
با حرکت به سمت بالا در این شبکه بر اهمیت پروژه افزوده میشود. در حالی که حرکت به سمت راست اندازهی پروژه بزرگتری را نشان میدهد و نتیجه آن متدهای پیچیدهتر است. این شکل، همچنین تعدادی از متدهای کریستال را نشان میدهد که به پروژههایی با اندازه های مختلف اختصاص داده شده و دستهبندی پروژهای که آن را پوشش میدهند، شفاف، زرد، نارنجی و قرمز است که به ترتیب از شفاف به قرمز به سمت پیچیدگی بیشتر می رود. سایر اعضای سنگین وزن این خانواده (خرمایی مایل به قرمز، آبی، بنفش)در ادبیات کریستال ذکر شدهاند(البته در این شکل نشان داده نشدهاند) و بنابر این، شما در صورتی که زمینه آن ایجاد شود میتوانید آن را اضافه کنید.
هر متد کریستال یک چارچوب فرآیند توسعه را اعمال میکند و نیازمند استفاده از مجموعهای از اجزای معین فرآیند (عموماً تکنیکهای استاندارد راهبردها و تکنیکهای نسبتاً معمولی) و محصولات کارهای معین است؛ با این حال، حجم بزرگی از جزئیات باقی میماند تا تیم توسعه درباره آن تصمیم بگیرد. در بسیاری از موارد حتی به توسعهدهندگان اجازه داده میشود از سایر متدها، تکنیکهایی را به امانت بگیرند. بنابراین، متدهای کریستال ابزاری را برای متناسب کردن سایر متدها برای هماهنگی با پروژه به صورت زیر تهیه میکنند:
- در آغاز پروژه تیم های توسعه یک متد مبنا را به عنوان مجموعهای کوچک از قواعد کار انتخاب میکند و به تدریج آن را حین توسعه، اصلاح و کامل میکند. این تکنیک اصلی کریستال، برای سازگار کردن متد با سطوح مختلف اهمیت پروژه و واکنش به پیچیدگیهایی است که میان تیم های توسعه ایجاد میشوند.
- به منظور نظارت بر تلاشهای توسعه و تنظیم آنها، متدهای کریستال به صورت جامع و مکرر از کارگاههای بازخوردگیری استفاده میکنند. در حین آن، برنامههای پروژه، متد توسعه و کیفیت سیستم که تا به حال به دست آمده، بازنگری میشوند و اصلاحات لازم ایجاد میشوند.
از متدهای کریستال فقط آنهایی که در پروژههای واقعی استفاده میشوند تعریف شدهاند و بقیه هنوز ایجاد نشدهاند. سه متد کریستال که تا به حال تعریف شدهاند عبارتند از : کریستال نارنجی، کریستال نارنجی شبکه ای و کریستال شفاف.
کریستال نارنجی در سال ۱۹۹۸ میلادی توسط کوبرن معرفی شد و پروژههای D40, C40 E40, را مورد هدف قرار می دهد.
کریستال نارنجی شبکهای، نوع دیگری از کریستال نارنجی است که توسعه پروژه را در پروژههای جاری هدف قرار می دهد و در آن جریان پیوستهای از دستاوردها، در بازه زمانی نامحدودی تولید میشوند.
کریستال شفاف سبک ترین و پرکاربردترین عضو خانواده است.
از این سه متد، کریستال نارنجی و کریستال شفاف بطور عملی پیادهسازی شدهاند و روشهای کار آن ها را در زیر توضیح خواهیم داد.
فرآیندهای روش کریستال
کریستال شفاف
کریستال شفاف در ابتدا برای پروژه های سطح C6 و D6 هدفگذاری شدند و تنها یک تیم توسعه در آن وجود داشت. نرم افزار اجرایی، با اعضایی که در مجاورت هم کار میکنند، حداقل هر سه ماه یکبار تحویل داده میشود. با این وجود، معمولاً انتظار میرود تحویل زودتر انجام شود.
چرخه عمر پروژه در کریستال شفاف، شامل سه مرحله متوالی زیر است:
- مرحله اجاره: این مرحله خود شامل چهار مرحله می باشد که عبارتند از:
- اجاره هسته تیم: در این مرحله، افراد زیر تعیین میشوند.
- حامی اجرایی: کسی است که منابع مالی و پشتیبانی لجستیکی برای پروژه و دستورات ضروری تیم را تأمین میکند و ممکن است در مقام متخصص دامنه هم عمل کند.
- رهبرطراح: کسی است که در مقام مدیر پروژه، هماهنگ کننده، متخصص فنی و نیز مربی عمل میکند.
- کاربر نماینده: کسی است که در مقام متخصص عملکرد سیستم عمل میکند. درگیر کردن کاربر مستقیم و فعال برای موفقیت متد ضروری است.
- تعدادی تحلیلگر سیستم، برنامه نویس، طراح، متخصص کسبوکار، بازرس نویسنده آزمون، هماهنگ کننده و چند نفر دیگر که توسط تیم ضروری تلقی شوند(مخصوصاً سه نفر اصلی).
- انجام کاوش کامل (360 درجه)
یک مطالعه امکانسنجی اولیه است که شامل مرور سطح بالا و جامع پروژه، از امور کلیدی و مهمی است که نقش مهمی در توسعهی پروژه دارند. این مسائل عبارتند از: ارزش تجاری مورد انتظار از سیستم و الزامات یا خواستههای کلی از آن مدلهای مختلف جایگزینهای فنی، محدودیتها و برنامههای کلی پروژه، منابع ضروری و متد توسعه. این مرحله عموماً به تصمیمگیری درباره ادامه پروژه، یا خاتمه تلاشها به دلیل غیر ممکن بودن پروژه میانجامد.
- شکلدهی و تنظیم قوانین متد
مجموعهای حداقلی از قوانین مورد توافق تیم است و به عنوان ساختار متد توسعه سیستم استفاده میشود. این مجموعه اولیه، حین تحویل دورهای، اصلاح و تکمیل میشود و به تدریج متدی را شکل میدهد که برای پروژه مناسب است.
- ایجاد برنامه اولیه پروژه
عموماً شامل نقشه پروژه که کارهای توسعه و وابستگیهای آنها را نشان میدهد، می باشد و سپس یک برنامه عرضه است که تاریخهای برنامهریزی شدهی تکمیل پروژه را برای تکرارها و چرخشهای تحویل نشان میدهد. کارها شناسایی و اولویتبندی شده و سپس با استفاده از تکنیکی که برنامهریزی برق آسا نامیده میشود، برآورد میشوند. برنامهها حین تحویلهای دورهای به روزرسانی و بازدید مجدد میشوند.
- مرحله تحویل دوره ای: این مرحله شامل چندین چرخهی تحویل است. هر چرخه تحویل چهار فعالیت را شامل میشود که عبارتند از:
- اصلاح مجدد برنامه عرضه
الزامات و یا خواستهها و برنامههای پروژه بر طبق تجارب چرخههای پیشین به روزرسانی و بازنگری میشوند. این اصلاحات روی برنامهها نیز اعمال میشوند و جزئیات به منظور سازگار کردن با تکرارهای چرخه جاری اضافه میشوند.
- توسعه در تکرار ها
یک یا چند تکرار در هر چرخه تحویل انجام میشوند هر تکرار از یک هفته تا سه ماه زمان میبرد و شامل سه فعالیت زیر است:
- برنامهریزی تکرار: برنامهای که به درستی تقسیمبندی شده و شامل کارهایی است که باید در تکرارها صورت گیرند، ایجاد میشود.
- برنامه دورهای آزمون یکپارچگی: هرتکرار شامل فعالیتهای روزانه چرخه است. چرخه روزانه تیم، شامل جلسه آغاز(مانند اسکرام) است که در آن اعضای تیم اطلاعات و ایدههای خود را درباره دستاوردها برنامهها و مشکلات مبادله میکنند. باقی روز معمولاً شامل چندین چرخه یکپارچه است. حین هر چرخه یکپارچه برنامه نویسان، طراح کارهای طراحی و اجرا را انجام میدهند (طراحی و برنامهنویسی توامان یک فعالیت در کریستال در نظر گرفته میشوند). آزمودن واحدها در پایان چرخه یکپارچگی و آزمودن کدهای نوشته شده توسط برنامهنویسان طراح، در طول بخشهای چرخه یکپارچگی به سیستمی که تا این زمان ساخته شده اضافه و با آن یکپارچه میشوند و سپس آزمونهای یکپارچگی مناسب انجام میشود. کدهای ایجاد شده به صورت پیوسته با سیستم یکپارچه میشوند، این کار معمولاً چندین بار در روز انجام میشود.
- آئین تکمیل تکرار: کارگاه بازخوردگیری برای بازخوردگیری از کیفیت کد نوشته شده بر کارآیی متد توسعه و واقع گرایانه بودن برنامهها تشکیل میشود.
- تحویل به کاربر واقعی:
سیستم یکپارچهشدهای که حین فعالیتهای پیشین ایجاد شده به تعداد اندکی از کاربران ارائه میشود (ترجیحاً یک نفر) و از بازخوردگیری برای بهبود سیستمی که تا به حال ایجاد شده و اصلاح برنامههای الزامات (خواستهها) استفاده میشود. مانند بیشتر متدهای چابک، تحویل در کریستال شفاف تناوب دارد وآزمونهای پذیرش تکراری واجب است. بنابراین تعداد کاربرانی که سیستم به آنها ارائه میشود باید کم باشد تا از هزینههای آموزشی کاسته شود.
- تردید روی تحویل:
در کارگاه، تیم روی کیفیت محصول به دست آمده از متد توسعه و برنامهها تردید می کنند. هدف شناسایی نقاط ضعف و قوت و تصمیمگیری بر روی شیوههای رفع نواقص است.
- مرحله خاتمه: هدف اصلی این مرحله اجرای آزمون پذیرش، تدارک محصول نهایی و محیط کاربر برای توسعه نهایی و در نهایت، تبدیل سیستم است. همانطور که انتظار میرود، این مرحله نیز شامل فعالیت بازخوردگیری نهایی با هدف ثبت درسهای آموخته شده پروژه برای استفاده آتی از آنهاست.
کریستال نارنجی
برخلاف متد کریستال شفاف که برای پروژههای کوچک شامل 6 توسعهدهنده بود، متد کریستال نارنجی برای پروژههایی با اندازه متوسط با اعضای 10 تا 40 نفره است و پروژه معمولاً 1 تا 2 سال به طول میانجامد. در این روش تیم به چند گروه میان کارکردی تقسیم میشود و از استراتژی تنوع کلنگر استفاده میکند. فرآیندهای روش کریستال نارنجی در شکل زیر نشان داده شدهاست :
شکل 2: مراحل تهیه یک نمونه از نرمافزار در متدولوژی کریستال نارنجی
ویژگی های مشترک متدهای کریستال
در بین تمامی متدهای کریستال، هفت ویژگی مشترک وجود دارد. هر چه این ویژگیها در یک پروژهای بیشتر نمایان باشد، احتمال موفقیت آن پروژه نیز افزایش پیدا میکند. این ویژگی ها به شرح زیر می باشد:
- تحویل افزایشی به صورت منظم: یعنی نرم افزار را به صورت منظم در بازه زمانی کوتاه منتشر کنید. این ایده از متدولوژی چابک آمده است.
طراحان و توسعهدهندگان تصمیم میگیرند که چه نوع ویژگی را هر نسخه از انتشار باید داشته باشد و سپس طبق برنامه زمانی انتشار به هر نسخه ویژگیهای مورد نظر را اضافه کرده و آن را منتشر میکنند. نسخهها باید به صورت چند هفته یکبار و یا سه ماه یک بار منتشر شوند. بازه زمانی انتشار بستگی به بزرگی پروژه دارد. در این روش سرمایه گذاران خیلی زودتر مشکلات پروژه را متوجه میشوند و بنابراین در انرژی و هزینه صرفهجویی بسیاری می شود.
- بهبود بازتابی: همان فرسنگ شمار است. این ویژگی باعث میشود که توسعهدهندگان در طول توسعه منظم، توقفهایی را داشته باشند. این توقفها برای بررسی این است که، آیا روندی که در حال طی کردن آن هستند برای ادامه مناسب هست یا خیر و اگر مناسب نیست تلاش میکنند یک فرآیند بهتری را برای ادامه پیدا کنند. همچنین توسعه دهندگان در این زمان با سرمایه گذاران مشورت میکنند تا مطمئن شوند، روندی را که در حال طی کردن هستند، مورد تایید آن هاست. این دیدارها معمولا هر چند هفته یکبار می باشد.
- ارتباط متداوم و نزدیک: در مدل کریستال شفاف که کوچکترین متد در متدولوژی کریستال است، اعضای گروه که حداکثر 8 نفر هستند باید نزدیک به هم و در یک اتاق کار کنند تا تبادل اطلاعات به سهولت انجام شود. برای تیمهای بزرگتر از 8 نفر چون حواسپرتی افزایش پیدا میکند، اعضا در یک ساختمان قرار میگیرند. انتظار میرود، در پروژههایی که این ویژگی را دارند به افرادی که نیازها را تعریف میکنند دسترسی مستقیم وجود داشته باشد.
- امنیت شخصی: افراد در گروه باید بتوانند به طور آزادانه صحبت کنند. اگر شخصی هنگام اظهار نظر و یا پرسیدن سوالی مورد تمسخر قرار بگیرد، در مراحل بعدی صحبت نخواهد کرد و بدین ترتیب ارتباط بین اعضای گروه از بین میرود. افراد گروه باید این قابلیت را داشته باشند تا بتوانند به یکدیگر اطمینان کرده و هنگام صحبت کردن احساس راحتی کنند.
- مرکز تمرکز در کریستال به دو چیز اشاره می کند:
- تمرکز کافی در کارها و مشکلاتی که در طول پیشرفت پروژه به وجود میآید.
- تمرکز بر روی مسیر کلی حرکت پروژه.
در این حالت در مورد معنای هدف بحث میشود. هدف باید کاملا روشن باشد و تمامی اعضا باید به طور کاملا واضح بدانند بر روی چه هدفی کار میکنند. مدیر پروژه باید اهداف را اولویتبندی کند تا هر توسعهدهنده بداند در حال حاضر بر روی چه بخشی تمرکز کند.
- دسترسی آسان به کاربر متخصص: این ویژگی باعث میشود که توسعهدهندگان با فردی متخصص در این زمینه کار کنند. این فرد میتواند به سوالات افراد پاسخ داده و برای مشکلات آنها راه حل های مختلفی ارائه کند. کاربر متخصص باید یک کاربر واقعی باشد، نه فقط یک تست کننده از خود گروه توسعه دهنده.
هر چه کاربر متخصص وقت بیشتری را برای گروه بگذارد تاثیری بیشتری بر روند موفقیت پروژه خواهد داشت اما این امر همیشه امکان پذیر نیست. کاربر متخصص حداقل باید هفتهای 1 روز در جلسه ای 2 ساعته با توسعهدهندگان بحث داشته باشد و همچین باید از طریق تلفن همیشه در دسترس باشد.
- تست خودکار و یکپارچه سازی به صورت منظم: اجزای مختلف پروژه باید به صورت منظم یکپارچه شوند و به محض به وجود آمدن مشکلی، باید برای برطرف کردن آن اقدام شود. اگر هر مشکل در همان لحظه برطرف شود، مشکلات رشد نخواهند کرد و سادهتر برطرف خواهند شد. در این بخش تست خودکار و یکپارچه سازی منظم میتواند حل مشکلات را سریعتر کند.
نقشها و مسئولیتها
نقشها در کریستال نارنجی به صورت زیر میباشند:
- اسپانسر یا حامی مالی
- متخصص کسبوکار
- متخصص کاربرد (متخصصی که کارش استفاده از پروژه است طوری که عیبها به طور کامل مشخص شود. در واقع کابرد پروژه را میسنجد.)
- مسئول آماده سازی تجهیزات فنی
- تحلیل گر/طراح کسبوکار
- معمار
- مربی طراح
- سرپرست طراح-برنامه نویس
- طراح رابط کاربری
- نویسنده
- آزمایشکننده
اما در متدولوژی کریستال شفاف فقط یک تیم وجود دارد که افراد آن باید در یک دفتر دور هم جمع شوند و در نقشهای مدیریت، طراح و برنامهنویس ارشد، طراح و برنامهنویس، و کاربر فعالیت کنند.
جمع بندی
کریستال یکی از انعطافپذیرترین چارچوبها است، زیرا حول افراد پروژه طراحی شده است و به هیچ مجموعهای از فرآیندها یا ابزارها وابسته نیست و به تیم توسعهدهنده آزادی زیادی میدهد تا فرآیندهایی که برای آنها کار میکند، را توسعه دهند. این چارچوب برای تیم های توسعه با تجربه و مستقل ایده آل است.
با این حال، از آنجایی که کریستال بر ارتباطات تیمی پیرامون محصول در حال ساخت، تمرکز دارد و از مستندسازی و گزارشدهی غیر ضروری جلوگیری میکند، برای سایر بخشهای سازمان دشوار است که بدانند محصول چگونه در حال توسعه است.
حتما نظر خودتون رو در رابطه با این مقاله با ما به اشتراک بذارید
دیدگاهتان را بنویسید