مهارتهای کار تیمی نرمافزار قسمت اول: پذیرش مسئولیت
تیم نرمافزاری یک مجموعه است و همه در خروجی تیم که محصول نرمافزاریه شریک هستن. بازبینی کد، نباید باعث بشه در پی اثبات اشتباه هم باشیم
اگر با برنامهنویس جماعت سر و کار داشتید، حتماً متوجه شدید که تعصب عجیبی روی کدهایشان دارند. مهم نیست یک کد که توسط دیگران ایجاد شده چقدر خوب نوشته شده باشد، اگر من ننوشتمش حتماً مشکل پنهانی دارد!
این توهم خود خفن پنداری، باعث ایجاد یک رفتار فرهنگی جالب در تیمهای نرمافزاری میشود که من اسمش را میگذارم: سندروم کدهای قشنگ منکسانی که دچار سندروم کدهای قشنگ من هستند، مدام به جای کمک به بهبود کد، در پی اثبات اشتباه و پیدا کردن مقصر برای باگها و ایرادات کار هستند.
مسئولیت کد در یک تیم نرمافزاری با کیست؟
تصور کنید روی یک پروژه چند نفر برنامهنویس کار میکنند، حتماً این دیالوگها را شنیدهاید:
- اون کدت که برای تبدیل تاریخ شمسی نوشتی باگ داره، الان برنامه تاریخ رو درست نشون نمیده پس کدت رو اصلاح کن.
- چرا برنامه فلان مشکل رو داره؟ اون قسمتی که مد نظر شما هست رو فلانی نوشته و کدش باگ داره، کد من نیست.
- چرا فلان feature رو به برنامه اضافه نمیکنید؟ خب کدی که فلانی نوشته قابلیت توسعه نداره، من باید از اول بنویسمش.
تنبیه دسته جمعی، تشویق دسته جمعی
اولین نکتهای که برای درمان سندروم کدهای قشنگ من باید بهش توجه داشت این است که، تیم نرمافزاری مثل گروهان خدمت سربازی نیست (من مدیر پروژه نرمافزار هستم، من سرهنگ نیستم!). در خدمت سربازی معروف است که تشویق فردی و تنبیه جمعی است. در تیمهای نرمافزاری هم تشویق و هم تنبیه (تنبیه که نه، مسئولیت) جمعی است. یعنی همه تیم مسئول کد هستند نه یک شخص. اگر یک developer نمیتواند باگی را در کدهای دیگران کشف و برطرف کند، احتمالاً باید در انتخاب و استفادهاش در تیم تجدید نظر کرد.
مساله عدم پذیرش مسئولیت کد و سرزنش اعضای تیم، از نظر ارتباط انسانی و همینطور مدیریت پروژه در تیم نرمافزاری هم آفتهایی دارد. اگر شما ضمن عدم پذیرش مسئولیت کد، خراب بودن یا باگ داشتن کد را به دیگری نسبت دهید باعث میشوید:
- در آینده شما هم احتمالاً قربانی همین سندروم شوید و یک نفر مسئولیت کد خراب را گردن شما انداخته و شما را مقصر جلوه بدهد.
- اعضای تیم نسبت به شما احساس بدی پیدا کنند و فکر کنند شما فقط در پی عیب جویی هستید و همین احساس بد باعث شود تا در آینده کمتر با شما همکاری داشته باشند.
- روند اشکال زدایی و تکمیل و تحویل محصول نرمافزاری کند شود، چون افراد تیم به جای رفع مشکلات در حال بحث درباره اینکه اثبات کنند که اشتباهات تقصیر کیست میباشند.
اگر شما هم دچار سندروم کدهای قشنگ من هستید، لطفاً توجه داشته باشید که کد نوشته شده خروجی تیم است و همه در قبال آن مسئولیت دارند، اگر کد خوبی باشد همه در موفقیتش سهیم هستند و اگر کد بدی باشد، همه در fail انجام شده مقصر.
پی نوشت: سندروم کدهای قشنگ من وقتی به صورت تیمی عمل کند، یعنی تیم/مدیر پروژه هوس کند که کدها بازنویسی شود آسیبهای دیگری هم دارد که در نوشته جداگانهای به آن اشاره خواهم کرد.