ساده بگیرید!
در اواخر جنگ جهانی دوم ارتش سرخ ماهانه 1300 تانک T-34 تولید می کرد. این تانک سبک بود و تعداد قطعات کمی داشت. اشکالاتی در طراحی داشت که باعث خرابی در مسافتهای طولانی میشد. با این وجود مهندسان روسی تصمیم گرفتند اشکالات را برطرف نکنند چون خط تولید را تغییر میداد و از سرعت تولید کم میشد. در عوض به همراه تانک قطعات یدک قرار میدادند. از آنجا که طراحی ساده ای داشت افراد با مهارت کم می توانستند در میدان جنگ تعمیرات را انجام دهند.
در سمت دیگر تانکهای Panther و Tiger آلمان از با کیفیت ترین ابزار نبرد بود. صدها کیلومتر بدون مشکل فنی حرکت می کرد و توپخانه سنگین آن می توانست انواع موانع را نابود کند. اما تولید این تانکها سخت بود. هر ماه کمتر از 200 تانک تولید میشد. در زمانی که آلمان با مشکل مواد خام مواجه شد تعمیر تانکهای قبلی هم ممکن نبود چون از نظر فنی پیچیده بود و نیاز به متخصص و زمان زیادی بود تا تانک دوباره به میدان برگردد. در نتیجه بسیاری از آنها با کوچکترین مشکل فنی در میدان جنگ رها میشد.
در مهندسی اصل KISS یا Keep it simple, Stupid می گوید بهتر است همه چیز را آنقدر ساده طراحی کنید تا احمق ها هم بتوانند از آن استفاده کنند.
بسیاری از برنامه نویسها سعی می کنند به کدهایشان پیچیدگی اضافه می کنند تا حرفه ای دیده شوند. تصور عمومی این است که اگر پروژه ای ساده پیاده شده باشد کار مبتدی است. این برنامه نویسها هر روز کدهایشان را بررسی می کنند تا فلان الگوی طراحی که در کتاب خوانده اند را به آن اضافه کنند. برای این افراد نشان دادن کد ساده به دیگران مایه ننگ است. اما این افراد نمی دانند که فردا باید باگهای همین کدهای پیچیده را خودشان برطرف کنند و در زمانی که سرور پایین آمده و هر ثانیه هم حیاتی است در انبار کاه باید به دنبال سوزن باشند. این افراد داکیومنت تحویل نمی دهند 6 ماه بعد خودشان هم نمی دانند در پروژه چه کردند و نیستند که پاسخگو باشند.
شاید تابلو های نقاشی یا جواهرات زینتی با پیچدگی و جزئیات زیاد زیباتر جلوه کند اما در مهندسی زیبایی در سادگی است. اگر به اطرافتان نگاه کنید می بینید که ابزاری دوست دارید و هر روز از آنها استفاده می کنید ساده طراحی شده اند. مسئله ما صرفا خلق یک محصول نیست بلکه باید برای خرابی آن هم برنامه داشته باشیم.
هرچقدر حرفه ای تر باشید از ساده ترین روشها برای حل پیچیده ترین مشکلات استفاده می کنید. پس قبل از نوشتن هر خط کد و اضافه کردن پیچیدگی بیشتر از خود بپرسید :
" آیا واقعا لازمش دارم؟"
Post #812
160