لطفا بدون خطا چک-این (check-in) کنید

تا به حال شده که کدی را get latest کنید. و پروژه شما دیگر build نشود؟ تا به حال شده کسی کاری در سیستم انجام داده باشد. و بعد از آن خطاهای منطقی یا تحلیلی عجیب و غریبی مشاهده شود؟

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

زمان ایجاد تغییرات

هر روز ممکن است تغییراتی را مشاهده کنیم که با بی دقتی در source control وارد شده اند و مشکلات زیادی را به بار آورنده اند. متاسفانه یا خوشبختانه بهترین فرد برای بررسی عوارض یک تغییر همان فردی است که تغییرات را ایجاد کرده. این که شما انتظار داشته باشید بقیه تیم برنامه نویسی مشکلات ناشی از تغییراتتان را در کمترین زمان ممکن رفع کنند انتظاری نابجا است. زیرا تنها کسی که از عمق تغییرات ایجاد شده اطلاع دارد خود شما هستید.

پس خواهش می کنم بدون خطا چک-این کنید. این که پروژه شما build می شود هم کافی نیست. ممکن تغییرات یا کدهای شما مشکلات منطقی در دیگر جاهای سیستم ایجاد کرده باشد. رفع این تغییرات ممکن است برای شما ۱ ساعت زمان ببرد. ولی برای کس دیگری ممکن است خیلی بیشتر از این مقدار زمان بر باشد.

خطاهای شما به نام کس دیگری خواهد خورد

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

ابزار زیادی لازم ندارد

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

سعی کنیم با دقت چک-این کنیم.