چرخه عمر یا حیات پروژه یک طیف (محدوده) پیوسته است که از نوع Predictive به معنی “پیش بینی شده” آغاز شده و به Adaptive به معنی “تطبیقی” ختم می شود، این طیف بر اساس میزان “درجه تغییرات” و “فراوانی اقلام تحویل” پروژه ، به صورت زیرتعریف می شود:
نکته:
هیچ گاه، یک نوع چرخه حیات نمی تواند برای همه پروژه ها مناسب باشد بلکه هر پروژه با توجه به زمینه فعالیت و ویژگی های ذاتی خود می تواند یک نقطه بهینه و مناسب از این طیف را برای چرخه حیات خودش انتخاب کند.
چرخه حیات پروژه به دسته های کلی زیر تقسیم بندی می شود:
- چرخه حیات پیش بینی شده یا برنامه محور (Predictive یا Plan-Driven)
- چرخه حیات تکراری (Iterative)
- چرخه حیات افزایشی (Incremental)
- چرخه حیات تطبیقی یا چابک (Adaptive یا Agile)
- چرخه حیات ترکیبی (Hybrid)
چرخه حیات Predictive:
یک رویکرد سنتی بوده که کارهای پروژه با توجه به اینکه چندین بار در پروژه های مشابه قبلی اجرا شده است، در یک فرآیند متوالی و قابل پیش بینی انجام می شود.(مانند روش های سنتی – Waterfall)
در این نوع چرخه حیات، محدوده ، زمان و هزینه پروژه در فازهای آغازین مشخص بوده و حجم بسیار زیادی از کارهای برنامه ریزی شده در آن اتفاق می افتد .
چرخه حیات Predictive برای پروژه هایی که میزان عدم قطعیت و پیچیدگی آنها کم است، مناسب می باشد.
چرخه حیات Iterative:
در این نوع چرخه حیات معمولا محدوده کلی پروژه در فازهای آغازین مشخص بوده ولی برآورد زمان و هزینه پروژه به طور مرتب اصلاح می شود.
Iterative رویکردی است که اجازه دریافت بازخورد های مشتری، قبل از تحویل کار ، یعنی در زمانی که کارها نیمه تمام هستند را به منظور بهبود و اصلاح ، فراهم می کند .
در چرخه حیات تکراری یا “Iterative ” ،محصول در هر تکرار، دچار تغییر و دگرگونی میشود بطوری که در هر تکرار، بر روی محصول کار شده و نهایتاً در تکرار آخر، کل محصول آماده خواهد شد.
(وابستگی این نوع چرخه حیات به خروجی تکرار مرحله قبل است)
- یک مثال از چرخه حیات Iterative:
چرخه حیات Incremental:
رویکردی است که اقلام کامل شده را به گونه ای تحویل می دهد که مشتری بتواند به سرعت و فوریت از آن استفاده کند.
در چرخه حیات افزایشی یا Incremental ،توسعه و تکامل یک محصول به صورت مرحله به مرحله و یا تکه تکه انجام می شود که در هر مرحله ، قسمتی از محصول نهائی به عنوان محصول کوچکتر به صورت %100 تکمیل و تحویل داده می شود بطوری که مشتری بتواند از آن قسمت استفاده کند .
به این تحویل اقلام، که بصورت محصولات کوچک و پشت سرهم (مکرر) ارائه می شود، incremental می گویند و زمان اجرای هر incremental (مرحله) با توجه به ویژگی های آن، می تواند متفاوت باشد(تصویر زیر):
نکته:
بر خلاف چرخه حیات Iterative ، در این نوع چرخه حیات با توجه به اینکه در ابتدای کار، دانش کاملی از محصول نهائی وجود دارد ، آخر کار بصورت قطعی مشخص است.
- مثال از چرخه حیات Incremental
فرض کنید بانکی نیاز به نرم افزاری دارد که خدمات بانکی خود از قبیل وام شخصی، وام خرید مسکن ، وام خرید خودرو و … را بصورت آنلاین در اختیار مشتریان قرار دهد.
حال تصور کنید که به دلیل بالا بودن درخواست تعداد مشتریان، الویت اول بانک، آنلاین نمودن خدمات وام شخصی باشد ، بنابراین دیگر نیازی نیست در ابتدای کار، تمامی ماژول های نرم افزار طراحی، تست و به مشتری تحویل داده شود بلکه می توان با استفاده از رویکرد Incremental ، در اولین افزایش (مرحله) ماژول وام شخصی طراحی ، تست و تحویل شود تا بانک بتواند به سرعت از آن استفاده کند و سپس در افزایش های بعدی ، ماژول های وام خرید مسکن و یا وام خرید خودرو توسعه یاید.
چرخه حیات Agile (چابک):
رویکردی است که از ویژگی های چرخه حیات Iterative و Incremental به منظور اصلاح اقلام پروژه و تحویل آنها بصورت سریع و پشت سرهم (مکرر) استفاده می کند .
این نوع چرخه حیات تمامی اصول “بیانیه چابک” (Agile Manifesto) را که مهمترین آن، رضایت مشتری می باشد را برآورده می کند.
چرخه حیات Hybrid (ترکیبی):
استفاده از یک نوع چرخه حیات برای کل پروژه ضروری نمی باشد بلکه می توان اجزاء و ویژگی رویکردهای سنتی (Predictive ) و چابک (Agile) را برای رسیدن به اهداف پروژه، با یکدیگر ترکیب کرد، در ادامه چند نمونه از چرخه حیات Hybrid ارائه می شود:
- حالت اول:
این نوع ترکیب زمانی استفاده می شود که به دلیل وجود عدم قطعیت، پیچیدگی و ریسک در فرآیندهای آغازین پروژه ، باید این بخش بصورت Agile توسعه یابد و سپس در فرآیندهای بعدی که شامل فاز اجرائی و راه اندازی می شود لازم است از رویکرد Predictive پیروی شود:
مثال :توسعه یک محصول با تکنولوژی پیشرفته (High-Tech) و سپس راه اندازی و آموزش آن به هزاران کاربر.
- حالت دوم:
در این حالت از هر دو رویکرد Agile و Predictive بصورت یک سناریوی مشترک در برخی از فرآیندهای پروژه استفاده می شود، به عبارت دیگر تیم پروژه، در برخی جنبه های پروژه (مانند انجام تکرار جهت اصلاح محصول) از رویکرد چابک و در برخی دیگر (مانند پیش بینی برآورد، تخصیص کارها و کنترل پیشرفت و …) از رویکرد Predictive استفاده کند:
*نکته ای که در این حالت وجود دارد آن است که تمامی اصول “بیانیه چابک” (Agile Manifesto) بطور کامل و شفاف درآن اجرا نمی شود.
- حالت سوم :
رویکرد غالب Predictive بوده که در بخش های کوچک ، از ویژگی های Agile استفاده شده است.
در این حالت چون عمده کارهای پروژه قبلا بارها انجام شده و قابل پیش بینی می باشد با رویکرد Predictive مدیریت می شود و بخش های کوچک پروژه که با عدم قطعیت و پیچیدگی مواجه هستند از رویکرد Agile استفاده می کند:
به عنوان مثال یک شرکت مهندسی قرار است ساختمانی طراحی کند که فقط در یک قسمت آن (مثلا یک اتاق) از تکنولوژی جدید و پیشرفته استفاده شده و مابقی قسمت ها مشابه ساختمانی قبلی طراحی می شود.
- حالت چهارم:
رویکرد غالب Agile بوده که در بخش های کوچک ، از برخی ویژگی های Predictive استفاده شده است:
این حالت زمانی استفاده می شود که یک جزء خاص در پروژه امکان مذاکره و یا اجرا با استفاده از رویکرد Agile وجود نداشته باشد.