روش‌های متداول تولید نرم افزار

نویسنده: ریتیکا پرادهان

مدیران محصول در مراحل اولیه تولید محصول با یک چالش مشترک مواجه هستند: یافتن روش ایده آل. البته طیف گسترده‌ای از روش‌ها با اصول، قواعد و فرایندهای مختلف و موافقان و مخالفان خاص وجود دارد و هیچ روشی متناسب با همه نوع پروژه وجود ندارد.

موسسه مدیریت پروژه (PMI)، مدیریت محصول را به عنوان “واحدی که چارچوب و ساختار برنامه ریزی و کنترل روند توسعه یک سیستم اطلاعاتی را کنترل می‌کند” تعریف کرده است.

متدلوژی‌ها، روش‌هایی هستند که مدیر محصول جهت طراحی، توسعه، آزمایش، راه اندازی و عرضه موفقیت آمیز محصول با کمک تیم اجرا می‌کند.  مدیر محصول به مدیریت چرخه حیات محصول از مرحله ایده پردازی و طراحی تا توزیع، راه اندازی و انتشار در بازار نظارت دارد.

حالا سوال اینجاست، بهترین روش برای محصولات ما چیست؟ پاسخ کوتاه این است “بستگی دارد” روش مناسب کاملاً به متغیرهایی مانند جدول زمانی، انعطاف پذیری و بودجه پروژه بستگی دارد.
هیچ رویکرد یکسانی متناسب با همه فعالیت ها وجود ندارد. حتی برخی مواقع ترکیبی از روش ها مثلا Agile + Waterfall برای تیم شما مناسب باشد.
مهمترین هدف، استفاده از حداکثر توانمندی منابع پروژه شامل منابع انسانی و ماشین آلات و کنترل هزینه و زمان است. و نکته پایانی اینکه، موفقیت تا حد زیادی بستگی به استفاده از بهترین روش است.

در ادامه، چهار روش مطرح توضیح داده می‌شود:

Agile


این روش، یکی از محبوب ترین متدهای مورد استفاده است. Agile به ویژه برای محیط های چابک که نیاز به تکرار در تولید محصول دارند، بسیار کاربردی است. در این روش، مشارکت و تعامل بین اعضای تیم بسیار زیاد است و مدیر پروژه بر همین اساس سازماندهی، برنامه ریزی و توسعه محصول را انجام می‌دهد. یکی از مهمترین مزایا در روش Agile، امکان بازخورد دائمی کاربران است.

Agile یک روش انعطاف پذیر برای تولید محصولاتی با نیازها و محدودیت‌های پیچیده و نیازمند توسعه است.

نظرات طرفداران
نظرات مخالفین
اهداف پروژه باید با ذینفعان شفاف شود نیاز به تخصص و نظم خاصی دارد
نیازمند همکاری بسیار نزدیک بین اعضای پروژه توان برنامه ریزی ضعیفی داره
مشتریان تشویق به ارائه بازخورد می شوند نیازمند زمان بندی بسیار دقیق جهت افزایش دقت
سازگاری خوبی با تغییرات دارد و به راحتی تغییر پذیر است انعطاف پذیری در جابجایی نیروها ندارد
سرعت تغییرات و خروجی ها بسیار بالاست محصول نهایی ممکنه با نیاز مشتری همراستا نباشه

آبشاری (Waterfall)


روش آبشاری، یک روش خطی و متوالی برای مدیریت محصولات است. توسعه محصول در این حالت، شامل برنامه ریزی، اجرا و تحویل به صورت خطی و یک جهته جریان دارد دقیقاً مانند یک آبشار

روش آبشاری در ابتدا در صنایع تولیدی و ساختمانی که معمولاً هر مرحله باید قبل از شروع مرحله بعدی کامل شود، شکل گرفت و توسعه پیدا کرد. در این روش نمی‌توان به مرحله قبل بازگشت، و هرگونه نیاز به تجدیدنظر منجر به لغو فرایند جاری و تکرار آن از ابتدا است. بنابراین اگر بخواهیم روش آبشاری را با Agile مقایسه کنیم، این روش برنامه ریزی بهتری را تضمین می‌کند اما انعطاف پذیری عملیاتی کمتری دارد.

روش Waterfall برای تولید محصولات با مقیاس بزرگ و پرمصرف که نیازمند برنامه ریزی و اجرای منظم است و نیز احتمال هر نوع تغییر ناگهانی در پروژه کم است، روشی ایده‌آل است.

نظرات طرفداران
نظرات مخالفین
مستندسازی و برنامه ریزی دقیق انعطاف پذیری ضعیف، تغییرات فرایندی به راحتی قابل اجرا نیستند
سهولت توسعه و مدیریت، هزینه ها ثابت و قابل پیش بینی امکان استفاده از چند نوع گردش کار بصورت همزمان را ندارد
نظم مناسب در فرایندها انتشار محصول فقط در آخر کار امکان پذیر است
امکان زمان بندی دقیق همراه با خروجی های مشخص در صورتیکه همه موارد واضح نباشند، قابل پیاده سازی نیست
به راحتی می توان منابع تیم را جابجا کرد نیازمند زمان زیادی جهت مستندسازی است

Scrum


اسکرام در واقع زیر مجموعه‌ای از روش Agile است. گرچه این یک فرایند تکرار شونده است، اما از تکرارهای ثابت که اسپرینت نامیده می شوند، استفاده می‌کند. هر اسپرینت ممکن است یک یا دو هفته طول بکشد، به این معنی که خروجی‌ها با نظم مشخصی تولید می‌شوند. در ضمن اسکرام مبتنی بر مجموعه ای ثابت از نقش ها، وظایف و جلسات است که هرگز تغییر نمی‌کنند.

در فاصله بین هر دو اسپرینت، تابلوی شرح وظایف و نمودارهای Burn down ایجاد می‌شود تا اعضای تیم در یک نگاه پیشرفت تولید محصول را ارزیابی کنند. اعضای تیم همچنین باید هر روز در یک جلسه کوتاه بسیار متمرکز اسکرام (Scrum meeting) شرکت می‌کنند تا در مورد اهداف، مسائل و مشکلات پروژه بحث کنند.

در پایان هر اسپرینت، همه اعضا و ذینفعان باید برای برنامه ریزی اسپرینت بعدی با هم جلسه داشته باشند. اسکرام برای نیازهای پیچیده محصول که باید بطور پیشگیرانه مدیریت شوند تا در بازه زمانی معقول تولید شوند، بهترین عملکرد را دارد.

نظرات طرفداران
نظرات مخالفین
شفافیت زیاد و تعارض کم در پروژه نیازمند تجربه بالای اعضای تیم است
تغییرات، قابل استقرار هستند مدیریت قوی نیاز دارد
مسوولیت پذیری بالای اعضای تیم تاریخ انتشار باید به دقت مشخص شود تا ریسک تاخیر ایجاد نشود
ارتباطات قوی داخل تیم اسپرینت های ضعیف می تواند منجر به تاخیر و هزینه های زیاد شود
مراقبت منظم باعث کاهش خطا در پروژه می شود جلسات روزانه مانع از برنامه ریزی کارکنان است مگر به خوبی مدیریت شود

Kanban


Kanban در زبان ژاپنی به معنی “علامت دیداری” یا “کارت” بوده و زیرشاخه دیگری از متدلوژی Agile به شمار می‌رود. در این روش از طریق یک تخته Kanban که گردش کار تیم محصول را مشخص می‌کند، استفاده می‌شود.

اعضای تیم کانبان، وظایف را در سه گروه برنامه ریزی شده، در حال انجام و تکمیل شده تقسیم می‌کنند. گاهی اوقات نیز به منظور وضوح بیشتر فعالیت‌ها، ممکن است دسته‌ بندی‌های بیشتری اضافه شود. هر فعالیت روی یک کارت Kanban نوشته شده و با پیشرفت در هر مرحله از یک دسته به دسته دیگر منتقل می‌شود.

ماهیت بصری فرایند Kanban منجر به دید یکپارچه اعضای تیم در یک صفحه شده و در عین حال کمک می‌کند تا فرصت های بهبود یا پیشرفت فرایند را به سرعت شناسایی کنند. مثلا بلافاصله فرایند به سرعت شناسایی می‌شوند. کانبان بر محدود کردن میزان کار “در حال انجام” در هر زمان تأکید دارد.

هدف نهایی این روش بهبود مستمر فرایند تولید محصول است. برای دستیابی به این هدف، جلسات تیمی منظمی در خصوص تغییرات مورد نیاز بر اساس اطلاعات موجود برگزار می‌شود. (انجمن کانبان)

کانبان در توسعه محصولاتی که دارای تیم های نسبتاً کوچک با تعداد وظایف (Task) محدود هستند، بهترین روش است. همچنین این روش، برای ثبت و ارتقای بهره وری اعضای تیم یک روش عالی به شمار می‌رود.

نظرات طرفداران
نظرات مخالفین
انعطاف پذیری بالا مدیران تیم باید دائما به روز شوند
سادگی فرایند دسته های جدید می توانند تعارضات زیادی در کل کار ایجاد کند
اهداف دائما در حال بهبود هستند. حداقل زمان و حداکثر بهره وری برای تیم های بزرگ کارآیی ندارد
به شناسایی فراینده به راحتی کمک می کند برای هر فاز، زمان بندی دقیق ندارد و نیازمند مدیریت دقیق است
فعالیت های در حال انجام را محدود می کند برای پروژه هایی که از چند تیم تشکیل می شوند، کارآیی ندارد

کدام روش؟


بهترین روش مدیریت محصول، روشی است که کمک کند تا تولید به بهترین روش، بالاترین بهره وری و با کیفیت ترین محصول با صورت گرفته و به موقع و با بودجه مناسب به بازاز ارائه شود. ممکن است، بخش هایی از یک روش، رویکردی وسوسه انگیز و کارآمدتر ایجاد کند که مدیران محصول باید به آن توجه نمایند.

مدیریت محصول یک شغل چابک، کاملاً رقابتی و در عین حال سودآور برای سازمان هاست. برای رسیدن به این جایگاه باید گام های زیادی را طی کنید، توسعه دانش در حوزه های مدیریت محصول، مدیریت پروژه و صنعت مهم ترین گامهای رسیدن به این جایگاه شغلی است.