কীভাবে দক্ষ থাকবেন যখন কোনও বিল্ড প্রায় সর্বদা নষ্ট হয়ে যায়


25

আমি একটি মাঝারি আকারের দলে কাজ করি যা একই উত্স কোডটি ভাগ করে এবং স্থানে একটি অবিচ্ছিন্ন ইন্টিগ্রেশন থাকে তবে আমাদের সকলকে একই শাখায় কাজ করার কারণে বিল্ডটি প্রায় সর্বদা ভাঙ্গা।

যেমনটি আমাদের একটি নিয়মও রয়েছে, যা ভাঙা বিল্ডস উপশম করতে সম্প্রতি চালু করা হয়েছিল, যা উল্লেখ করে যে বিল্ডিংয়ের সময় কাউকে চেক ইন করার অনুমতি দেওয়া হয় না।

একথা বলার পরেও, প্রত্যেকের মধ্যে প্রত্যেকের হাতে 10-15 মিনিটের উইন্ডোজ থাকে যেখানে আমরা চেক-ইন করতে দিয়েছিলাম।

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

এই জাতীয় পরিবেশে আমাকে কার্যকরভাবে কাজ করার অনুমতি দেওয়ার জন্য আপনি কী প্রস্তাব দিতে পারেন। এছাড়াও, দয়া করে মনে রাখবেন যে আমি একজন বিকাশকারী, ম্যানেজার নই এবং প্রক্রিয়া বা অন্যান্য লোকের আচরণকে খুব বেশি পরিবর্তন করতে পারি না।


8
তোমার শাখা আছে কেন?
জাভিওর

6
আপাত সমাধান হ'ল আপনার "ব্যক্তিগত" শাখা স্থাপন এবং এটিতে প্রতিশ্রুতিবদ্ধ হওয়া, তারপরে সেই শাখাটি যে টিম কাজ করে তার সাথে সংহত করে
gnat

@ জাভিয়ার একটি শাখা থাকা একটি অতিরিক্ত জটিলতা এবং এইভাবে অতিরিক্ত কাজ বোঝায় - একটি শাখা থেকে ট্রাঙ্কে মার্জ করে। এবং এটি জটিলতায়ও বৃদ্ধি পায় - কেবল আমার ট্রাঙ্ককে আপটোডেট রাখার প্রয়োজন হবে না, আমার শাখার জন্যও আমাকে একই কাজ করতে হবে।

6
@ অ্যান্ড্রু স্থানীয় মেশিনে পরিবর্তনগুলি জমা করাই প্রথম বিষয়টি থেকে মুক্তি পাওয়া যায়, তা যাই হোক না কেন। আপনার উল্লেখ করা অন্যান্য সমস্যাগুলিও বাস্তব, তবে এটি প্রথম সমাধান করা হবে
gnat

6
স্থানীয়ভাবে আপডেট না হলে তারা কীভাবে পরিবর্তনগুলিকে চাপ দিতে পারে এবং কীভাবে তারা সমস্ত টিবিএইচ ভাঙা বিল্ডিংয়ের দিকে চাপ দিচ্ছে তা আমি সত্যিই বুঝতে পারি না
অকেজো

উত্তর:


54

শুরু করার জন্য, এই মন্তব্য:

... একটি শাখা থাকা একটি অতিরিক্ত জটিলতা এবং এভাবে অতিরিক্ত কাজ বোঝায় ...

সম্পূর্ণ মিথ্যা। আমি প্রায়শই এটি তাদের শাখাগুলিতে অভ্যস্ত নয় এমন লোকদের কাছ থেকে শুনে থাকি তবে এটি এখনও ভুল।

আপনার যদি অনেক বিকাশকারী স্থানীয়ভাবে পরিবর্তনগুলি সংগ্রহ করে থাকে তবে তাদের স্থানীয় পরিবর্তনগুলি মূল সংগ্রহস্থলের একটি ডি-ফ্যাক্টো শাখা গঠন করে constitu

যখন তারা শেষ পর্যন্ত চাপ দেয়, এটি একটি ডি-ফ্যাক্টো মেশানো

আপনার শাখা এবং মার্জগুলি অন্তর্নিহিত যে বিষয়টি আপনার উদ্বেগের অতিরিক্ত জটিলতা সরিয়ে দেয় না, এটি কেবল এটি লুকিয়ে রাখে h সত্যটি হ'ল এই প্রক্রিয়াটিকে স্পষ্ট করে তোলা আপনাকে (বহুবচন = সম্পূর্ণ দল) এটি পরিচালনা করতে শিখতে পারে।


এখন, আপনি বলুন

লাল তৈরির সময় কাউকে চেক ইন করার অনুমতি নেই

তবে এক্ষেত্রে বিল্ডটি কখনই ঠিক করা যায় না, সুতরাং এটি বেশ নির্ভুল হতে পারে না।

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

আমি ধরে নিলাম এটি তেমন নয়, কারণ তারা প্রথমে ভাঙা ঘরগুলি ধাক্কা দেবে না, তবে আপনি যদি এই বিষয়টি স্পষ্ট করতে পারতেন তবে দুর্দান্ত হবে।

সাধারণভাবে উত্তর

কীভাবে দক্ষ থাকবেন যখন কোনও বিল্ড প্রায় সর্বদা নষ্ট হয়ে যায়

হল: বিল্ড ভাঙা বন্ধ করুন


23
"বিল্ড ভাঙা বন্ধ করুন" এর জন্য +9000। সিরিয়াসলি। ক্রমাগত একীকরণের পুরো, সম্পূর্ণ বিন্দুটি হ'ল বিল্ডটি ভাঙ্গা থামানো এবং, যদি ভাঙা যায়, তবে এটি দ্রুত এবং যথাসম্ভব বিরতির কাছাকাছি স্থির করুন।
প্যাট্রিক হিউজেস

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

6
ঠিক আছে, আপনি নিজের শাখায় কাজ করতে পারেন এবং সেই শাখায় আপনি কোন প্রবাহের পরিবর্তনগুলি মার্জ করবেন তা নির্বাচন করুন (যেমন, বিল্ডটি সবুজ হলেই কেবল মার্জ হবে)। তবে, এটি সত্যই দলের বাকিদের সাথে মিথস্ক্রিয়াকে হ্রাস করছে, যখন দলকে সংশোধন করা আরও ভাল হবে যাতে আপনি বুদ্ধিমানভাবে কথাবার্তা করতে পারেন।
অকেজো

14

বিকাশকারীগণ ... স্থানীয়ভাবে তাদের পরিবর্তনগুলি জমা করুন ... আপনি দুষ্টচক্রটি দেখতে পারেন।

এটা প্রকৃতপক্ষে দুষ্ট। স্থানীয়ভাবে পরিবর্তনগুলি একত্রিত করা একটি বড় লাল পতাকা যা নির্দেশ করে যে কোনও কিছু গুরুতরভাবে দেব প্রক্রিয়াতে পচা। এটি ধরণের সংস্করণ নিয়ন্ত্রণ ব্যবস্থা থাকার পুরো উদ্দেশ্যটিকে ট্র্যাশ করে ।

যতক্ষণ আপনি প্রক্রিয়া বা অন্যান্য ব্যক্তির আচরণ পরিবর্তন থেকে দূরে থাকতে চান, সর্বাধিক প্রাকৃতিক সমাধান হ'ল আপনার নিজস্ব শাখা স্থাপন করা এবং এটি আপনার পরিবর্তনগুলি "জমা" করার জন্য ব্যবহার করা (আপনি যখন পাবে তখন টিমের শাখার সাথে আরও সংহত হওয়ার জন্য) সুযোগ)।

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

  • সাইড নোট, প্রতিবার পরিচালক যখন এমন কিছু করেন বা বলেন যা আপনাকে বাধ্যবাধকতাগুলি এড়াতে বাধ্য করে, কোড স্থানীয়ভাবে রাখতে, তাদের শব্দগুলি গা bold় এবং সরল "আমি অক্ষম" তে অনুবাদ করুন

দয়া করে মনে রাখবেন যে আমি একজন বিকাশকারী, ম্যানেজার নই এবং প্রক্রিয়া বা অন্যান্য লোকের আচরণকে খুব বেশি পরিবর্তন করতে পারি না ...

যথার্থতার জন্য, আপনি এটি করতে পারেন , এগুলি প্রভাব এবং যোগাযোগের দক্ষতা সম্পর্কিত বিষয় এবং জিনিসগুলিকে তাদের পছন্দমতো পরিবর্তন করার জন্য সত্যিকারের শক্তির অবস্থানের প্রয়োজন নেই ( যদি আপনি "ম্যানেজ আপ" এর মতো কোনও কিছুর জন্য ওয়েব অনুসন্ধান করেন তবে আপনি 'আরও বিশদে আগ্রহী)।

তবে এটি বরং জটিল এবং প্রচেষ্টা ব্যয়কারী এবং আমি যদি পুরোপুরি বুঝতে পারি যে কোনও ব্যক্তি রাজনীতিতে সামান্য জড়িত হয়ে কোডিংয়ে মনোনিবেশ করা পছন্দ করেন - তাই আপনি যদি না চান (তাত্ত্বিকভাবে আপনি পারেন তবে ) এটি বোধগম্য। :)


7

আপনি পরিবেশ পরিবর্তন করতে আপনার শক্তিহীন বোধ করেন সেই ধারণার প্রতি আমি সংবেদনশীল তবে আমি মনে করি যে এই পরিস্থিতি একজন প্রোগ্রামার হিসাবে আপনার পেশাদারিত্বের জন্য একটি গুরুতর চ্যালেঞ্জ।

কোনও সার্জন যদি ক্লিনদের সাথে ময়লা মাথার ত্বক রাখে তবে কী হবে? যদি কোনও প্লাম্বার তার ইনস্টল করা পাইপ পরীক্ষা না করে তবে কী হবে? যদি কোনও বেহালাবাদক সর্বদা অর্কেস্ট্রাটির সাথে সুর বেঁধে না থাকে তবে কী হবে?

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

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


5

আমি মনে করি যে যতক্ষণ আপনি মনে করেন যে আপনি "কেবলমাত্র একজন বিকাশকারী" এবং অতএব আপনি এই সমস্যাটিতে ভুগতে চলেছেন এমন জিনিসগুলি আপনি পরিবর্তন করতে পারবেন না।

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

প্রক্রিয়াটি আরও ভালভাবে বদলানোর জন্য আপনার যা যা করা দরকার তা বলার অপেক্ষা রাখে না এবং অনুমতি চাইতে বলার পরিবর্তে পরে দুঃখিত বলে জানান।

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


-2 এবং কেউ কেন শেয়ার করতে চায় না .. হেই হি।
হেকু

1
কিছু ডিম না ভেঙে আপনি অমলেট তৈরি করতে পারবেন না।
উইলিয়াম পায়েেন

2

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

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


1

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


3
তবে এই কাজটি অসম্ভব করে তোলার জন্য "... মনে রাখবেন যে আমি একজন বিকাশকারী, পরিচালক নই এবং প্রক্রিয়াটি পরিবর্তন করতে পারি না ..."
SChepurin

@ এসছুপুরিয়র আপনার প্রক্রিয়াটি অদক্ষ, আপনি প্রক্রিয়া, সময়কাল পরিবর্তন করতে চেয়েছিলেন। বিকাশকারী হিসাবে আপনি এই পরিবর্তনটি অনুমোদন করতে পারবেন না তবে আপনি সর্বদা প্রক্রিয়া উন্নতির দিকে কাজ করতে পারেন।
oefe

1

আরও দুটি জিনিস এখানে সহায়তা করতে পারে:

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

তবে আপনার সত্যই শাখাগুলির দিকে নজর দেওয়া উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.