شکوفه حسینی؛ اسکراممستر بانکداری باز داتین
یاسمن میربها؛ اسکراممستر بانکداری متمرکز داتین
تفکر اجایل، تلاشی است برای بهبود فرایندهای توسعه نرمافزارها در راستای بازدهی بیشتر و افزایش محبوبیت و موفقیت تیمها. اجایل یک رویکرد افزایشی تکراری (incremental, iterative) برای ارائه نرمافزار با کیفیت بالا و تحویل مکرر و مداوم برای اطمینان از ماندگاری ارزش، در میان فرایندهاست. در رویکرد اجایل افراد، تعاملات و توانایی پاسخگویی به تغییرات، جایگاه ارزشمند و ویژهای دارد.
در دهه ۱۹۹۰، توسعه نرمافزار با بحران روبهرو شد. این مقطع که با عنوان «بحران توسعه برنامه» یا «تأخیر تحویل برنامه» شناخته میشود، قادر به پاسخگویی سریع به خواستهها و نیازهای مشتری نبود و زمان تخمینی بین نیاز تجاری و تحویل برنامه واقعی حدود سه سال به طول میانجامید. مدلهای توسعه سنتی بر اساس یک رویه زمانی بنا شده بودند. در این وضعیت، توسعه به ترتیب اتفاق میافتاد و محصول نهایی تا آخرین مرحله برای مشتریان آشکار نمیشد.
این مسئله وقتی که صحبت از پیشرفتها و تغییرات بود، فضای کمی برای انعطافپذیری باقی میگذاشت؛ بنابراین، با پایان یافتن یک برنامه واقعی، به احتمال زیاد الزامات و سیستمهای اهداف اصلی پروژه تغییر میکرد.
در فوریه 2001 گروهی از توسعهدهندگان نرمافزار، گردهم آمدند و در مورد دیدگاههای خود صحبت و نقاط مشترک را پیدا کردند؛ به این ترتیب «چابکی» متولد شد. این توسعهدهندگان، اهمیت ایجاد مدلی را درک کردند که در آن، هر تلاش در چرخه توسعه یک نرمافزار از تلاشهای «آموختههای قبلی» جمعآوری شده باشد. نتیجه یک روش انعطافپذیرتر، کارآمدتر و تیم محورتر از مدل های توسعه نرمافزار قبلی بود.
در فوریه 2001 گروهی از توسعهدهندگان نرمافزار، گردهم آمدند و در مورد دیدگاههای خود صحبت و نقاط مشترک را پیدا کردند؛ به این ترتیب «چابکی» متولد شد. این توسعهدهندگان، اهمیت ایجاد مدلی را درک کردند که در آن، هر تلاش در چرخه توسعه یک نرمافزار از تلاشهای «آموختههای قبلی» جمعآوری شده باشد. نتیجه یک روش انعطافپذیرتر، کارآمدتر و تیم محورتر از مدلهای توسعه نرمافزار قبلی بود.
برای اجرایی شدن تفکر چابکی، راهکارها و روشهای اجرایی خلق شد که تمامی آنها از چهار ارزش اصلی چابکی و ۱۲ اصل در بیانیه چابک، پیروی میکنند. پایبندی به راهنماییهای ارائه شده توسط بیانیه و اصول، همان چیزی است که یک تیم توسعهدهنده نرمافزار را چابک میکند و نه یک فرایند، ابزار یا برچسب خاص را. در بیانیه چابک آمده است: ما با انجام این کار و کمک به دیگران برای انجام آن، در حال کشف روشهای بهتر توسعه نرمافزار هستیم و از طریق این کار به ارزش رسیدهایم.
ارزشهای بیانیه چابک
افراد و تعاملات، بالاتر از فرایندها و ابزارها
با درک اینکه نرمافزار توسط افراد ساخته شده است، نه فرایندها یا ابزارها، چابکی جایگاه بالاتری را برای افرادی که بهطور موثر با هم کار میکنند، ایجاد میکند. فرایندها و ابزارها میتوانند به توسعه نرمافزار کمک کنند اما نمیتوانند جایگزین افراد و تعاملاتشان شوند.
نرمافزار کارآمد، بالاتر از مستندسازی جامع
سنجیدن نرمافزار کارآمد به جای اسناد جامع و کامل، مخالف مدل (آبشاری) Waterfall است. یک سند با مشخصات کاملاً دقیق و جامع اگر منجر به تولید نرمافزاری مناسب با نیازهای کاربران نشود، هیچ ارزشی ندارد. نرمافزار کارآمد ممکن است مستندات متعددی در خود جای داده باشد اما در رویکرد چابک، از مستندات فقط برای ایجاد نرمافزار استفاده میشود، نه به عنوان یک هدف برای تولید.
همکاری مشتری بالاتر از قرارداد کار
قراردادها معمولا در زمان شروع یک پروژه بسته میشوند و قابلیت بهروزسانی را ندارند یا با تغییر شرایط به حالت اولیه خود باقی میمانند. گرچه رویکرد چابک، قراردادها را نادیده نمیگیرد اما برای همکاری فعال در تمامی مراحل توسعه نرمافزار به عنوان یک روش ذاتی برای انتقال ارزش به جای قرارداد دقیق، ارزش قائل است. رویکرد چابک در تلاش است تا تعامل سازندهای با مشتری داشته باشد و خود را با توجه به نیازهای روز مشتری بهروز کند و تغییر دهد، درصورتی که قراردادها این تغییرات را شامل نمیشود. وقتی کاری را انجام میدهید که ساختن آن چالشبرانگیز باشد، یک قرارداد هیچگونه ارتباطی با شرایط جدید برقرار نمیکند.
جوابگویی به تغییرات، بالاتر از پیروی یک طرح
بهجز سادهترین سیستمها، فکر کردن در مورد هر ویژگی، هر داده و هر مورد ممکن برای استفاده از نرمافزار بسیار دشوار است. این بدان معناست که در فرایند همکاری مشترک با مشتری، موارد زیادی در طی فرایند تولید نرمافزار کشف میشود. همچنین، جهان بسیار سریع تغییر میکند. نیازها و اولویتهای کسبوکار میتوانند در ماهها یا حتی سالهای توسعه یک محصول تغییر کند. رویکرد چابک، توانایی تغییر در پاسخ به اکتشافات و نیازهای جدید مشتریان را بیش از پایبندی به برنامهای که قبل از شناخته شدن همه چیز ایجاد شده، ارزیابی میکند.
۱۲ اصل در بیانیه چابک
۱. بالاترین اولویت، رضایت مشتری از طریق تحویل بهموقع و مداوم نرمافزار ارزشمند است.
۲. پذیرا بودن نیازهای در حال تغییر مشتری، حتی تغییراتی که در اواخر توسعه بهوجود میآید. فرایندهای چابک تغییرات را در جهت رقابت مهار و کنترل میکنند.
۳. تحویل نرمافزار کارآمد و قابل استفاده در بازههای زمانی چند هفتهای تا چند ماهه بهطوری که هرچه این بازههای زمانی کوتاهتر باشد، بهتر است.
۴. توسعهدهندگان و سفارشدهندگان نرمافزار میبایست بهصورت روزانه با یکدیگر تعامل داشته باشند.
۵. از افراد باانگیزه در تیم توسعه نرمافزار خود استفاده کنید، به آنها فضای لازم برای شکوفایی استعدادهایشان را داده و از ایدههای ایشان حمایت کنید. به آنها اعتماد داشته باشید که درنهایت آن را به بهترین شکل به انجام خواهند رساند.
۶. بهترین و اثربخشترین راه برای تبادل اطلاعات در یک تیم توسعه نرمافزار، مکالمه رودررو است.
۷. نرمافزار قابل استفاده و کارآمد، اصلیترین معیار سنجش پیشرفت پروژه است و فرایندهای چابک، توسعه پایدار را ترویج میدهند.
۸. یکی از پایههای ثابت فرایندهای اجایل، توسعه پایدار است. به عبارت دیگر، مشتری، توسعه دهندگان و کاربران نرمافزار میبایست شاهد سرعت پیشرفت ثابتی در طول زمان باشند نه اینکه گاهی نرمافزار با سرعت پیشرفت کند و گاهی (به مدت چند ماه یا چند سال) از توسعه باز ایستد.
۹. زمانی میتوان تیمی را اجایل نامید که بهطور دائم به طراحی حرفهای، استفاده از بهترین فناوریها و آخرین دستاوردهای حوزه توسعهی نرمافزار توجه کند.
۱۰. سادگی مهمترین شرط توسعه نرمافزار است و تیمهای اجایل باید از هر گونه پیچیدگی حذر کنند.
۱۱. بهترین ایدهها، ساختارها، نیازمندیها و طرحهای نرمافزاری از دل تیمهای خودکفا شکل میگیرد.
۱۲. در بازههای زمانی مشخص، اعضای تیم میبایست درمورد روشهای بهتر شدن با یکدیگر بحث و تبادل نظر داشته باشند و درنهایت فرایندهای کاری خود را بر اساس نتایج بحث، تغییر دهند.
دستهبندی اصول
اصول بیانیه چابکی را میتوان در چهار دسته کلی گروهبندی کرد:
اصول چابک رضایت مشتری
رویکردهای چابک بر رضایت مشتری متمرکز هستند که منطقی است. از این گذشته، مشتری دلیل توسعه محصول در گام نخست است. در حالی که تمام ۱۲ اصل چابکی از هدف جلب رضایت مشتری پشتیبانی میکند، اصول ۱، ۲، ۳ و ۴ تاکید بیشتری بر این موضوع دارند.
اصول چابک کیفیت
یک تیم چابک متعهد است کیفیت را در تمامی مراحل تولید اعم از مستندسازی، توسعه، یکپارچگی و تست حفظ کند. هر یک از اعضای تیم پروژه در تمام مدت به ارائه بهترین کار کمک میکنند. اگرچه همه ۱۲ اصل از هدف تحویل با کیفیت پشتیبانی میکنند اما اصول ۱، ۳، ۴، ۶، ۹ و ۱۲ تاکید بیشتری بر این موضوع دارند.
اصول چابک کار تیمی
کار گروهی برای پروژههای چابک بسیار مهم است. ایجاد محصولات خوب نیاز به همکاری بین همه اعضای تیم پروژه دارد. رویکردهای چابک از تیمسازی و کار تیمی پشتیبانی میکنند و آنها بر اعتماد به تیمهای توسعه خودگردان تأکید دارند. یک تیم پروژه ماهر، با انگیزه، متحد و توانمند؛ یک تیم موفق است. اگرچه همه این ۱۲ اصل از هدف کار گروهی پشتیبانی میکند اما اصول ۴، ۶، ۸، ۱۱ و ۱۲ برای ما به عنوان حمایت از توانمندسازی، کارآیی و تعالی تیم تاکید بیشتری دارند.
اصول چابک مدیریت پروژه
رویکرد چابک بر برنامهریزی و اجرای کار برای تولید بهترین محصول قابل عرضه متمرکز است. این روش با برقراری ارتباط آزاد، جلوگیری از حواسپرتی و فعالیتهای بیهوده و اطمینان از روشن بودن پیشرفت پروژه برای همه پشتیبانی میشود. همه ۱۲ اصل از مدیریت پروژه پشتیبانی میکنند اما اصول ۲ ، ۸ و ۱۰ تاکید بیشتری دارند.