بایدهای مدیریت پروژه: پارادوکس استخدام مهارت یا استعداد! (قسمت دوم)
بهره وری توسعه دهندگان ماهر در مقابل معمولی
در ادامه قسمت اول پست “بایدهای مدیریت پروژه: پارادوکس استخدام مهارت یا استعداد!”، این قسمت به موضوع استفاده از توسعه دهندگان ماهر در مقایسه با توسعه دهندگان معمولی یا متوسط می پردازه.
باید بدانیم و بپذیریم که توسعهدهندگان حرفهای نرم افزار، خیلی بهرهورتر از توسعهدهندگان معمولی هستند. در واقع، برخی از آمارها می گویند که توسعه دهندگان واقعاً خوب چندین مرتبه – میشه گفت 10 برابر – بهتر از توسعه دهندگان ضعیف هستند. نکته اصلی اینه که
یک برنامه نویس ماهر فقط کمی بهتر از یک برنامه نویس معمولی نیست؛ تفاوتشون از زمین تا آسمونه
اما این چه معنا و مفهومی میتونه داشته باشه برای مدیران تازه کار یک پروژه نرم افزاری که در حال برنامه ریزی برای توسعه یک محصول هستند؟ مدیران به اشتباه فکر میکنند که اگر نتونید بهترین و باهوشترین توسعه دهندگان رو استخدام کنید، باز هم میتونید از توسعه دهندگان متوسط یا معمولی استفاده کرده و به هدفتان برسید. اما توسعه نرم افزار مثل حفر خندق نیست که حتی با ضعیفترین حفارها هم بتونید یک چاله بکنید.
در توسعه نرم افزار، چیزی که امروز برنامه نویسی شد، میشه پایه و اساس برای فردا. اگر نرم افزار شما توسط توسعه دهندگان معمولی پایه ریزی شده باشه، به محض ورود توسعه دهندههای حرفهای، باید قبل از هرچیزی به عقب برگردند و ایرادات و نواقص قبلی را برطرف کنند (که کم هم نیستند!). استخدام توسعهدهندگان معمولی، سرعت (Velocity) تیم پروژه رو کاهش میده.
اغلب، حذف یک کارمند ضعیف از تیم، مفیدتر از اضافه کردن یک کارمند خوب هست
تازه، واقعیت اینه که اضافه کردن افراد به یک پروژه تأخیردار، حتی ممکنه انجام اون پروژه رو بیشتر به تعویق بندازه. مدیران پروژه نرم افزاری بی تجربه ممکنه فقط به این دلیل که با افزایش تعداد کارگر، بارگیری کامیون ها سریعتر انجام میشه، تصور کنند که استخدام برنامه نویس بیشتر، زمان لازم برای تکمیل پروژه نرم افزاری را کوتاه میکنه! این کار فایدهای نداره! اینکار زمان بره، چراکه برنامه نویسان قدیمی باید برای به روز و مطلع کردن نفرات جدید وارد میدان بشن و در این مدت کار خودشون رها میشه به امان خدا!
در ضمن، تعداد کانالهای ارتباطی پروژه هم با اضافه شدن هر نفر به تیم به صورت نمایی زیاد میشه. چطوری؟! یک تیم دو نفره، یک کانال ارتباطی داره. تیم 3 نفره، 3 کانال. تیم 4 نفره، 6 نفر. تیم 12 نفره 66 کانال ارتباطی داره.میبینید که تعداد کانالهای راتباطی با اضافه شدن آدمها به طور تصاعدی زیاد میشه که فرمولش هم n(n-1)/2 هست. به عنوان مدیر پروژه با داشتن یک تیم 12 نفره باید 66 کانال ارتباطی یا رابطه رو مدیریت و اداره کنید. حالا اگه بخاطر عقب ماندن کارها یک نفر دیگه را به تیم اضافه کنید، تعداد 78 کانال ارتباطی برای نظارت خواهید داشت و این یعنی با اضافه شدن یک نفر به تیم 12 نفری، در واقع 12 کانال ارتباطی جدید به پروژه اضافه کردید که خودش یک عامل مهم افزایش پیچیدگی پروژه هست!
توسعه نرم افزار با توسعه دهندگان معمولی، 2 افسانه پروژه را برملا میکنه:
🧨 اول اینکه میتونید زمان پروژه رو با افزودن افراد، کوتاه کنید.
🧨 دوم اینکه توسعه دهندههای معمولی کدهای معمولی (همراه با باگ) و با سرعت متوسط تولید میکنند. در حقیقت توسعه دهندههای معمولی باعث کاهش بهره وری کلی و طولانی شدن بیش از حد پروژه میشن.
حالا راه حل چیه؟
💡 اول: به توسعه دهندگان حرفهای ابزار قدرتمند بدید. با این کار سریعتر نرم افزاری با کیفیت بالاتر به دستتون میرسه.
💡 دوم: داشتن آدم هایی با کارایی و مسؤلیت کم به پروژهها کمکی نمیکنه و تازه! مراقبت و نگهداری از توسعه دهندگان ضعیف، بهره وری توسعه دهندگان حرفهای (که نیروهای اصلی و حیاتی هستند) را هم کم میکنه. نرم افزار بسیار پیچیدهتر از اونی هست که به یک فرآیند خط مونتاژ در تولید تبدیل و تشبیه بشه.
اگه توسعه سریعتر نرم افزار می خواهید، پول بیشتر را برای استخدام و پرورش توسعه دهندگان عالی نرم افزار خرج کنین. مطمئن باشید که هم در کوتاه مدت و هم در درازمدت (برای نگهداری و بازبینی کدها)، نتیجه آنرا خواهید دید.
درباره ثمین دلفی اهوازی
ثمین دلفی فارغ التحصیل رشته مهندسی عمران و کارشناسی ارشد رشته مدیریت پروژه و ساخت از دانشکده هنرهای زیبای دانشگاه تهران است. فعالیتهای حرفهای خود را در حوزه برنامهریزی و مدیریت پروژههای صنعتی و نفت و گاز از سال ۱۳۹۲ آغاز کرد و نزدیک به ۱۰ سال سابقه کار دارد. همچنین دارای مدرک بین المللی PRINCE2 است. از جمله فعالیتهای داوطلبانه او عضویت در تیم اجرایی جایزه مدیر پروژه جوان سال انجمن بین المللی مدیریت پروژه (IPMA) و ریاست کمیته ملی جایزه مدیر پروژه جوان سال YPMY-2022 میباشد.
نوشتههای بیشتر از ثمین دلفی اهوازی