𝗧𝗵𝗲 𝗥𝗲𝗮𝗹 𝗥𝗲𝗮𝘀𝗼𝗻 𝗬𝗼𝘂𝗿 𝗣𝗥𝘀 𝗚𝗲𝘁 𝗕𝗶𝗴
আমি একবার এমন একটি কোম্পানিতে কাজ করেছি যেখানে অভ্যাসবশত বিশাল সব pull request পাঠানো হতো। একটি PR কয়েক সপ্তাহ ধরে খোলা থাকতে পারত। এটি রিভিউ করার জন্য পুরো একটি সাবসিস্টেম (subsystem) মাথায় রাখা প্রয়োজন হতো। বাগ (bugs) জমা হতে থাকল। ডেডলাইন মিস হতে থাকল। শেষ পর্যন্ত আমাদের সিস্টেমের একটি বিশাল অংশ নতুন করে তৈরি করতে হয়েছিল কারণ কেউ আর নিরাপদে সেখানে কোনো পরিবর্তন করতে পারছিল না।
ইঞ্জিনিয়াররা খারাপ ছিলেন না। তারা বুদ্ধিমান ছিলেন এবং কঠোর পরিশ্রম করতেন। একটি বিরক্তিকর কারণে PR-গুলো বড় হয়ে উঠত।
কাজটিকে কীভাবে ছোট ছোট ভাগে ভাগ করতে হয়, তা কেউ তাদের শেখায়নি।
আমরা প্রায়ই বড় PR-গুলোকে শৃঙ্খলার অভাব হিসেবে দেখি। আমরা বলি, "শুধু ছোট ছোট PR করো।" আমরা এমন আচরণ করি যেন ১,৫০০টি পরিবর্তনের বদলে ১৫০টি পরিবর্তন করার একমাত্র পার্থক্য হলো ইচ্ছাশক্তি।
এটি ইচ্ছাশক্তির বিষয় নয়। বড় কাজকে ছোট, স্বাধীন অংশে ভাগ করা একটি দক্ষতা। বেশিরভাগ মানুষকে এটি কখনও শেখানো হয় না। যখন একটি টিকিট (ticket) বলে "billing যোগ করো," তখন মনে হয় এটি একটি মাত্র কাজ। একটি PR কোথায় শেষ হচ্ছে এবং পরবর্তীটি কোথায় শুরু হচ্ছে, তা বুঝতে পারাটাই হলো আসল কঠিন কাজ।
আমিও বড় PR পাঠাতাম। আমি ভাবতাম "done" মানে হলো পুরো সমস্যাটি একবারে সমাধান করা এবং রিভিউয়ের জন্য পাঠানো। ছোট কাজ করা যে বেশি ভালো, তা শিখতে আমার কয়েক বছর সময় লেগেছে।
ছোট PR আমার জন্য সবকিছু বদলে দিয়েছে:
- রিভিউয়াররা বেশি বাগ ধরতে পারেন। একজন মানুষ ২০০টি পরিবর্তন নিয়ে চিন্তা করতে পারেন। কিন্তু ২,০০০টি পরিবর্তন নিয়ে তারা চিন্তা করতে পারেন না। তারা শুধু দ্রুত চোখ বুলিয়ে অনুমোদন (approve) দিয়ে দেন।
- মার্জ (merge) দ্রুত হয়। PR-গুলো আর কিউতে (queue) পড়ে থাকে না।
- আমি আর দিশেহারা বোধ করতাম না। আমি একবারে একটি নির্দিষ্ট অংশের ওপর মনোযোগ দিতে পারতাম।
- আমি একজন ভালো পরিকল্পনাকারী হয়ে উঠেছি। কাজটিকে ছোট করার জন্য আপনাকে অবশ্যই কাজের ধরন বা কাঠামো বুঝতে হবে।
আমি সিস্টেমগুলোকে লেগো (Lego) ব্রিকের মতো দেখতে শুরু করলাম। এগুলো ছোট ছোট টুকরো যা একে অপরের সাথে আটকে যায়। একবার আপনি এই ব্রিকগুলো দেখতে শুরু করলে, কাজকে ছোট করাটা স্বাভাবিক মনে হয়।
আমার বর্তমান টিম ছোট ছোট PR পাঠায়। এর ফলাফল স্পষ্ট:
- আমাদের গড় মার্জ টাইম হলো ১.৫ দিন।
- আমরা দ্রুত বাগ খুঁজে বের করি এবং ঠিক করি কারণ পরিবর্তনগুলো সহজেই বোঝা যায়।
- আমাদের ডেলিভারির সময় অত্যন্ত সুসংগত।
কাজকে ছোট করা এমন একটি দক্ষতা যা আপনাকে শেখাতে হবে। আপনি কোনো নিয়ম দিয়ে বড় PR ঠিক করতে পারবেন না। আপনি মানুষকে 'ব্রিক' বা ছোট অংশগুলো দেখতে শেখানোর মাধ্যমে এটি ঠিক করতে পারেন।
AI এই দক্ষতাকে আরও বেশি গুরুত্বপূর্ণ করে তুলেছে।
অতীতে ২,০০০ লাইন কোড লিখতে অনেক পরিশ্রম লাগত। সেই শ্রমের কারণেই PR-গুলো ছোট থাকত। AI সেই বাধা দূর করে দিয়েছে। আপনি একটি প্রম্পট দিয়েই বিশাল পরিবর্তন তৈরি করতে পারেন।
পরিশ্রমটি হারিয়ে যায়নি। এটি কেবল রিভিউয়ারের ওপর স্থানান্তরিত হয়েছে। লেখক কোনো কষ্ট পান না, কিন্তু রিভিউয়ারকে পুরো মূল্য দিতে হয়।
যদি আকার আর একজন লেখকের কাজের পরিমাণ নির্দেশ না করে, তবে আকার আপনাকে ঝুঁকি সম্পর্কে খুব সামান্যই ধারণা দেবে। আপনাকে সিদ্ধান্ত নিতে হবে কোন অংশগুলো আপনার সবচেয়ে সতর্ক মনোযোগ পাওয়ার যোগ্য।
আপনার টিমকে প্রতিটি ইঁট (bricks) দেখতে শেখান। এটি ইঞ্জিনিয়ারিংয়ের সবচেয়ে প্রভাবশালী অভ্যাস।
আপনার টিম কীভাবে সিদ্ধান্ত নেয় কোন PR-গুলোর গভীর পর্যালোচনার প্রয়োজন এবং কোনগুলো দ্রুত পাস করা যেতে পারে?
উৎস: https://dev.to/pixel-wraith/the-real-reason-your-prs-get-big-5cm3
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi