چه کسی تکل از پشت رفت  یا مقصر شکست پروژه کیه!

کلا خیلی سراغ نوشتن مطالب غیر فنی نمیرم. آخرین بار دو سال پیش مطلبی در مورد انتخاب زبان‌های برنامه نویسی و نحوه انتخاب زبان برنامه نویسی دلخواه خودمون نوشتم که اگر دوست داشته باشید میتونید اون مطلب رو اینجا بخونید! این مطلب هم مثل مطلب قبلی نه خیلی فنی حساب میشه نه غیر فنی! بیشتر بیان عقاید شخصی خودم در نظر بگیرید!چی شد که مجدد سراغ نوشتن مطلب غیر فنی رفتم؟دو روز پیش با یکی از همکاران خوبم گفتگویی داشتیم که باعث شد به سراغ این موضوع برم و این بار از دیدگاه ترکیبی با محصول و فنی داستان خودمون رو بررسی کنم! با این مقدمه بریم سراغ اصل ماجرا و اینکه قصه از کجا شروع شد!سوالی که همکارم از من پرسید این بود "در بعضی از شرایط محصول و پشتیبانی از اون خیلی بغرنج میشه. هزینه پشتیبانی از اون خیلی زیاد میشه و کار بیش از اینکه سود داشته باشه ضرر داره و اعضای تیم از این شرایط رنج می‌برن. به نظرت این مشکل از کجا بروز پیدا میکنه و مقصر این ماجرا کیه؟"واقعا مقصر این شرایط توی محصولات کیه؟! بیاید جواب‌های موجود رو با هم بررسی کنیم که البته کامل نیست و میشه به این لیست موارد دیگه ای هم اضافه کرد که برای جلوگیری از زیادی طولانی شدن مطلب به چند مورد خاص قناعت می‌کنم!جواب اول و قطعی به این مسئله میشه تیم توسعه! قاعدتا تیم توسعه که دانش فنی پایینی داره و در کنار دانش فنی پایین با درک کمی از فضای مسئله و تحلیل ناکافی شروع به کدنویسی میکنه در نهایت محصول نهایی که ایجاد میکنه چیزی بیش از یک فاجعه به تمام معنا که در روزهای اولیه ارائه در نقطه شکست پروژه قرار داره نیست! معمولا در این پروژه‌ها نه معماری درست انتخاب شده! نه مسئله درست فهمیده شده! نه راه حل درستی برای مسئله ارائه شده. کلا به دنبال هر نکته مثبتی تو این پروژه‌ها بگردیم چیزی به دست نخواهیم آورد!اما یک نکته! تیم توسعه که در شرایط فشار داره کار میکنه فرصت نفس کشیدن نداره مگه فرصتی برای فکر کردن داره؟ مگه میتونه زمان بذاره و دانش خودش رو به روز کنه؟ تیم برنامه نویسی در بعضی موارد صرفا ماشین کدنویسیه! بدون کوچکترین اراده و قدرت تصمیمی! جواب دوم و قطعی میشه مجموعه تیم پشتیبانی! بله حتما تیم پشتیبانی مقصر این ماجراست! چرا؟ چون تیم برنامه نویسی بیچاره و بیگناه داره صبح تا شب کد می‌نویسه! این مسئولیت تیم پشتیبانیه که هم باید محصول رو درست برای مشتری پرزنت کنه که کمترین مشکلات رو مشتری توی استفاده داشته باشه و هم در هنگام بروز مشکل باید در سریع ترین زمان، مشکل رو پیدا کنه و راهکاری ارائه کنه و رضایت مشتری رو جلب کنه! اینجوری شرایط تیم برنامه نویسی هم رفته رفته بهتر میشه و مشکلات هر روز کمتر میشه و به آرامش میرسیم!نکته این جواب کجاست؟ اینجاست که خوب اون مصیبتی که تحویل شده اصلا قابلیت پشتیبانی نداره! مثل اینه که پراید تحویل تعمیرکار بدیم و بعد ازش توقع داشته باشیم بعد از تعمیر کیفیت بنز به ما تحویل بشه! خوب این ماجرا هم نشدنیه!جواب سوم و این بار دیگه واقعا قطی میشه Product Owner. بله PO کسی که همیشه مقصر ماجراست! چرا؟ دقیقا چون مسئولیت محصول با اونه! حتما شناخت درستی از محصول و بازار محصولش نداشته و نتونسته تیم توسعه رو درست راهنمایی کنه! درسته تیم توسعه کمی دانش فنی ضعیفی داره! ولی اینکه تیم فنی مسئله رو به درستی نشناخته حتما مقصرش PO بوده و بیشتر مشکلات هم که ناشی از عدم شناخت درست و اولویت بندی درست کارها بوده! در ضمن PO بوده که میتونسته تصمیم بگیره فشار کار کم کنه یا زیاد کنه و ... پس آقا یا خانم PO از زیر بار مسئولیت فرار نکن! مسئول محصول شما هستی! باعث فجایعی هم که به وجود میاد خود شما هستی!البته کمی هم اگر به درد و دل این بندگان خدا گوش بدیم میبینیم که بی‌گناه هستن! حتما میگن من قدرت تصمیم گیری کمی دارم! Product Manager کاری رو با یک فورث زمانی به عهده من میذاره! سراغ مشتری هم که میرم بد قولی می‌کنه! خودش نمی‌دونه چی می‌خاد! خواسته‌هاشو دیر بیان میکنه! وقتی از مشتری میخام کار رو تحویل بگیره خیلی دیر این کارو میکنه و منم در نهایت دیر بازخورد میگیرم و ...خوب کم کم داریم مقصر اصلی رو پیدا میکنیم و اون کسی نیست به جز PM. همون کسی که هیچ کاری نمی‌کنه! فقط نشسته که از بالا بهش پروژه پیشنهاد بشه و اون پروژه رو توی واحد بندازه گردن یک تیم که پیش ببره و از این جریان لذت ببره! چون خودش قرار نیست هیچ کاری بکنه. فقط و فقط استراحت میکنه تا محصول به ثمر برسه! اصلا در جریان جزئیات تیم نیست! در جریان فشاری که روی تیم وجود داره و عدم هماهنگی های بین اعضای تیم و مشتری و ... نیست! اصلا لعنت به PM و هرچی که هست!حالا بریم ببینیم این جلاد بالفطره که تو عصر نوین با عنوان PM شناخته می‌شه حرفی برای گفتن داره؟! بله از پشت صحنه اشاره می‌کنن که PM گفته من هر روز درگیر 1000 تا کار و جلسه مختلف هستم. باید گزارش‌های روزانه و هفتگی و ماهانه و فصلی و سالانه و قرنی و ... از شرایط تیم و پروژه‌ها بدم تا بتونم واحد و کار رو سر پا نگه دارم! باید با واحد‌های دیگه تعامل کنم و باید با مشتری تعامل کنم که کار کمی پیش بره! تازه هر وقت هم سرم خلوت میشه با اعضای تیم جلسه میذارم و ازشون در مورد شرایط کار و ... می‌پرسم و همیشه به من میگن شرایط خیلی خوبه و داریم با قدرت به جلو میریم! خوب گویا PM هم بی گناهه! دو تا متهم داریم اول کمی گویا باید سراغ اسکرام مستر‌ها بریم که شرایط تعاملی تیم رو درست نکردن و نتونستن روح تیمی رو خوب پرورش بدن ! گزینه دوم هم لایه‌های بالاتر مدیریتی و ... است. این چرخه معیوب مقصر پیدا کردن تا بی‌نهایت قابل بررسی کردن هست! اما به چند دلیل دیگه سراغ مقصر‌های جدید نمی‌ریم! اول اینکه زمان محدوده و امکان نوشتن همه مقصرها نیست و در ضمن مطلب حوصله سربر میشه! دوم اینکه کم کم به مقصرهایی در لایه‌های بالا می‌رسیم و احتمال مخاطرات شغلی ایجاد میشه و ممکنه تو کارمون صیانت بشیم پس عقل سلیم حکم می‌کنه زبان به کام بگیریم! سوم هم اینکه بسه همینقدر واقعا! حالا جواب واقعی به نظر شما چی می‌تونه باشه!؟ من به این سوال از دیدگاه خودم جواب میدم. ممکنه شما با این پاسخ موافق یا مخالف باشید! ولی به هر حال نظر خودمه و برای خودم قابل احترام! :-)از نظر من موفقیت یک پروژه هرگز به تنهایی یک سوپرمن و ابر قهرمان نداره! بلکه مجموعه شرایط باعث موفقیت کار میشن! برای موفقیت محصول مشتری، CTO و منابع انسانی، مدیر محصول، مالک محصول، تیم توسعه، اسکرام مستر، تیم پشتبانی و ... همه باید همزمان بهترین کار خودشونو ارائه بدن! در مورد شکست پروژه هم دقیقا شرایط به همین شکل هست! شکست یک پروژه یک مقصر نداره! باید یادمون باشه همه با هم یا به موفقیت می‌رسیم یا شکست می‌خوریم. از شکست همه متضرر میشیم از مدیرعامل تا ... ! وقتی شرایط خراب میشه همه اعضای چرخه اجرای پروژه با هم مقصر هستن. هر کس به اندازه خودش توی شکست نقش داره! به نظرم بهتره به جای چرخه ناقص پیدا کردن مقصر و فرار از زیر بار مسئولیت راهکار بهتری پیدا کنیم. از نظر من یکی از راهکارهای مفید اینه که هر کسی دانش درستی از نقش و تاثیر خودش داشته باشه، کار خودش رو به موقع و درست انجام بده و مهم تر از همه چرخه صحیح بازخورد دادن داشته باشیم! به جای اینکه صبر کنیم تا اسیر شرایط بشیم و شکست بخوریم و دنبال مقصر یا راه فرار بگیردیم باید هدف واضح و روشن برای همه اعضای دخیل در چرخه کار داشته باشیم. با بازخورد درست و به موقع و بدون تعصب دادن به موقع جلوی خروج از مسیر رسیدن به هدف رو بگیریم و در ادامه در هرجایگاهی که هستیم روحیه بازخورد گرفتن داشته باشیم. درک کنیم که بازخورد گرفتن بیش از اینکه یک مسئله شخصی باشه که قراره ما رو خراب کنه، یک موضوع کاملا کاری هست که ما رو در مسیر پیشرفت و رسیدن به هدف قرار میده!