paint-brush
এভিয়েটর থেকে নতুন: দ্য ক্যালকুলেটর অ্যাসেসিং ইঞ্জিনিয়ারিং দক্ষতাদ্বারা@aviator
1,796 পড়া
1,796 পড়া

এভিয়েটর থেকে নতুন: দ্য ক্যালকুলেটর অ্যাসেসিং ইঞ্জিনিয়ারিং দক্ষতা

দ্বারা Aviator4m2023/11/22
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

ক্যালকুলেটরটি বিকাশকারী কর্মপ্রবাহে বিল্ড এবং পরীক্ষা ব্যর্থতার কারণে আপনি এবং আপনার দল কতটা সময় হারান তার উপর ফোকাস করে। এটি গণনা করে যে একটি মেইনলাইন বিল্ড ব্যর্থতা শনাক্ত করা হলে সনাক্ত করতে, ট্রিয়েজ করতে, ঠিক করতে এবং আবার বিল্ড পাস করতে কত ঘণ্টা নষ্ট হয়। ক্যালকুলেটরটি আপনার GitHub ক্রিয়াকলাপ এবং আপনি কীভাবে GitHub শাখাগুলি ব্যবহার করেন তার উপর ভিত্তি করে।
featured image - এভিয়েটর থেকে নতুন: দ্য ক্যালকুলেটর অ্যাসেসিং ইঞ্জিনিয়ারিং দক্ষতা
Aviator HackerNoon profile picture
0-item


ইঞ্জিনিয়ারিং উৎপাদনশীলতা পরিমাপ করা একটি জটিল প্রক্রিয়া — বিকাশকারীরা কীভাবে তাদের সময় ব্যয় করে তার সম্পূর্ণ চিত্র পাওয়া কঠিন। উত্পাদনশীলতা পরিমাপ করার একটি সাধারণ উপায় হল DORA বা SPACE এর মতো সিস্টেম মেট্রিক্স বিশ্লেষণ করা। শিল্পের মানগুলির তুলনায় দলের উত্পাদনশীলতা বোঝার জন্য এগুলি অত্যন্ত দরকারী মেট্রিক হতে পারে। এই মেট্রিক্সের প্রতিটিতে ডুব দেওয়া দলটিকে কী ধীর করছে তার অন্তর্দৃষ্টি প্রদান করতে পারে।


কিন্তু কখনও কখনও, "লুকানো পকেট" সময়ও থাকে যা বিকাশকারীরা তাদের সারা দিন ব্যয় করে যা উত্পাদনশীলতাকে প্রভাবিত করে বলে মনে করা যায় না। যাইহোক, যখন আমরা সেই জিনিসগুলি যোগ করতে শুরু করি, সংখ্যাগুলি উদ্বেগজনক হতে পারে।


উদাহরণ স্বরূপ, একজন ডেভেলপার তাদের পরিবর্তনের কারণে ব্যর্থ হয়েছে কিনা তা বের করার চেষ্টা করে একটি ফ্ল্যাকি টেস্ট ডিবাগ করতে কত সময় ব্যয় করে তা বিবেচনা করুন। অথবা মেইনলাইন বিল্ড ব্যর্থতা সমাধানের চেষ্টা করছেন এমন একজন বিকাশকারীর দ্বারা ব্যয় করা সময়।


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


ক্যালকুলেটরটি বিকাশকারী কর্মপ্রবাহে বিল্ড এবং পরীক্ষা ব্যর্থতার কারণে আপনি এবং আপনার দল কতটা সময় হারান তার উপর ফোকাস করে।


আপনি যদি এটিকে DORA মেট্রিক্সের সাথে তুলনা করেন, তবে পরিবর্তনের প্রধান সময়টি বিল্ড এবং পরীক্ষা অস্থিরতার দ্বারা উল্লেখযোগ্যভাবে প্রভাবিত হয়। এই ক্যালকুলেটর ব্যবহার করে সেই প্রভাব মূল্যায়ন করা যেতে পারে।

কিভাবে এটা কাজ করে

আমরা আপনাকে আপনার GitHub ক্রিয়াকলাপ এবং আপনি কীভাবে GitHub শাখাগুলি ব্যবহার করেন তার উপর ভিত্তি করে ডেটা ইনপুট করতে বলি। নীচের প্রকৃত গণনাগুলি ব্যাখ্যা করতে, আসুন তাদের প্রতিটিতে ভেরিয়েবল বরাদ্দ করি:

M – PRs প্রতিদিন একত্রিত হয়

X - এক সপ্তাহে প্রধান লাইন ব্যর্থতা

টি - গড় CI সময়

F - ফ্লাকনেস ফ্যাক্টর %

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

ঠিক করতে ঘন্টা নষ্ট

এটি গণনা করে যে একটি মেইনলাইন বিল্ড ব্যর্থতা শনাক্ত করা হলে সনাক্ত করতে, ট্রিয়েজ করতে, ঠিক করতে এবং আবার বিল্ড পাস পেতে কত ঘন্টা নষ্ট হয়। সাধারণত, একটি বড় দলে, কেউ ভাঙ্গা মেইনলাইন বিল্ড লক্ষ্য করবে এবং রিপোর্ট করবে।


আমরা ধরে নিই যে একটি মেইনলাইন বিল্ড ব্যর্থতার জন্য ডিবাগ এবং ঠিক করতে গড়ে 1-3 জন ডেভেলপার জড়িত। যদি আমরা সমস্যাটি রিপোর্ট করতে এবং একটি সমাধান করতে যে সময় লাগে তার জন্য গড়ে এক ঘন্টা বিবেচনা করি, তাহলে আমরা ট্র্যাক করতে, তদন্ত করতে এবং সমস্যার সমাধান করতে (2*T + 1) ঘন্টা ব্যয় করছি।


তার মানে যদি সপ্তাহে X ব্যর্থতা থাকে, আমরা প্রতিদিন মেইনলাইন বিল্ড ব্যর্থতার সাথে লড়াই করার জন্য ডেভেলপার সময়ের মধ্যে (( 2 devs * X/5 * (2*T + 1))) ঘন্টা ব্যয় করছি।

একীভূত দ্বন্দ্ব সমাধানে ঘন্টা নষ্ট হয়েছে

রোলব্যাক এবং মার্জ দ্বন্দ্ব আরও সমস্যার কারণ হতে পারে। অনুমান করা যায় যে প্রায় 2% পিআর আছে যেগুলি ভাঙা বিল্ড টাইমের উইন্ডোতে মার্জ দ্বন্দ্ব রয়েছে (2*T + 1) * X/5) , এবং M/8 PR প্রতি ঘন্টায় আসছে, আমরা ব্যয় করব ((2* T + 1) * X/5) * 0.02 * M/8 এই বিরোধগুলি সমাধান করার জন্য নষ্ট হয়ে গেছে।

ভাঙা বিল্ডের কারণে সাপ্তাহিক CI ব্যর্থতা

যদি দলটি তাদের বৈশিষ্ট্য শাখার উপর ভিত্তি করে একটি সোনালী শাখা ব্যবহার না করে, তাহলে তারা সম্ভবত একটি ব্যর্থ প্রধান লাইন শাখার উপরে বৈশিষ্ট্য শাখা তৈরি করবে। যেহেতু যেকোন সময় তৈরি হওয়া পিআর-এর সংখ্যা মেইনলাইনের বাইরে থাকা ফিচার শাখার গড় সংখ্যার সমান হবে, তাই এর ফলে (2*T + 1 ঘন্টা) * X/5 * M/8 সংখ্যক CI ব্যর্থতা প্রতিদিন ঘটবে। .

সিআই সমাধান করার সময়

প্রায় পনের মিনিটের প্রেক্ষাপটে প্রতিটি বিল্ড ব্যর্থতার সাথে হ্যান্ডেলটি পরিবর্তন করে, এটি (2*T + 1 ঘন্টা) * X/5 * M/8 * 0.25 ঘন্টা বিকাশকারীর সময় প্রতিদিন CI ব্যর্থতার সাথে নষ্ট হয়।

ফ্ল্যাকি পরীক্ষা পুনরায় চালানোর সময় ব্যয় করা হয়েছে।

একইভাবে, ফ্ল্যাকি টেস্টের সাথে, পরীক্ষাটি ফ্লেকি বা বাস্তব কিনা তা তদন্ত করার জন্য প্রেক্ষাপট পরিবর্তনের সময় প্রয়োজন এবং পরীক্ষাগুলি পুনরায় চালানোর জন্য প্রতি রানে গড়ে পনের মিনিট সময় লাগে। ফ্লাকনেস ফ্যাক্টরের উপর নির্ভর করে, ডেভেলপাররা প্রতিদিন (0.25 * M * F / 100) ঘন্টা নষ্ট করবে।

দক্ষতা উন্নত করা

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


আমরা বড় ইঞ্জিনিয়ারিং দলের জন্য এই লুকানো চ্যালেঞ্জগুলির কিছু সমাধান করার জন্য Aviator তৈরি করেছি। আজ, Aviator MergeQueue ব্যবহার করে, অনেক ইঞ্জিনিয়ারিং প্রতিষ্ঠান বিল্ড না ভেঙে তাদের মার্জ ওয়ার্কফ্লো স্কেল করতে পারে। TestDeck- এর মতো ফ্ল্যাকি টেস্ট সাপ্রেশন সিস্টেমের সাথে একত্রিত করে, দলগুলি প্রতি সপ্তাহে শত শত ইঞ্জিনিয়ারিং ঘন্টা বাঁচাতে পারে।


এছাড়াও এখানে প্রকাশিত.