خلاصه‌ی The Clean Coder - قسمت ۰۲ - نه گفتن

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

  • بهترین تصمیم‌ها وقتی گرفته می‌شن که دو نقش وجود داره که در تقابل با هم هستن و هر کدوم با قدرت از مواضعشون دفاع می‌کنن و دنبال اهداف خودشون هستن.
    مثلا وقتی مدیر شما میگه که صفحه لاگین تا فردا باید آماده باشه، دنبال هدف خودشه (داره کارشو انجام می‌ده). از طرفی اگه تو میدونی که قطعا صفحه لاگین تا فردا آماده نمیشه، اگه بگی آماده می‌شه، کارت رو درست انجام ندادی. این وظیفه‌ی تو هست که بش بگی «نه، قطعا تا فردا نمی‌رسه».
    درستش اینه که مکالمه‌ی بالا ادامه پیدا کنه تا دو نفر به یه توافق اصولی برسن (تو این مثال راجب زمان آماده شدن اون صفحه).
  • طبیعیه که یه‌سری تقابل و لحظه‌های معذب‌کننده هم پیش میاد تو این مکالمه‌ها، چون دو نفر دارن از مواضع مختلفی دفاع می‌کنن. (میتونی از تکنیک «صفحه‌ی خط افتاده» استفاده کنی).
  • موقعی که می‌خوای بگی فلان چیز به فلان تاریخ نمی‌رسه، نیاز نیست خیلی وارد جزئیات بشی چون راه رو برای micro-management باز می‌کنه.
  • ? مهم‌ترین موقعی که باید شجاعت نه گفتن رو داشت، تو مواقع حساس و حیاتیه.
  • بازیکن تیمیِ خوبی بودن یعنی:
    • نقش خودت رو به بهترین شکل انجام بدی
    • وقتی واسه هم‌تیمی‌هات مشکلی پیش میاد بهشون کمک کنی
  • ? بدترین کاری که میتونی بکنی اینه که بجای «نه»، بگی «باشه، سعی می‌کنم»؛
    • اینکه بگی تلاش می‌کنم، یعنی تا الان داشتی کم‌کاری می‌کردی
    • اینکه بگی تلاش می‌کنم، یعنی با تلاش بیش‌تر میشه به هدف کذایی رسید
    • وقتی میگی تلاش می‌کنم، تو داری خودت رو متعهد می‌کنی به «موفقیت» و به‌سرانجام رسوندن اون کار و داری یه باری رو به دوش خودت میذاری.
    • اگه نقشه‌ی جدیدی نداری، اگه کارهایی که می‌کنی رو تغییر ندی، اگه دقیقا همون کارهای قبلی رو بکنی، پس «سعی می‌کنم» یعنی چی؟! ⚠️⚠️ اگه اینجوره، احتمالا صرفا واسه حفظ ظاهر و فرار از یه مکالمه‌ای که معذبت می‌کنه اون قول رو داری می‌دی.
    • ممکنه طرف مقابل واسه انداختن تو توی دام «تلاش می‌کنم»، تکنیک‌های مختلفی بزنه، رفاقتی، خواهش، نمایش قدرت و غیره. مهم اینه که تو پوزیشن خودت رو حفظ کنی (مثل کوه سرجای خودت بمونی).
    • اگه پیش‌بینی از زمان تحویل دقیق نیست (به هر دلیل)، این عدم قطعیت رو منتقل کن به مدیریت.
    • ? اگه مدیر مستقیم داره تخمین رو نادیده می‌گیره و حدس می‌زنی که داره وعده اشتباه به مدیر بالادستی می‌ده، دو راه داری:
      • سند و مدرک جمع کنی که تو به مدیر مستقیم گفتی که نمی‌رسه و صبر کنی تا ددلاین و پروژه نرسه و عواقبش به شرکت و تیم تحمیل شه
      • همون موقعی که متوجه موضوع می‌شی، به مدیر بالادستی بگی و تیم و شرکت رو نجات بدی
  • تو تیم‌های درست و حسابی، آدما با هم حرف می‌زنن تا به یه نقشه‌ای برسن که مورد توافق همشونه. بعضی وقت‌ها تنها راه رسیدن به «بله» درست، اینه که از «نه» گفتن نگران نباشی.
  • بعضی از ذی‌نفع‌ها (چه مشتری خارجی یا مدیریت داخلی) یاد گرفتن چی‌کار کنن که دولوپر با سرعت بنز کار کنه و پروژه رو در اسرع وقت تحویل بده (این‌که چه چیزایی مثل کیفیت کد، زندگی شخصی دولوپر و غیره قربانی می‌شن هم احتمالا واسشون خیلی مهم نیست). مراحلش از این قراره:
    • به دولوپر میگی پروژه ساده‌س
    • فیچرها رو کم کم اضافه می‌کنی به این شکل که به دولوپر(ها) میگی که «خب معلومه که فلان چیز لازمه»، یا «مگه میشه نرم‌افزار فلان باشه ولی بهمان فیچر رو نداشته باشه»، یا «این که دیگه گفتن نداره، معلومه» و غیره.
    • یه ددلاین نزدیک میذاری که دولوپر مجبور شه با حداکثر توان و سرعت کد بزنه، بعد که پروژه نرسید، ددلاین رو یکم جابجا می‌کنی و همین کار رو تکرار می‌کنی.
  • اگه «بله»ای که می‌گی، به قیمت کنار گذاشتن دسیپلین‌های حرفه‌ایت تموم میشه، داری به احتمال زیاد اشتباه می‌زنی و این مسیری که می‌ری نه تنها مشکل رو حل نمی‌کنه، که احتمالا بهش اضافه هم می‌کنه.