بی نظمی و نظم زیادی

خیلی وقت پیش در شرکتی شروع به کار کردم که تقریباً هر کسی هر جور دلش می خواست کد می نوشت. در تیم برنامه نویسی حتی استفاده از سورس کنترل هم رایج نبود (البته آن زمان، استفاده از سورس کنترل در شرکت های خیلی خیلی کمی در ایران رایج بود). سوراخ سنبه های کامپیوترها و سرورها پر از کدهای تکراری بود. باگ ها نه یک بار، بلکه چند بار رفع می شدند. کد پروژه ها حاوی مقدار قابل توجهی بلاک بودند که اصلاً هیچ وقت امکان اجرا پیدا نمی کردند.

مدیریت تصمیم گرفت سر و سامانی به اوضاع بدهد. استفاده از سورس کنترل اجباری شد، همه تیم اجایل و اسکرام یاد گرفتند، برای همه چیز قاعده در نظر گرفته شد. برای هر چیزی حتی یک موضوع کم اهمیت هم جلسه تشکیل می شد و موضوع به بحث گذاشته می شد. حتی آب خوردن های دولوپرها بدون تعریف تسک غیر ممکن شد. نام گذاری هیچ چیزی بدون در نظر گرفتن متود رسمی شرکت امکان پذیر نبود. و خلاصه سلسه مراتب شرکت از نظم ارتش هم جلوتر زد.

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

جالب اینجاست که این الگو را در تیم های دیگر هم دیده و هنوز هم می بینم. تصمیم گیرندگان به قصد نظم بخشی و بهبود کیفیت کدی که واقعاً هم نیاز به تقویت ساختار دارد، آنچنان قواعد مختلف، تو در تو و سخت گیرانه ای تعریف می کنند که این بار از آن طرف بام می افتند. صد تا interface برای پروژه تعریف می کنند در حالی که هیچ کدام از آنها قرار نیست بیش از یک بار implement شوند. Repository روی Repository تعریف می شود و کلی فیلد یکسان به همه جداول اضافه می شود با این توجیه که پروژه باید یک دست باشد.

من هنوز نفهمیدم که قصه چیست. چرا نمی شود حد وسط را انتخاب کرد؟ آیا تیم Refactoring می خواهد با پیچیده سازی کد، نبوغش را به رخ بکشد؟ آیا از بس که کد بی ساختار دیده اند خسته شده اند و تصمیم گرفته اند برای هر دری، یک دربان و ده تا قفل و کلید بگذارند؟

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *