چه کسانی در پروژه اجایل توسعه نرمافزار نقش دارند؟
سخن دربارهی نقش اجایل در توسعه نرمافزار زیاد است. اما اجایل واقعا چگونه در توسعه نرم افزار عمل میکند؟ افراد تیم چگونه از متدولوژی اجایل یا چابک بهره میبرند؟ اگر پاسخ این پرسشها برایتان جذاب است، در ادامه با ما باشید.
روند توسعه نرمافزار اجایل (Agile Software Development) همواره با تعریف کاربرانِ یک محصول ویژه و مستندسازی چشمانداز مشکلات، فرصتها و ارزشها آغاز میشود. بیدلیل نیست که سازمانها از چارچوبهایی مثل اسکرام (Scrum) و کانبان (Kanban) بهره میبرند؛ آنها میخواهند اپلیکیشنها بهروز شوند، تجربه مشتری بهینه شود و به تحول دیجیتال برسند. در این نوشته از بلاگ «پیشگامان لوتوس» میخوانید که چه افرادی در رویکرد اجایل نقش دارند.
توسعه نرمافزار اجایل
باورکردنی نیست که بیش از ۲۰ سال از عمر متدولوژی اجایل میگذرد. آنچه زمانی به استارت آپهایی با فضاهای اشتراکی و وایتبرد و کاغذ پشت چسبدار محدود بود، اکنون به مجموعهای از ابزارها و فرایندهای توسعه نرمافزار چابک تبدیل شده که کاربرد آن وسیع، قابلاندازهگیری و دقیق است.
دانش وسیعی درمورد متدولوژی چابک و ارتباط آن با طراحی فکر، محصول، مدیریت و توسعه وجود دارد. امروز دیگر بیشتر مدیران و کارکنان با مفهوم اجایل آشنا هستند و درواقع دنبال راهنمایی برای هماهنگ کردن تیم خود با شیوههای اجایل میگردند. با شناخت نقشهایی که در پروژه چابک وجود دارد، خواهیم دید تیمی که براساس اجایل شکل گرفته، شامل چه افرادیست.
در متدولوژی چابک چه نقشهایی وجود دارد؟
۱- مالک محصول (Product Owner)
نقش مالک محصول در توسعه پروژه اجایل بسیار مهم است، چراکه این فرد درک روشنی از نیازهای کسبوکار و محصول موردانتظار دارد. درک و شناخت مشخص میکند چه چیزهایی باید تغییر کند یا بهبود یابد و چه اقلامی در اولویت قرار دارند. مالک محصور دید روشنی نسبت به محصول نهایی دارد و میداند جایگاه محصول موردنظر در هدفهای بلندمدت سازمان کجاست.
نقش مالک محصول پلیست میان تیم توسعه، ذینفعان کسبوکار و مشتری. او با ذینفعان همکاری میکند تا نیاز آنها را به بهترین شکل درک کند، و از سوی دیگر در کنار کاربران است تا نیازهای پنهان آنها را بشناسد. سپس این شناخت و چشمانداز را به تیم توسعه انتقال میدهد.
۲- اسپانسر پروژه (Project Sponsor)
نقش مالک محصول به نقش اسپانسر پروژه گره خورده و بر آن تاثیرگذار است. آغاز موفق پروژهی اجایل بر عهدهی اسپانسر است. اگر تخصیص بودجهی پروژه بهخوبی انجام نشود، از بودجهی مناسب برای انجام وظیفهها و فعالیتهای مربوطه برخوردار نخواهد بود و به هدفهای تعیینشده نخواهد رسید. اسپانسر پروژه شخص یا سازمانیست که اساسا مسوول بودجهی پروژه و تایید تصمیمهای کلیدیست.
اسپانسر پروژه به مالک محصول این اختیار را میدهد تا در مرحله های مختلف توسعه پروژه نمایندهی او باشد. این امر بهویژه زمانی اهمیت خود را نشان میدهد که اسپانسر درمورد توسعهی پروژه چابک اطلاعات نداشته باشد. در چنین شرایطی مالک محصول و اسپانسر همکاری منظمی دارند تا اجرای پروژه طبق انتظار پیش رود. در پروژههای کوچک یا پروژههایی که وظایف محدودی برای آنها تعریف میشود، ممکن است مالک محصول و اسپانسر یک نفر باشند.
۳- اسکرام مستر یا استاد اسکرام (Scrum Master)
کار اسکرام مستر کمک به مالک پروژه و تیم توسعه برای انجام موثر فعالیتهای توسعه است. اطمینان از اینکه تیم از فرایند اسکرام پیروی میکند و در راستای فعالیتها، اصول و ارزشهای اسکرام گام برمیدارد، وظیفهی اسکرام مستر است. فرایند اسکرام با تعیین هدفهای محصول اغاز میشود. اسکرام مستر با همکاری مالک محصول چشمانداز محصول و هدفهای پیشبینی شده را میشناسد. مالک محصول به کمک استاد اسکرام میآید تا خواستههای کاربران را روشن کند.
۴- منتور اجایل (Agile Mentor)
کار اصلی منتور اجایل کمک به افراد تیم برای بهبود و تطبیق با رویکردها و عملکردهای اجایل است. به این ترتیب اعضای تیم میتوانند درمورد اجرای پروژهها دوباره فکر کنند و درصورت نیاز آن را تغییر دهند. منتور نقش مربی را دارد که کمک میکند افراد تیم آنچه را در مدت آموزش، فراگرفتهاند، به خوبی اجرا کنند. در بعضی موارد افراد آموزش کافی دریافت کردهاند، اما برای بهکار گرفتن مهارتها در زمان رویارویی با مشکلات، توانا عمل نمیکنند. در چنین موقعیتی، مربی آنها را راهنمایی میکند که بتوانند در محیطهای اجایل همکاری کنند و مشکلات روزانه را حل کنند.
۵- اعضای تیم توسعه نرم افزار (Development Team Members)
اعضای تیم توعسه در مرکز توسعهی پروژهی اجایل قرار دارند. تیم از افرادی شکل میگیرد که در حوزههای مختلف مهارتی، کارآمد هستند. تیم توسعهی نرمافزار، از افرادی که در توسعهی اپلیکیشن دستی دارند، مانند برنامهنویسها، مهندسهای دیتا، نویسندگان، طراحان و تستکنندگان تشکیل میشود. هنگام بستن تیم باید به مهارت حیاتی موردنیاز برای توسعه، تست و تحویل موفق محصول در هر اسپرینت توجه کرد.
۶- رهبر تیم توسعه (Development Team Lead)
در هر گروه کاری تضاد و اختلاف نظر اتفاق میافتد. تیم توسعه نرمافزار هم استثنا نیست. رهبر تیم توسعه مسوول راهنمایی تیم برای رسیدن به اتفاق نظر درمورد مسائل گوناگون مربوط به توسعه محصول است. رهبر تیم نقش تسهیلگر و داور دارد. زمانی که افراد تیم توسعه درمورد انتخاب طرح اختلافنظر دارند، رهبر نظارت میکند که همه به یک اندازه امکان ابراز نظر داشته باشند؛ بهویژه زمانی که مسیر طراحی چندان روشن نیست.
۷- ذینفعان (Stakeholder)
نقش ذینفعان در شکلگیری توسعه محصول و کار افراد مختلف تیم، پررنگ است. گروه ذینفعان از افراد مختلفی تشکیل شده. افراد درون سازمان، موسسهها یا افرادی از سازمانهای دیگر میتوانند در گروه ذینفعان قرار گیرند. ذینفعان فرایند توسعه را در راستای انتظار از محصول و هدفهای کسبوکار قرار میدهند. آنها به توسعهدهنده کمک می کنند چالشهای پیش روی کسبوکار یا شرکت را بشناسد.
ذینفعان در هر پروژه چابک دیدگاههای کلیدی درمورد محصول و کاربرد آن پیشنهاد میکنند. در طول هر اسپرینت یا بازهی زمانی، در کنار مالک محصول قرار میگیرند تا هیچ مشکلی بیپاسخ نماند. در بررسی اسپرینت، بازخورد ارائه میکنند که این بازخورد به بهبود محصول نهایی در راستای نیازهای کسبوکار کمک میکند.
سخن پایانی
در این نوشته از متدولوژی اجایل گفتیم و نقش افراد موثر در پروژه را نشان دادیم. سازمانها میتوانند فرهنگ چابک را بارور کنند و از توسعه نرمافزار چابک بهره ببرند. رویکرد اجایل بر همکاری نزدیک و روزانه میان توسعهدهندگان و ذینفعان تاکید دارد. انتظارهای مشتری و کسبکار باوجود بالاترین سطح همکاری میان همهی اعضا برآورده میشود. همچنین با بهکار گرفتن افرادی که عملکرد عالی دارند، بهرهوری به بیشترین میزان میرسد.