چالش اول - به برنامه نویس چطوری دستمزد بدم که همه خوشحال باشیم:)

مدت زیادی بود که پست نگذاشته بودم و آخرین پستم برمیگرده به حدود دو سال پیش.واقعیت امر توی این دو سال بیشتر خواننده بودم تا نویسنده. اما کسی که دلش میخواد بنویسه و ننویسه خودش یه عذابه:)به هر حال قصد دارم توی یه سری سلسله پست ‌‌ها راجع به مدیریت پروژه و تیم صحبت کنم، در حقیقت بهتره بگم صحبت کنیم :) الان هر شرکت و سازمانی، به خصوص نرم‌افزاری، واسه خودش یک روش داره برای مدیریت تیم ها و پروژه‌هاش، اما هیچ مدیری رضایت کامل از روشش نداره و بخوای پای حرف دلش بشینی، قطعا شروع می‌کنه به گله و شکایت از بعضی نیروهاش که نمیدونه باهاشون چیکار کنه. یا هم گله میکنه از این که فلان مشتری داره اذیتش میکنه و پروژه اش به سرانجام نمیرسه.به خاطر همین توی دنیا، روش های خیلی بدیع و جالبی برای مدیریت تیم ها و پروژه ها وجود داره که چالش‌های مختلف رو سعی کردن پوشش بدن و گاها حل کنن.قراره توی این سلسله پست‌ها، در هر پست یه چالش مدیریت تیم و پروژه، مطرح کنم و همه مشتاقان رو به ارائه راه حل برای حل اون چالش دعوت کنم و در پست بعدی که چالش بعدی مطرح میشه، نتایج چالش قبلی رو گلچین و ذکر کنم.پس تمیز کردن مطالب و نظرات با من، حمایت و بحث و ارائه راه حل با شما. البته خودم هم یه پیشنهاد برای حل چالش میدم =)پس نکته خیلی خیلی مهم اینه که من چالش رو میگم، خودم هم یه پیشنهادی برای حلش میدم، اما تمایل دارم خواننده‌ها و مشتاقان، راه حل های خودشون رو برای حل این چالش ارائه بدن که همه استفاده کنن و بحث به جای خوبی ختم بشهچالش اولی که در زمینه مدیریت تیم‌ها و پروژه های نرم‌افزاری می‌خواهیم روش صحبت کنیم و نظر بدیم، در رابطه با نحوه پرداخت دستمزد به برنامه نویسان هست. مطالعه ای که خودم روی شرکت های بزرگ و متوسط انجام دادم، تقریبا بالای 50 درصد شرکت‌ها، دستمزد رو به صورت ماهانه به برنامه نویسان پرداخت می‌کنن. مثلا به برنامه‌نویس سنیور x میگن که آقا جان شما دستمزدت طبق قراری که داریم، مثلا ماهی 7 تومنه. و سر ماه به حسابشون واریز میشه. البته سر ماه خودش یه افسانه اس ;Dحدود 40 درصد هم از شرکت های بررسی شده، به طور ساعتی به برنامه نویسان دستمزد میدن. مثلا میگن آقای x که برنامه نویس جونیور هست، ساعتی 12 بهش پرداخت میشه. حالا سر همین حقوق ساعتی چند سناریو داریم :). یه عده ساعت ورود و خروج به شرکت رو حساب میکنن، یه عده دیگه هم ساعت مفید برنامه نویسان رو حساب میکنن (حالا با استفاده یه سری نرم افزارهای توی این زمینه مثل تایم‌کمپ). و یه عده قلیلی (نزدیک 5 درصد از شرکت‌ها) هم طبق تسک انجام شده به برنامه نویس حقوق میدن. میگن مثلا شما آقای y، در صورت انجام تسک‌های a,b,c بهت هزینه 500 هزارتومان پرداخت میشه.خلاصه هر کی یه راهی رو رفته برای پرداخت دستمزد. یه ذهنیتی که ما ایرانیا شاید ما آدما داریم اینه که دوست داریم بدونیم تو ماه چقدر در میاریم:) حالا شما شرکت سوم هم در نظر بگیری، طرف با خودش حساب کتاب میکنه، خوب من الان ته ماه چقدر دستگیرم میشه.از طرفی هدف هر شرکتی، افزایش بازدهی اش هست. یعنی توی زمان کمتر پول بیشتری دستگیرش بشه.از طرف دیگه، برنامه نویس نیاز به تنوع و داینامیک بودن زندگی داره:)و از طرف دیگه مشتری ها هزار سلیقه و عادت دارن و هر مشتری ممکنه به یک سبکی با شرکت تعامل کنه و پروژه ازشون بخواد.و صدها از طرف دیگه میشه مطرح کرد.حالا تو همه اینا رو کنار هم بزار، بگو چه کنیم! شاید بگی آقاجان هر شرکتی سبک خودش رو داره و با توجه به فرهنگ کاری، یه روشی رو برای دستمزد انتخاب کرده. من حالا میخوام پیشنهاد خودم رو مطرح کنم و بعد پیشنهادهای شما رو بشنوم.اول مطرحش میکنم بعد مزیت هاش رو میگم:)پیشنهاد منپیشنهاد من که خیلی شبیه scrum هست اینه که اول بیایم تسک های هر پروژه رو مشخص کنیم. قاعدتا باید یک مدیر پروژه داشته باشیم این امر رو انجام بده. حداکثر تعداد افراد تحت مدیریت مدیر پروژه باید 5 باشه. بعد از مشخص شدن تسک ها، به هر تسک یک وزن به صورت عدد فرد داده بشه (افرادی که به scrum مسلط هستند، این قسمت براشون کمی تکراری هست)، مثلا مدیر پروژه میتونه تعیین کنه که تسکی که از نظر فنی و با توجه به تخصص افراد شرکت زیر 8 ساعت کاری انجام میشه، وزن 3 بده. برای 8 تا 16 ساعت کاری وزن 5، بین 16 تا 24 ساعت کاری وزن 7، بین 24 تا 32 ساعت کاری وزن 9. و اگه سنگین تر بود باید بشکنه به تسک های کوچکتر.حالا که اینا رو مشخص کرد، یک جلسه میزاره و توی جلسه میگه هر فرد n مقدار وزن، به انتخاب خودش از تسک ها برداره. جلسه که تموم شد کار شروع میشه. (البته اینم بگم، افراد تیم میتونن روی وزن تسک ها نظر بدن و توی جلسه کم و زیادش کنن)حالا که کار شروع شد، هر فرد موظفه تسکی که به لیست doing اش منتقل میکنه در اون مدت ساعت کاری مشخص انجام بده. مثلا اگه وزن 5 رو برداشت باید کمتر از دو روز کاری انجام بده.به ازای زود و یا دیر انجام دادن کار، پاداش و جریمه براش ثبت میشه، به صورت عددهای بین 1 تا 10.حین کار هر تسک هم باید ساعتی که داره روی اون تسک کار میکنه رو ثبت کنه، برای مثال میتونیم از integrate ترلو و تایم‌کمپ که بالا معرفی شد استفاده کنیم. که برنامه نویس به راحتی با زدن دکمه استارت و استاپ زمان مفیدی که روی تسک کار میکنه رو ثبت میکنه.مدیر پروژه توی این سناریو، به راحتی میتونه انواع گزارش ها رو بگیره. مثلا هر فرد چقدر داره کار مفید میکنه، هر تسک چقدر داره روش کار میشه، تسک های هر ماژول مجموعا چقدر تا الان وقت برده و میتونه برای پیش بینی کارهای بعدی استفاده کنه.حالا دستمزد چطوری بدیم؟دستمزد کاملا به طور ساعتی و طبق ساعت مفیدی که برنامه نویس وقت گذاشته پرداخت میشه. البته با یک تغییر و اون تغییر هم این هست که در مثبت یا منفی های پاداش و جریمه هاش ضرب میشه و اینجاست که برنامه نویس متوجه میشه، نه میتونه کم کار کنه و نه میتونه زیاد کار کنه. چون اگه کم کار کنه از حقوقش کم میشه و از طرفی تسک ها و زمان انجام هر تسک جوری چیده شده که قاعدتا در زمان مشخص اون تسک ها تموم میشه. بازدهی پروژه هم به شدت میره بالا، برنامه نویس تا تسکی رو تموم نکنه چیزی دستگیرش نمیشه و پرداخت حقوق هم مستلزم اتمام تسک هاست، و این یعنی پیشرفت پروژه :)از طرفی تنوع هم رعایت شده، دادن وزن و استفاده از ابزارها و ترکیبش با جریمه و پاداش تنوعی هست که برای برنامه نویسان بی نهایت طلب به ارمغان میاره.همه چی خوب شد که =)اما قطعا این روش بدون حاشیه نیست. ممکنه تیم سر وزن تسک ها به تفاهم نرسه، ممکنه مشتری آدمی باشه که ندونیم سر و ته پروژه چیه و هم چنین ممکنه برنامه نویس به راحتی زیر کار بزنه و بگه من حال نمیکنم با این روش (که البته بگم، این چالش های بعدی ماست که بحث خواهیم کرد)حالا نوبت شماست، بگید روشتون برای پرداخت دستمزد به برنامه نویس و مسیری که قراره این دستمزد پرداخت بشه چیه؟به شدت منتظرم و قطعا نظراتتون در پست بعدی نتیجه‌گیری و گلچین میشه و با اسمتون ذکر می کنم =)