2.9

২.৯ পুল রিকোয়েস্ট ও কোড পর্যালোচনা মেট্রিক

সারসংক্ষেপ এবং প্রেরণা

কোড পর্যালোচনা সাধারণত বিষয় ২.৬-এর চক্র-সময় ভাঙনের মধ্যে একক বৃহত্তম অপেক্ষা-সময় অবদানকারী, এবং এটি সেই পর্যায়ও যা একটি দলের নিজস্ব নিয়ন্ত্রণে সবচেয়ে সরাসরি থাকে উন্নত করার জন্য, একটি ভাগ করা প্ল্যাটফর্ম বাধা বা একটি বাহ্যিক নির্ভরতার বিপরীতে। এই বিষয়টি পর্যালোচনা পর্যায়ের ভেতরে বসবাসকারী নির্দিষ্ট মেট্রিক আচ্ছাদন করে: প্রথম পর্যালোচনার সময়, পুল রিকোয়েস্টের আকার, পর্যালোচনা পুনরাবৃত্তি গণনা, এবং পর্যালোচক ভার বিতরণ, এবং পর্যালোচনার প্রকৃত গুণমান সুবিধা ত্যাগ না করে পর্যালোচনার গতি উন্নত করতে কীভাবে সেগুলো ব্যবহার করতে হয়।

এই বিষয় যে ঝুঁকির প্রতি সবচেয়ে সতর্ক তা এমন একটি যা এই বই এখনও সরাসরি আচ্ছাদন করেনি: পর্যালোচনা গতি অপ্টিমাইজ করা অসাবধানে অনুসরণ করলে নীরবে পর্যালোচনা গুণমান ক্ষয় করতে পারে। একটি দল যে তার প্রথম-পর্যালোচনার-সময় অর্ধেক করে সবকিছু একটি রাবার-স্ট্যাম্প দিয়ে অনুমোদন করে একটি মেট্রিক উন্নত করেছে অনুশীলনের প্রকৃত মূল্য ধ্বংস করার সময়। এই বিষয়ের প্রতিটি সুপারিশ সেই টানাপোড়েন দৃষ্টিতে রেখে লেখা হয়েছে, কারণ পুল রিকোয়েস্ট মেট্রিক এই বইয়ের মধ্যে এমন একটি উপায়ে কারচুপি করা সবচেয়ে সহজ যা একটি ড্যাশবোর্ডে ভালো দেখায় যখন অন্তর্নিহিত কোডবেসকে পরিমাপযোগ্যভাবে খারাপ করে।

বড় দলের জন্য, পর্যালোচনা মেট্রিক ভার-ভারসাম্য সমস্যা প্রকাশ করে যা অন্যথায় অদৃশ্য: একটি ছোট সংখ্যক জ্যেষ্ঠ প্রকৌশলী পর্যালোচনা ভারের একটি অসামঞ্জস্যপূর্ণ অংশ শোষণ করছে, একটি নির্দিষ্ট দল বা কোডবেস এলাকা যেখানে পর্যালোচনা ধারাবাহিকভাবে থেমে যায়, বা অতিরিক্ত-আকারের পুল রিকোয়েস্টের একটি প্যাটার্ন যা পর্যালোচক পরিশ্রম নির্বিশেষে পুঙ্খানুপুঙ্খ পর্যালোচনাকে ব্যবহারিকভাবে অসম্ভব করে তোলে। এই প্যাটার্নগুলো মাত্রায় একটি ছোট দলের চেয়ে অনেক বেশি যৌগিক হয়, যেখানে সবাই একটি মেট্রিক ছাড়াই সরাসরি অসামঞ্জস্য দেখতে পারে।

মূল নীতিসমূহ

  • প্রথম পর্যালোচনার সময় সাধারণত সবচেয়ে বড় লিভার, পর্যালোচনা পুঙ্খানুপুঙ্খতা নিজেই নয়। বেশিরভাগ বিলম্ব একটি পুল রিকোয়েস্ট দেখা হওয়ার জন্য অপেক্ষা করা থেকে আসে, একবার শুরু হলে পর্যালোচনা কথোপকথন দীর্ঘ সময় নেওয়া থেকে নয়।
  • ছোট পুল রিকোয়েস্ট দ্রুততর ও আরও পুঙ্খানুপুঙ্খভাবে পর্যালোচিত হয়, শুধু দ্রুততর নয়। আকার একসাথে গতি ও গুণমান উভয়ের জন্য একটি লিভারেজ বিন্দু।
  • পর্যালোচনা গতি ও পর্যালোচনা গুণমান স্বয়ংক্রিয়ভাবে টানাপোড়েনে নেই, কিন্তু সেগুলো অসাবধানে ট্রেড অফ করা যায়। স্পষ্টভাবে সেই বিনিময়ের বিরুদ্ধে রক্ষা করুন।
  • পর্যালোচক ভার ভারসাম্যহীনতা সাধারণ এবং সাধারণত একটি মেট্রিক ছাড়া অদৃশ্য। একটি ছোট সংখ্যক মানুষ প্রায়ই একটি অসামঞ্জস্যপূর্ণ অংশ শোষণ করে।
  • এই মেট্রিক রাবার-স্ট্যাম্প কারচুপি ঝুঁকির প্রতি প্রকাশিত। কোনো প্রকৃত পরীক্ষা ছাড়া একটি দ্রুত অনুমোদন পর্যালোচনার পুরো উদ্দেশ্য পরাজিত করে।

সুপারিশসমূহ

প্রাথমিক গতি মেট্রিক হিসেবে প্রথম পর্যালোচনার সময় ট্র্যাক করুন

আপনার সংস্করণ নিয়ন্ত্রণ প্ল্যাটফর্ম থেকে স্বয়ংক্রিয়ভাবে ইনস্ট্রুমেন্ট করে একটি পুল রিকোয়েস্ট খোলা হওয়া থেকে একজন পর্যালোচকের প্রথম বাস্তবিক মন্তব্য বা অনুমোদন পর্যন্ত বিরতি পরিমাপ করুন। এটি সাধারণত পর্যালোচনা পর্যায়ের মধ্যে প্রধান অপেক্ষা-সময় অবদানকারী (বিষয় ২.৫, বিষয় ২.৬), এবং এটি উন্নত করা, স্পষ্টতর পর্যালোচনা-নিয়োগ নিয়ম, বিজ্ঞপ্তি অনুশীলন, বা নিবেদিত পর্যালোচনা সময় ব্লকের মাধ্যমে, সাধারণত একটি দলের জন্য উপলব্ধ সামগ্রিক চক্র সময়ের জন্য একক বৃহত্তম উন্নতি উৎপাদন করে।

পুল রিকোয়েস্ট আকার ট্র্যাক করুন এবং সক্রিয়ভাবে ছোট পরিবর্তন উৎসাহিত করুন

প্রতি পুল রিকোয়েস্টে পরিবর্তিত লাইন বা স্পৃষ্ট ফাইল পরিমাপ করুন, এবং একটি ক্রমাগত বড় মধ্যক আকারকে সরাসরি সমাধানের যোগ্য একটি সংকেত হিসেবে বিবেচনা করুন। ছোট পুল রিকোয়েস্ট দ্রুততর পর্যালোচিত হয়, আরও পুঙ্খানুপুঙ্খভাবে পর্যালোচিত হয় (একজন পর্যালোচক প্রকৃতপক্ষে পুরো পরিবর্তনটি তাদের মাথায় ধরে রাখতে পারেন), এবং কিছু ভুল হলে ফিরিয়ে নেওয়া সহজ, বিষয় ২.১০-এর স্থাপনা ফ্রিকোয়েন্সির পেছনের ব্যাচ-আকার নীতির সাথে সরাসরি ফিরে সংযুক্ত হয়। যেখানেই কাজ এটি অনুমতি দেয় সেখানে বড় পরিবর্তনকে ছোট, স্বাধীনভাবে পর্যালোচনাযোগ্য পুল রিকোয়েস্টের একটি ক্রমে বিভক্ত করতে উৎসাহিত করুন।

স্পষ্টভাবে পর্যালোচক ভার বিতরণ পর্যবেক্ষণ করুন

একটি ঘূর্ণায়মান উইন্ডো জুড়ে প্রতি ব্যক্তি সম্পন্ন পর্যালোচনার সংখ্যা ট্র্যাক করুন, এবং নির্দিষ্টভাবে একটি ছোট সংখ্যক মানুষ একটি অসামঞ্জস্যপূর্ণ অংশ শোষণ করছে তার জন্য দেখুন। এই প্যাটার্ন সাধারণ, প্রায়ই সবচেয়ে জ্যেষ্ঠ বা সবচেয়ে বিশ্বস্ত প্রকৌশলীদের উপর পড়ে, এবং উভয়ই একটি বাধা তৈরি করে (তাদের উপলব্ধতা পুরো দলের পর্যালোচনা থ্রুপুট সীমাবদ্ধ করে) এবং একটি বার্নআউট ঝুঁকি (বিষয় ৩.২ আরও গভীরে সুস্থতা মেট্রিক আচ্ছাদন করে)। যে কেউ প্রতিক্রিয়া জানাতে দ্রুততম তার চারপাশে ডিফল্টভাবে এটি ঘনীভূত হতে দেওয়ার বদলে ইচ্ছাকৃতভাবে পর্যালোচনা দায়িত্ব ঘোরান।

স্পষ্টভাবে রাবার-স্ট্যাম্প কারচুপি ঝুঁকির বিরুদ্ধে রক্ষা করুন

প্রথম-পর্যালোচনার-সময়কে একটি গুণমান সংকেতের সাথে জোড়া দিন: শূন্য পর্যালোচনা মন্তব্যসহ অনুমোদিত পরিবর্তনে ফিরে খোঁজা ত্রুটি বা ঘটনার হার, বা সম্প্রতি পর্যালোচিত কোডের জন্য প্রয়োজনীয় মার্জ-পরবর্তী সংশোধনের হার। একটি দল যে প্রকৃত পরীক্ষা ছাড়া অনুমোদন করে পর্যালোচনা গতি উন্নত করে এই গার্ডরেল অবনতি হতে দেখা উচিত, যা ঠিক বিষয় ১.২-এর জোড়াকরণ নীতি এই নির্দিষ্ট মেট্রিক পরিবারে প্রয়োগ করা। এই কাউন্টার-মেট্রিক দৃষ্টিতে না রেখে কখনও পর্যালোচনা গতি অনুসরণ করবেন না।

ব্যক্তিদের বিচার করতে নয়, ঘর্ষণ চিহ্নিত করতে পর্যালোচনা পুনরাবৃত্তি গণনা ব্যবহার করুন

মার্জ হওয়ার আগে একটি পুল রিকোয়েস্ট যে সংখ্যক পর্যালোচনা রাউন্ডের মধ্য দিয়ে যায় প্রকৃত ঘর্ষণ সংকেত দিতে পারে, অস্পষ্ট প্রয়োজনীয়তা, পদ্ধতি নিয়ে মতবিরোধ, অসামঞ্জস্যপূর্ণ শৈলী প্রত্যাশা, প্রক্রিয়া স্তরে তদন্তের যোগ্য। পৃথক লেখক বা পর্যালোচকদের সরাসরি বিচার করতে এই সংখ্যা ব্যবহার এড়িয়ে চলুন; একটি উচ্চ পুনরাবৃত্তি গণনা একটি ব্যক্তিগতের চেয়ে প্রায়ই একটি সিস্টেম বা যোগাযোগ সংকেত, এবং এটিকে একটি ব্যক্তিগত স্কোরকার্ড হিসেবে বিবেচনা করা ঠিক সেই মূল্যায়নমূলক সরণের ঝুঁকি নেয় যার বিরুদ্ধে বিষয় ১.১ সতর্ক করে।

মূল্যবিচার: ভালো ও মন্দ দিক

পদ্ধতিভালো দিকমন্দ দিক
শুধু প্রথম পর্যালোচনার সময়ের জন্য অপ্টিমাইজ করাদ্রুত, স্পষ্ট সংকেত, ইনস্ট্রুমেন্ট করা সহজঅরক্ষিত হলে ভাসাভাসা, রাবার-স্ট্যাম্প পর্যালোচনাকে উৎসাহিত করতে পারে
শুধু পুল রিকোয়েস্ট আকার হ্রাসের জন্য অপ্টিমাইজ করাএকসাথে গতি ও পুঙ্খানুপুঙ্খতা উভয়ই উন্নত করেসব কাজ পরিষ্কারভাবে ছোট বৃদ্ধিতে বিভক্ত হয় না
সমানভাবে পর্যালোচনা ভার ঘোরানোবাধা ও বার্নআউট ঝুঁকি কমায়নির্দিষ্ট দক্ষতা প্রয়োজন এমন বিশেষায়িত, পর্যালোচনা-কঠিন কোডের জন্য পর্যালোচনা ধীর করতে পারে
জ্যেষ্ঠ প্রকৌশলীদের মধ্যে পর্যালোচনা কেন্দ্রীভূত করাগভীর ডোমেইন দক্ষতা সামঞ্জস্যপূর্ণভাবে প্রয়োগসময়ের সাথে একটি বাধা ও একটি বার্নআউট ঝুঁকি তৈরি করে

কেন্দ্রীয় টানাপোড়েন হলো গতি বনাম পরীক্ষার গভীরতা। পর্যালোচনা দ্রুততর করার জন্য এই বিষয়ের প্রতিটি কৌশল, দ্রুততর প্রথম প্রতিক্রিয়া, ছোট পুল রিকোয়েস্ট, আরও বিতরণকৃত পর্যালোচক ভার, এই বিষয়ের সুপারিশকৃত গুণমান গার্ডরেল ছাড়া অনুসরণ করলে প্রকৃত পরীক্ষা বিনিময় করার কিছু ঝুঁকি বহন করে। একই সময়কালে ট্র্যাক করা প্রতিটি গতি মেট্রিককে একটি গুণমান সংকেতের সাথে জোড়া দিয়ে টানাপোড়েন সমাধান করুন, যাতে একটি দল একটি নীরবে ক্ষয়প্রাপ্ত পর্যালোচনা মান থেকে প্রকৃত প্রক্রিয়া উন্নতি বলতে পারে।

আপনার দলের সাথে আলোচনার প্রশ্ন

১. আমাদের প্রকৃত প্রথম পর্যালোচনার সময় কী, এবং আমাদের সামগ্রিক চক্র সময়ের কতটা পর্যালোচনা পর্যায় গ্রাস করে? ধারণার উপর নির্ভর করার বদলে প্রকৃত সংখ্যা টানুন; পর্যালোচনা অপেক্ষার সময় প্রায়ই দল ধরে নেওয়ার চেয়ে বড়, ঠিক কারণ সক্রিয়ভাবে কাজ করার বদলে অপেক্ষায় ব্যয় করা সময় অবমূল্যায়ন করা সহজ।

২. আমাদের মধ্যক পুল রিকোয়েস্ট আকার কী, এবং সেই আকার কমলে আমাদের পর্যালোচনা বিলম্ব কতটা সংকুচিত হবে? বড় পুল রিকোয়েস্ট উভয়ই পর্যালোচনা করতে ধীর এবং শুধু কারণ একজন পর্যালোচক একবারে পুরো জিনিসটি তাদের মাথায় ধরে রাখতে পারেন না ভাসাভাসা পর্যালোচনা পাওয়ার সম্ভাবনা বেশি। আপনার প্রকৃত আকার বিতরণ দেখুন, শুধু মধ্যক নয়।

৩. পর্যালোচনা ভার কি একটি ছোট সংখ্যক মানুষের মধ্যে কেন্দ্রীভূত, এবং তাদের একজন দুই সপ্তাহের জন্য অনুপলব্ধ হলে আমাদের পর্যালোচনা থ্রুপুটের কী হবে? এই প্রশ্ন একই সাথে একটি বাধা ঝুঁকি ও একটি বার্নআউট ঝুঁকি উভয়ই প্রকাশ করে। ধারণার উপর নির্ভর করার বদলে প্রকৃত পর্যালোচক-ভার উপাত্ত টানুন।

৪. আমরা কি কখনও এমন একটি উপায়ে একটি পর্যালোচনা-গতি মেট্রিক উন্নত করেছি যা, প্রতিফলনে, প্রকৃত পরীক্ষা কমিয়েছে? এখানে সৎ হোন; এটি ঠিক সেই রাবার-স্ট্যাম্প ঝুঁকি যা এই বিষয় নাম দেয়, এবং এটি করার কোনো ইচ্ছাকৃত সিদ্ধান্ত ছাড়াই এতে পিছলে যাওয়া সহজ।

৫. একটি উচ্চ পর্যালোচনা পুনরাবৃত্তি গণনা আমাদের দলে সাধারণত কী সংকেত দেয়: প্রকৃত মতবিরোধ, অস্পষ্ট প্রয়োজনীয়তা, বা অসামঞ্জস্যপূর্ণ শৈলী প্রত্যাশা? অস্বাভাবিকভাবে উচ্চ পুনরাবৃত্তি গণনাসহ পুল রিকোয়েস্টের একটি নমুনা দেখুন এবং প্রকৃত প্যাটার্ন নির্ণয় করুন, এটি লেখক বা পর্যালোচক কারো উপর খারাপভাবে প্রতিফলিত করে ধরে নেওয়ার বদলে।

৬. আমাদের কি আমাদের পর্যালোচনা-গতি মেট্রিকের সাথে জোড়া একটি গুণমান গার্ডরেল আছে, নাকি আমরা বিচ্ছিন্নভাবে গতি ট্র্যাক করছি? যদি সৎ উত্তর হয় এমন কোনো গার্ডরেল বিদ্যমান নেই, বিষয় ১.২-এর জোড়াকরণ নীতি অনুযায়ী পর্যালোচনা গতিকে আরও ঠেলার আগে সেই ফাঁক বন্ধ করার যোগ্য।

ক্ষেত্র লেন্স

স্টার্টআপ। একটি ছোট দলসহ পর্যালোচনা প্রায়ই ডিফল্টভাবে দ্রুত, কখনও কখনও প্রায় খুব দ্রুত, ন্যূনতম পরীক্ষাসহ একক-অনুমোদক পর্যালোচনা কারণ সবাই সবাইকে বিশ্বাস করে। দল বৃদ্ধির সাথে সাথে দেখার ঝুঁকিটি হলো দলের আকারের সাথে পর্যালোচনা গুণমান স্কেল না হওয়া, যেহেতু পাঁচজন প্রকৌশলীর জন্য কাজ করা অনানুষ্ঠানিক বিশ্বাস পঞ্চাশজনের জন্য স্বয়ংক্রিয়ভাবে কাজ করে না।

ছোট ব্যবসা। বেশিরভাগ সংস্করণ-নিয়ন্ত্রণ প্ল্যাটফর্ম বাক্স থেকেই মার্জের সময় ও পর্যালোচনা-গণনা পরিসংখ্যান প্রতিবেদন করে; কাস্টম ইনস্ট্রুমেন্টেশন তৈরি করার বদলে এগুলো ব্যবহার করুন। প্রধান শৃঙ্খলা গ্রহণের যোগ্য হলো শুধু লক্ষ্য করা দল বৃদ্ধির সাথে সাথে পর্যালোচনা ভার নীরবে এক বা দুইজনের উপর কেন্দ্রীভূত হয়েছে কিনা।

এন্টারপ্রাইজ। এখানে পর্যালোচক ভার ভারসাম্যহীনতা ও বিশেষায়িত-জ্ঞান বাধা বিশেষভাবে সাধারণ, যেখানে একটি সমালোচনামূলক সিস্টেমে গভীর ডোমেইন দক্ষতা দলের আকার নির্বিশেষে একটি ছোট দলের উপর পর্যালোচনা দায়িত্ব কেন্দ্রীভূত করতে পারে। দক্ষতা ছড়িয়ে দিতে ইচ্ছাকৃত জ্ঞান-ভাগাভাগি ও পর্যালোচনা ঘূর্ণনে বিনিয়োগ করুন, খুব কম মানুষের মধ্যে সেই দক্ষতা বসবাসের বাধা ও বাস-ফ্যাক্টর ঝুঁকি উভয়ই কমিয়ে।

সরকার। এখানে পর্যালোচনা প্রক্রিয়া প্রায়ই গুণমান লক্ষ্যের পাশাপাশি সম্মতির ওজন বহন করে, যা নকশা দ্বারা পুল রিকোয়েস্টকে বড় ও পর্যালোচনাকে ধীর করতে পারে। যেখানে প্রকৃত সম্মতি প্রয়োজনীয়তা পুঙ্খানুপুঙ্খ পর্যালোচনা দাবি করে, পর্যালোচনার প্রকৃত গভীরতার সাথে আপস করার বদলে অপেক্ষার সময় কমানোয় (দ্রুততর পর্যালোচনা নিয়োগ, স্পষ্টতর ট্রায়াজ) উন্নতির প্রচেষ্টা ফোকাস করুন, এবং নিয়ন্ত্রক কারণে পরীক্ষা ভারী থাকতে হলে স্পষ্টভাবে বিনিময় নথিভুক্ত করুন।

উদাহরণ

এন্টারপ্রাইজ। একটি সাইবার নিরাপত্তা কোম্পানির প্রকৌশল সংগঠন পেয়েছিল যে কয়েকজন প্রধান প্রকৌশলী একটি দুইশত-ব্যক্তির সংগঠন জুড়ে সব কোড পর্যালোচনার ৪০%-এরও বেশি সম্পন্ন করছিলেন, একটি অসামঞ্জস্য যা কেউ প্রকৃতপক্ষে পরিমাপ করেনি যতক্ষণ না পর্যালোচক-ভার উপাত্ত টানা হয়েছিল। এই কেন্দ্রীকরণ উভয়ই একটি বাধা ছিল, যেহেতু সেই প্রকৌশলীদের উপলব্ধতা পুরো সংগঠনের জন্য পর্যালোচনা থ্রুপুট সীমাবদ্ধ করেছিল, এবং একটি এনগেজমেন্ট জরিপ দ্বারা পৃথকভাবে চিহ্নিত একটি বার্নআউট ঝুঁকি (বিষয় ৩.২)। সংগঠনটি লক্ষ্যযুক্ত জ্ঞান-ভাগাভাগি অধিবেশনের সাথে জোড়া একটি কাঠামোগত পর্যালোচনা-ঘূর্ণন কর্মসূচি প্রবর্তন করেছিল, এবং দুই ত্রৈমাসিকের মধ্যে পর্যালোচনা ভার অনেক বিস্তৃত একটি দলে ছড়িয়ে পড়েছিল, হ্রাসকৃত বাধার একটি সরাসরি পার্শ্ব প্রতিক্রিয়া হিসেবে প্রথম পর্যালোচনার সময় উন্নত হয়েছিল।

সরকার। একটি কর কর্তৃপক্ষের প্রকৌশল দল, সরবরাহ গতি উন্নত করার চাপে, প্রথম পর্যালোচনার সময় অর্ধেক করার একটি লক্ষ্য নির্ধারণ করেছিল। এক ত্রৈমাসিকের মধ্যে, লক্ষ্যটি পূরণ হয়েছিল, কিন্তু একটি পরবর্তী গুণমান নিরীক্ষা মার্জ-পরবর্তী ত্রুটি-সংশোধন পুল রিকোয়েস্টে একটি তীব্র বৃদ্ধি পেয়েছিল, একটি একক, সংক্ষিপ্ত মন্তব্যসহ অনুমোদিত পরিবর্তনে কেন্দ্রীভূত। দলের সমাধান একটি পর্যালোচনার দুই সপ্তাহের মধ্যে প্রয়োজনীয় মার্জ-পরবর্তী সংশোধনের হার, স্পষ্ট গুণমান গার্ডরেলের সাথে গতি লক্ষ্য জোড়া দিয়েছিল, এবং একটি বাস্তবিক পর্যালোচনা প্রকৃতপক্ষে কী প্রয়োজন তার উপর দলকে পুনঃপ্রশিক্ষণ দিয়েছিল, ভালো পর্যালোচনা নিয়োগ ও ছোট পুল রিকোয়েস্ট আকার থেকে আসা বেশিরভাগ গতি উন্নতি রাখার সময় প্রকৃত পরীক্ষা পুনরুদ্ধার করে।

ব্যবসায়িক যুক্তি: প্রেরণা, ROI, এবং TCO

সুব্যবস্থাপিত পর্যালোচনা মেট্রিকের রিটার্ন হলো গুণমান ত্যাগ না করে দ্রুততর সরবরাহ, যা একটি বিরল সংমিশ্রণ: বেশিরভাগ সরবরাহ উন্নতি কোথাও ঝুঁকির বিরুদ্ধে গতি বিনিময় করে, কিন্তু পর্যালোচনা-পর্যায়ের উন্নতি, ছোট পুল রিকোয়েস্ট, ভালো ভার বিতরণ, দ্রুততর প্রথম-প্রতিক্রিয়া, এই বিষয়ের সুপারিশকৃত গুণমান গার্ডরেলসহ অনুসরণ করলে প্রকৃতপক্ষে একসাথে উভয়ই উন্নত করে। উপরের সাইবার নিরাপত্তা উদাহরণ সাধারণ: একটি বাধা ঠিক করা গতি উন্নত করেছিল যখন অন্তর্নিহিত পর্যালোচনা গুণমান, যদি কিছু হয়, দক্ষতা আরও বিস্তৃতভাবে ছড়িয়ে পড়ার সাথে সাথে উন্নত হয়েছিল।

মোট মালিকানা খরচ কম: এই মেট্রিকের বেশিরভাগই ন্যূনতম অতিরিক্ত ইনস্ট্রুমেন্টেশনসহ বিদ্যমান সংস্করণ-নিয়ন্ত্রণ প্ল্যাটফর্ম উপাত্ত থেকে সরাসরি আসে, এবং সেগুলো যে প্রক্রিয়া পরিবর্তনের দিকে নির্দেশ করে, পর্যালোচনা ঘূর্ণন, ছোট পুল রিকোয়েস্ট উৎসাহিত করা, টুলিং বিনিয়োগের চেয়ে বেশিরভাগই শৃঙ্খলা খরচ করে।

বিরোধী প্যাটার্ন এবং ফাঁদ

  • একটি জোড়া গুণমান গার্ডরেল ছাড়া প্রথম পর্যালোচনার সময় অপ্টিমাইজ করা: রাবার-স্ট্যাম্প অনুমোদন আমন্ত্রণ জানায় যা পর্যালোচনার উদ্দেশ্য পরাজিত করে।
  • পর্যালোচক ভার কেন্দ্রীকরণ উপেক্ষা করা: একটি বাধা ও একটি বার্নআউট ঝুঁকি উভয়ই তৈরি করে যা পরিমাপ না করা পর্যন্ত অদৃশ্য থাকে।
  • পর্যালোচনা পুনরাবৃত্তি গণনাকে একটি ব্যক্তিগত স্কোরকার্ড হিসেবে বিবেচনা করা: একটি ব্যক্তিগতের চেয়ে প্রায়ই একটি সিস্টেম বা যোগাযোগ সংকেত।
  • ক্রমাগত বড় পুল রিকোয়েস্টকে অনিবার্য হিসেবে গ্রহণ করা: বেশিরভাগ বড় পরিবর্তন দল প্রাথমিকভাবে যা ধরে নেয় তার চেয়ে আরও বিভক্ত করা যায়।
  • পরিবর্তনের ঝুঁকি নির্বিশেষে অভিন্ন পর্যালোচনা গভীরতা প্রয়োগ করা: সম্ভাব্যভাবে উচ্চ-ঝুঁকির পরিবর্তনকে কম পরীক্ষা করার সময় নিম্ন-ঝুঁকির পরিবর্তনে পরীক্ষা অপচয় করে।
  • পর্যালোচনা গতি পরিমাপ করা কিন্তু এর পাশাপাশি প্রকৃত পরীক্ষা কমেছে কিনা কখনও পরীক্ষা না করা: এই মেট্রিক পরিবার অনিচ্ছাকৃতভাবে কারচুপি হওয়ার একক সবচেয়ে সাধারণ উপায়।

পরিপক্বতা মডেল

  • স্তর ১, শুরু: পর্যালোচনা মেট্রিক ট্র্যাক করা হয় না; পর্যালোচনা ভার বিতরণ ও পুল রিকোয়েস্ট আকার অদৃশ্য।
  • স্তর ২, উন্নয়ন: প্ল্যাটফর্ম ডিফল্ট থেকে কিছু পর্যালোচনা-গতি উপাত্ত বিদ্যমান, কিন্তু কোনো গুণমান গার্ডরেল নেই এবং পর্যালোচক ভারের কোনো সক্রিয় ব্যবস্থাপনা নেই।
  • স্তর ৩, মানসম্মতকরণ: প্রথম পর্যালোচনার সময়, পুল রিকোয়েস্ট আকার, এবং পর্যালোচক ভার সামঞ্জস্যপূর্ণভাবে ট্র্যাক করা হয়, গতি উন্নতির বিরুদ্ধে জোড়া একটি স্পষ্ট গুণমান গার্ডরেলসহ।
  • স্তর ৪, ব্যবস্থাপনা: ঘূর্ণন ও জ্ঞান ভাগাভাগির মাধ্যমে পর্যালোচক ভার সক্রিয়ভাবে পুনঃভারসাম্যপূর্ণ করা হয়; পুনরাবৃত্তি-গণনা প্যাটার্ন ব্যক্তিগত স্তরের বদলে প্রক্রিয়া স্তরে তদন্ত করা হয়।
  • স্তর ৫, সমন্বয়: পর্যালোচনা-পর্যায়ের মেট্রিক সরাসরি প্রক্রিয়া বিনিয়োগ অবহিত করে, এবং প্রতিষ্ঠান একটি টেকসই সময়কাল জুড়ে পর্যালোচনা গতি ও পর্যালোচনা-সংযুক্ত গুণমান ফলাফল উভয়ের একযোগে উন্নতি প্রদর্শন করতে পারে।

আলোচনার জন্য ধারণা

১. আমাদের বর্তমান মধ্যক প্রথম পর্যালোচনার সময় কী, এবং সেই সময় প্রকৃতপক্ষে কোথায় যায়? ২. আমাদের পর্যালোচনা ভার কি একটি ছোট সংখ্যক মানুষের উপর কেন্দ্রীভূত, এবং তাদের একজন অনুপলব্ধ হলে ঝুঁকি কী? ৩. আমরা কি কখনও এমনকি অনিচ্ছাকৃতভাবেও প্রকৃত পরীক্ষার খরচে পর্যালোচনা গতি উন্নত করেছি? ৪. আমাদের মধ্যক পুল রিকোয়েস্ট আকার কী, এবং বাস্তবসম্মতভাবে বেশিরভাগ পরিবর্তন কত ছোট হতে পারত? ৫. আমরা কি একটি উচ্চ পর্যালোচনা পুনরাবৃত্তি গণনাকে একটি সিস্টেম সংকেত নাকি একটি ব্যক্তিগত রায় হিসেবে বিবেচনা করি?

মূল বিষয়সমূহ

  • প্রথম পর্যালোচনার সময় সাধারণত পর্যালোচনা পর্যায়ের মধ্যে একক বৃহত্তম লিভার, পর্যালোচনা কথোপকথনের দৈর্ঘ্য নিজেই তার চেয়ে বেশি।
  • ছোট পুল রিকোয়েস্ট একসাথে পর্যালোচনা গতি ও পর্যালোচনা পুঙ্খানুপুঙ্খতা উভয়ই উন্নত করে।
  • পর্যালোচক ভার ভারসাম্যহীনতা সাধারণ এবং সাধারণত সরাসরি পরিমাপ ছাড়া অদৃশ্য; এটি উভয়ই একটি বাধা ও একটি বার্নআউট ঝুঁকি তৈরি করে।
  • প্রতিটি পর্যালোচনা-গতি মেট্রিককে একটি স্পষ্ট গুণমান গার্ডরেলের সাথে জোড়া দিন এই মেট্রিক পরিবার বিশেষভাবে প্রবণ রাবার-স্ট্যাম্প কারচুপি ঝুঁকি ধরতে।
  • ব্যক্তিগত লেখক বা পর্যালোচকদের বিচার করতে নয়, সিস্টেম-স্তরের ঘর্ষণ নির্ণয় করতে পর্যালোচনা পুনরাবৃত্তি গণনা ব্যবহার করুন।

তথ্যসূত্র এবং অতিরিক্ত পাঠ

  • Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate: The Science of Lean Software and DevOps. IT Revolution Press, 2018.
  • Bacchelli, Alberto, and Christian Bird. “Expectations, Outcomes, and Challenges of Modern Code Review.” Proceedings of the International Conference on Software Engineering, 2013.
  • Wiegers, Karl E. Peer Reviews in Software: A Practical Guide. Addison-Wesley, 2002.
  • Reinertsen, Donald G. The Principles of Product Development Flow: Second Generation Lean Product Development. Celeritas Publishing, 2009.