دلیل واقعی بزرگ شدن PRهای شما
زمانی در شرکتی کار میکردم که از روی عادت، Pull Requestهای (PR) بسیار بزرگی ارسال میکردند. یک PR میتوانست هفتهها باز بماند. بررسی آن مستلزم این بود که کل یک زیرسیستم را در ذهن خود نگه دارید. باگها روی هم انباشته میشدند. ضربالاجلها از دست میرفتند. در نهایت مجبور شدیم بخش بزرگی از سیستم را بازسازی کنیم، چون دیگر هیچکس نمیتوانست با اطمینان تغییری در آن ایجاد کند.
مهندسان بد نبودند. آنها باهوش بودند و سخت کار میکردند. PRها به یک دلیل خستهکننده بزرگ میشدند.
هیچکس به آنها یاد نداده بود که چگونه کار را خرد کنند.
ما اغلب با PRهای بزرگ به عنوان یک مشکل انضباطی برخورد میکنیم. میگوییم: «فقط PRهای کوچکتر بساز.» طوری رفتار میکنیم که انگار تنها تفاوت بین ۱۵۰۰ تغییر و ۱۵۰ تغییر، قدرت اراده است.
موضوع قدرت اراده نیست. خرد کردن کار بزرگ به بخشهای کوچک و مستقل، یک مهارت است. به اکثر مردم هرگز این مهارت آموزش داده نمیشود. وقتی یک تیکت میگوید «سیستم پرداخت را اضافه کن»، به نظر یک وظیفه واحد میرسد. تشخیص اینکه یک PR کجا تمام میشود و بعدی از کجا شروع میشود، بخش سخت ماجراست.
من هم قبلاً PRهای بزرگی ارسال میکردم. فکر میکردم «تمام شدن» یعنی حل کردن کل مسئله به صورت یکجا و ارسال آن برای بررسی. سالها طول کشید تا یاد بگیرم کوچکتر بودن بهتر است.
PRهای کوچک همه چیز را برای من تغییر دادند:
- بازبینها (Reviewers) باگهای بیشتری پیدا میکنند. یک انسان میتواند درباره ۲۰۰ تغییر تحلیل کند، اما نمیتواند درباره ۲۰۰۰ تغییر تحلیل کند. آنها فقط نگاهی گذرا میاندازند و تایید میکنند.
- ادغامها (Merges) سریعتر انجام میشوند. PRها دیگر در صف نمیمانند.
- دیگر احساس کلافگی نمیکنم. در هر لحظه روی یک بخش تمرکز میکنم.
- برنامهریز بهتری شدم. برای خرد کردن کار، باید ساختار آن را درک کنید.
من شروع کردم به دیدن سیستمها به شکل قطعات لگو. آنها قطعات کوچکی هستند که به هم متصل میشوند. وقتی قطعات را ببینید، خرد کردن کار طبیعی به نظر میرسد.
تیم فعلی من PRهای کوچک ارسال میکند. نتایج واضح است:
- میانگین زمان ادغام ما ۱.۵ روز است.
- ما باگها را سریع پیدا و رفع میکنیم چون تغییرات خوانا هستند.
- زمانبندی تحویل ما ثابت و قابل پیشبینی است.
خرد کردن کار مهارتی است که باید آن را آموزش دهید. نمیتوانید PRهای بزرگ را با یک قانون اصلاح کنید. شما با آموزش دادن به افراد برای دیدن «قطعات»، آنها را اصلاح میکنید.
هوش مصنوعی این مهارت را حتی حیاتیتر میکند.
در گذشته، نوشتن ۲۰۰۰ خط کد تلاش زیادی میطلبید. همین اصطکاک باعث میشد PRها کوچکتر بمانند. هوش مصنوعی آن اصطکاک را از بین برد. شما میتوانید با یک دستور (Prompt)، تغییرات عظیمی ایجاد کنید.
آن تلاش از بین نرفته است؛ فقط به سمت بازبین منتقل شده است. نویسنده هیچ هزینهای نمیکند، اما بازبین تمام هزینه را میپردازد.
اگر حجم دیگر نشاندهنده میزان کار انجامشده توسط نویسنده نباشد، پس حجم اطلاعات بسیار کمی درباره ریسک به شما میدهد. شما باید تصمیم بگیرید که کدام بخشها شایسته دقیقترین توجه شما هستند.
به تیم خود یاد بدهید که «آجرها» را ببینند. این پربازدهترین عادت در مهندسی است.
تیم شما چگونه تصمیم میگیرد که کدام PRها نیاز به بررسی دقیق دارند و کدامیک میتوانند بهسرعت تأیید شوند؟
منبع: https://dev.to/pixel-wraith/the-real-reason-your-prs-get-big-5cm3
جامعه یادگیری اختیاری: https://t.me/GyaanSetuAi