
مدیریت چابک یک رویکرد تکرارپذیر برای مدیریت پروژههای توسعه نرمافزار است که بر انتشار مداوم و ترکیب بازخورد مشتری با هر تکرار تمرکز دارد. تیمهای نرمافزاری که از روشهای مدیریت چابک استقبال میکنند، سرعت توسعه خود را افزایش میدهند، باعث بهبود همکاری میشوند و توانایی پاسخگویی بهتر به روندهای بازار را تقویت میکنند.
گسترش انقلابی مدیریت پروژه چابک در بسیاری از شرکتها مدیریت پروژه را با دوراهی روبرو کرده است.
مدیران پروژه در حال دست و پنجه نرم کردن با این واقعیت هستند که باید سال ها تجربه و آموزش خود را با فلسفه ای چابک تر منطبق سازند، در غیر این صورت میتوان آن ها را مانند دایناسورها دانست.
ایجاد نسخه جدیدی از حرفه ای در مدیریت چابک (ACP) از سوی موسسه مدیریت پروژه آمریکا (PMI) نشان داده است که این موسسه ساخت ابعاد چالاک تر در کتاب دانش مدیریت پروژه (PMBOK) را نیاز دیده است. مدیران در بسیاری از شرکت ها، به مدیریت پروژه به چشم یک مرکز هزینه های لازم و یا از دید یک حوزه ای برای ذخیره بودجه منابع نگاه میکنند.
مدیریت چابک چیست؟
https://www.ahmadzadeh.academy/what-is-agile-management/
این متد در سال ۱۹۹9 توسط بک ابداع شد. گرچه منابع اولیه درباره این روش تقریباً از آغاز، در اینترنت وجود داشت، با این حال سه سال طول کشید تا کتاب آن به بازار عرضه شود و نسخه اصلاح شده آن در سال 2004 منتشر شد. با این که بیشتر متدهایی که امروزه لقب چابک گرفتهاند قدیمیتر از XP هستند، اما ظهور متد XP جرقه حرکت چابک را زد.
قبل از ادامه ی این مقاله، مقاله ی “صفر تا صد بیانیه و اصول چابک” را حتما مطالعه کنید.
XP بیشتر به مثابه دیسیپلین مهندسی نرمافزار در نظر گرفته میشود تا یک متد، با این حال یک چرخه دارد، چرخه XP شامل شش مرحله است.

فعالیتهایی که در مراحل دوم و سوم و چهارم انجام میشوند، موتور توسعه متد XP را تشکیل میدهند؛ زیرا هر کدام از این مراحل به یک عرضه جدید منتهی میشود. بر طبق فرایند XP اولین عرضه سیستم مرحله تولید و توسعه مقدماتی است. سپس محصول اولیه در مرحله نگهداری از طریق تکرارهای بیشتر به صورت افزایشی بهبود مییابد.
بخشهای زیر توصیف مختصر فعالیتهایی است که در هر مرحله چرخه XP صورت میگیرند:
فعالیتهای اصلی که در این مرحله از فرایند XP انجام میشوند، به شرح زیر است:
فعالیتهای اصلی در این مرحله نسبتاً کوتاه انجام میشود (معمولاً بیشتر از دو روز طول نمیکشد) و معمولاً برنامهریزی عرضه نامیده میشود. این فعالیتها عبارتند از:
این مرحله، هسته توسعه تکراری چرخه XP است و هدف نهایی آن تولید اولین عرضه سیستم اجرایی بر طبق برنامه عرضه است. در نتیجه فعالیتهای توسعهای ممکن است گزارشهای جدیدی ارائه شوند و گزارشهای موجود تغییرکنند. فعالیتهای زیر در هر یک از تکرارها انجام میشوند:
برای اطمینان از اینکه گزارشهای کاربر به طور کامل تکمیل شده اند، آزمونهای پذیرش جعبه سیاه بر مبنای گزارشهای کاربر توسط مشتری تعریف میشوند و توسط تیم حین تکرار ایجاد میشوند. آزمونهای پذیرش توسط ابزارهای خودکار به صورت مکرر روی کدها اعمال میشوند. در نتیجه، نواقص شناسایی میشوند و در صورتی که قید زمان اجازه رفع آنها در تکرار فعلی را ندهد، به تکرار بعدی منتقل میشوند.
فعالیتهای اصلی که در این مرحله صورت میگیرند عبارتند از:
این مرحله شامل فعالیتهایی مشابه سه مرحله قبلی (موتور توسعه) است: برنامهریزی، تکرارها برای اولین عرضه (اولین حذف میشود) و آمادهسازی برای تولید. همچنین به مجموعه گزارشهای کاربر و شبه سیستم و فعالیتهای مراحل تشکیلدهنده مطابق ترتیبی که قبلا گفته شد، بستگی دارد. اختلاف مهم این است که عرضههای کوچکی که حین این فاز ایجاد میشوند با سیستم عملیاتی و در حال کار موجود یکپارچه میشوند. مرحله نگهداری زمانی است که گزارشهای باقی مانده کاربر در سیستم اجرا میشود و سیستم به این ترتیب نگهداری میشود. طبق روال فرآیندهای تکراری-افزایشی، با خواستههایی که در مرحله نگهداری بروز میکنند مانند خواستههای معمولی رفتار میشود و در طول همان فرایند توسعه تکراری اجرا میشود. به این ترتیب نگهداری فرایند یکدستی را برای انتقال و نگهداری سیستم، فراتر از عمر عملیاتی آن به کار میگیرد.
مرحله نگهداری تا زمانی ادامه مییابد که هم گزارشهای دیگری از مشتری موجود نباشد و چیزی برای آینده پیشبینی نشود (پایان خوشایند اما غیر ممکن برای پروژه) و هم سیستم نیاز به تکامل ضروری دیگری نداشته باشد.
زمانی که تکامل تدریجی، هم غیر ضروری و هم غیر ممکن شود، پروژه مرده تلقی میشود. فعالیتهای اصلی در این مرحله پایانی XP عبارتند از:
اعلام خاتمه پروژه: شامل خاتمه یافتن معمولی، منطقی و مالی موارد باقی مانده است.
بازنگری و ثبت پس از مرگ: این مرحله اساساً شامل 1-تهیه یک سند کوتاه حداکثر 10صفحهای است که کلیت سیستم را معرفی میکند. 2-نوشتن گزارش و بازنگری 3-ثبت درسهای آموختهشده از پروژه به اختصار.
نقشهایی که توسط بک برای متد XP معرفی شدهاند عبارتند از:
برنامهنویس، مشتری، آزمایشکننده، پیگیریکننده (کسی که وضعیت پروژه را بررسی کرده و بازخورد میدهد)، رهبر عملیات(هماهنگکننده)، مشاور و مدیر(رئیس بزرگ-تصمیمگیرنده).
برای به کارگیری این متد سازمانها باید بتوانند این دوازده روش کار را در سازمان خود پیاده کنند.
همان برنامهریزی است که به عنوان بازی برنامهریزی شناخته میشود. این برنامهریزی هم تکراری است و هم مشارکتی. تکراری است چون در آغاز هر توسعه افزایشی میشود. مشارکی است چون توسط اعضای تیم مشتری و مدیریت انجام میشود.
تیم پروژه XP سیستم را در کوچکترین بخشهای منطقی که برای مشتری ارزش دارد توسعه میدهد. از آنجا که هرافزایش نباید بیش از چند هفته برای توسعه طول بکشد، قابلیتی که در این زمان قابل توسعه باشد بسیار محدود است. با این حال، حتی زمانی که نتوان افزایشی را برای عرضه توسعه داد، آن افزایش را به مشتری نشان میدهند، برای این که بتوانند اثبات کنند که تیم در حال پیشرفت به رسیدن به نیازهای مورد نظر مشتری است.
تصور پروژه، ایده اصلی سیستمی است که تیم آن را میسازد. این تصور از تشبیهها برای توصیف نتیجه سیستم استفاده میکند به شکلی که هم برای تیم توسعه و هم برای مشتری به راحتی قابل درک باشد. این تصور دیدی بسیار کلی از خواستههای کلی پروژه XP است و این انتظار وجود دارد که این تصور در سرتاسر پروژه نسبتاً ثابت باقی بماند.
توصیفهای واقعی ویژگیهای سیستم به صورت مجزا در گزارشها ثبت میشوند.
این روش کار اساس ارزش سادگی در XP است. این روش کار توصیه میکند که برنامهنویسان از طراحی ویژگیهای اضافی که در آینده ممکن است خواسته شوند، اجتناب کنند.XP بر این باور شکل گرفته که روش کار طراحی ساده، در مقایسه با طراحی برای آینده، منجر به دوبارهکاری کمتر میشود.
یکی از فلسفههای شکلگیری XP، روش کار آن است. این فلسفه بیان میکند که قبل از اینکه دو برنامهنویس یک خط برنامه بنویسند حتماً باید آزمونهای خودکاری را تهیه کنند که این کار برای تایید گزارش کاربردی که قصد ایجاد آن را دارند ضرورت دارد.
این روش کار، هر جفت برنامهنویس را برمیانگیزد که از خود بپرسند قبل از اینکه کار خود را روی گزارشها آغاز کنند، آیا راهی برای طراحی مجدد سیستم وجود دارد؟ برای اینکه نتیجه نهایی سادهترین چیزی باشد که کار میکند. سپس بعد از اینکه کار خود را روی گزارش به اتمام رساندند، این روش کار آنها را برمیانگیزاند که پرسش مشابهی بکنند در این حالت اگر پاسخ مثبت بوده طراحی مجدد به عنوان بخشی از کار روی آن گزارش اجرا میشود. از این روش کار بدین منظور استفاده میشود که اطمینان حاصل شود طراحیهای (ساده) که برنامهنویسان کار خود را با آن شروع میکنند، نباید چیزی فراتر از خواستهها باشد.
ملموسترین روش کار XP برنامهنویسی دو نفره است. این روش کار لازمه تمام کارهای فنی است (از طراحی گرفته تا برنامه نویسی تا آزمون) که باید توسط یک جفت برنامه نویس و باهم صورت گیرد. این جفت در سرتاسر پروژه بر مبنای نیازهای گزارشها تغییر میکند.
عضوی از هر جفت که کار تایپ برنامه را انجام نمیدهد، وظیفه خاصی بر عهده دارد. این فرد درباره آثار کاری که انجام میشود فکر میکند و پیوسته سوالهایی از این دست میپرسد: (آیا روش سادهتری برای انجام این کار وجود دارد؟)، (آیا به آزمونها برای چیزهایی که هنوز ایجاد نکرده ایم نیاز داریم؟)، (آیا نقصهایی در این برنامه وجود دارد؟)، (آیا این روش خوب کار می کند؟).
برنامهنویسی دو نفره نام نهایی را در بازنگریهای اعضا به خود گرفته است، زیرا این روش کار مستلزم بازنگری مستمر و در زمان واقعی هر کاری است که انجام شده است.
متد XP نقشی را برای مالکیت کدهایی که نوشته میشود در نظر میگیرد که با استاندارد مسئولیت واگذاری کدها به هر فرد نسبتاً متفاوت است. XP در سمت دیگر طیف قرار دارد: یعنی کدهای نوشته شده نباید در مالکیت فرد خاصی باشند و همه باید بتوانند به آنها دسترسی داشته باشند. زمانی که فردی لازم ببیند کدی تغییر کند، مسئولیت جفت اوست تا آن تغییر را اعمال کند. هر یک از اعضای تیم مالکیت همه کدهای گردآوری شده را دارند.
XP فراتر از مفهوم ساختههای روزانه میرود. یکپارچگی محصول ساخته شده به طور مستمر لازم است. هنگامی که هر جفت برنامهنویس کار روی یک گزارش کاربر را به اتمام رساند. گام آخر آنها یکپارچه کردن کدهای جدید و تغییر یافته (هم زمان با آزمونهای خودکار) بر مبنای سیستم است. سپس آن ها آزمون کامل (تمام آزمونهای خودکار خود) را اجرا میکنند و اگر آزمونی به شکست انجامید، باید از کد و آزمونهای آن صرف نظر کنند و این جفت باید قبل از ارائه کار مشکلات کار خود را برطرف کنند. زمانی که کل آزمونها با موفقیت طی شدند کدی که برای گزارش کاربر نوشته شده با پروژه یکپارچه میشود. از آنجا جفتهای متعددی همواره روی گزارشهای کاربران مختلفی کار میکنند. این روش کار این امکان را فراهم میکند تا هر کسی تقریباً هر چیزی را بتواند بر مبنای پروژه یکپارچه کند.
XP به ندرت به دنبال اضافهکاری است. در این متد به صراحت فرض میشود که اضافهکاری نباید بیش از دو هفته پشت سر هم باشد. هدف از این روش کار این است که افراد سر حال باشند تا بتوانند با آهنگی مستمر اما ملموس به کار خود ادامه دهند.
یکی از اعضای کلیدی تیم پروژه مشتری است. او کاربر اصلی سیستمی است که ساخته خواهد شد و یا فردی به نمایندگی از طرف مشتری یا کار فرما است. این روش کار اطمینان میدهد که فردی با آگاهی کافی همواره حضور دارد تا تیم بتواند کار را با او بازنگری کند، به پرسشهای تیم پاسخ دهد و در موارد ضروری تصمیمهای اجرایی لازم را اتخاذ کند.
روشهای کار متعدد XP (به خصوص برنامهنویسی دونفره و مالکیت مشترک)، اهمیت استانداردی را برای کدنویسی نشان میدهد. در تیمی که همکاری نزدیکی با سایرین دارد، استانداردهای مناسب تنها راه برای حفظ نظم و یکپارچگی است.
بیشتر چارچوبها و متدولوژیهای چابک بر مدیریت پروژه یا محصول و سازماندهی افراد و کار متمرکز هستند. این بدان معناست که XP با سایر متدولوژیها سازگار است و به جرات میتوان گفت که اتخاذ یک چارچوب چابک بدون استفاده از XP کمتر از حد مطلوب است. به این دلیل که بدون روشهایی که به شما کمک میکند ارزش ها را با سرعتی پایدار ارائه دهید، کدهای شما کمتر و کمتر با تغییر سازگار میشوند و در نهایت در باتلاقی قرار میگیرید که قابل تغییر نیست.
طور کلی، مدیریت چابک در مدیریت پروژه به سازمان شما اجازه می دهد تا انعطاف پذیرتر باشید و راهی برای پاسخگویی به تغییرات در حال ظهور پیدا کنید. هنگامی که ویژگی های زیر وجود داشته باشد، یک پروژه به عنوان چابک (Agile) در نظر گرفته می شود:
این مقاله مون رو حتما بخونید:
چرا مادران باید به اکوکاردیوگرافی قلب جنین اهمیت بدهند؟
مدیریت چابک:
https://www.ahmadzadeh.academy/category/article/agile_article/
https://www.ahmadzadeh.academy/acp/
https://www.ahmadzadeh.academy/xp-in-agile/