এই দীর্ঘ পোস্ট সম্পর্কে দুঃখিত, তবে আমি মনে করি এটি মূল্যবান।
আমি সম্প্রতি একটি ছোট নেট নেট দিয়ে শুরু করেছি যা আমার কাজ করা অন্য জায়গাগুলিতে বেশ কিছুটা ভিন্নভাবে পরিচালিত হয়। আমার আগের অবস্থানগুলির মতো নয়, এখানে লিখিত সফ্টওয়্যারটি একাধিক গ্রাহককে লক্ষ্য করে তৈরি করা হয় এবং প্রতিটি গ্রাহক একই সাথে সফ্টওয়্যারটির সর্বশেষতম প্রকাশ পায় না। এর মতো, কোনও "বর্তমান উত্পাদনের সংস্করণ" নেই। যখন কোনও গ্রাহক আপডেট পান, তারা তাদের শেষ আপডেটের পরে সফ্টওয়্যারটিতে যুক্ত সমস্ত বৈশিষ্ট্যও পান যা এটি অনেক দিন আগে হতে পারে। সফ্টওয়্যারটি অত্যন্ত কনফিগারযোগ্য এবং বৈশিষ্ট্যগুলি চালু এবং বন্ধ করা যায়: তথাকথিত "বৈশিষ্ট্য টগলস" called রিলিজ চক্রগুলি এখানে খুব আঁটসাঁট, বাস্তবে তারা কোনও সময়সূচীতে থাকে না: কোনও বৈশিষ্ট্য শেষ হয়ে গেলে সফ্টওয়্যারটি প্রাসঙ্গিক গ্রাহকের কাছে স্থাপন করা হয়।
দলটি গত বছর ভিজ্যুয়াল সোর্স সেফ থেকে টিম ফাউন্ডেশন সার্ভারে চলে গেছে। সমস্যাটি তারা এখনও টিএফএস ব্যবহার করে যেন এটি ভিএসএস এবং একটি একক কোড শাখায় চেকআউট লক প্রয়োগ করে enforce যখনই কোনও বাগ ফিক্সটি ক্ষেত্রের মধ্যে ফেলে দেওয়া হয় (এমনকি একটি একক গ্রাহকের জন্যও) তারা কেবল টিএফএসে যা আছে তা তৈরি করে, বাগটি স্থির করে পরীক্ষা করে গ্রাহকের কাছে মোতায়েন করা হয়! (নিজেই একটি ফার্মা এবং মেডিকেল ডিভাইস সফ্টওয়্যার পটভূমি থেকে আসা এটি অবিশ্বাস্য!)। ফলস্বরূপ যে অর্ধ বেকড ডেভ কোড এমনকি পরীক্ষিত না করে উত্পাদনে ফেলে দেওয়া হয়। বাগগুলি সর্বদা মুক্তির বিল্ডগুলিতে চলে যায়, তবে প্রায়শই গ্রাহক যিনি কেবল একটি বিল্ড পেয়েছিলেন তারা বাগটি থাকা বৈশিষ্ট্যটি ব্যবহার না করে তবে এই বাগগুলি দেখতে পাবেন না knows পরিচালক জানেন যে এটি একটি সমস্যা কারণ সংস্থাটি সমস্ত বৃদ্ধি শুরু করছে director হঠাৎ করে কিছু বড় ক্লায়েন্ট বোর্ডে আসার সাথে আরও আরও ছোট লোকেরা।
বগি বা অসম্পূর্ণ কোড মোতায়েনের বিষয়টি বাদ দেওয়ার জন্য, তবে দলগুলির রিলিজের কিছুটা অ্যাসিনক্রোনাস প্রকৃতির ত্যাগ না করার জন্য আমাকে উত্স নিয়ন্ত্রণ বিকল্পগুলি দেখতে বলা হয়েছে। আমি আমার ক্যারিয়ারে ভিএসএস, টিএফএস, এসভিএন এবং বাজার ব্যবহার করেছি তবে টিএফএস যেখানে আমার বেশিরভাগ অভিজ্ঞতা হয়েছে।
পূর্বে বেশিরভাগ টিম আমি দেব-টেস্ট-প্রোডের দুটি বা তিনটি শাখা সমাধান ব্যবহার করে কাজ করেছি, যেখানে এক মাস ধরে ডেভলপাররা সরাসরি দেবে কাজ করে এবং তারপরে পরিবর্তনগুলি পরীক্ষার পরে প্রোডে মিশ্রিত করা হয়, বা "এটি হয়ে গেলে" প্রচার করা হয় একটি নির্দিষ্ট চক্র। ক্রুজ কন্ট্রোল বা টিম বিল্ড ব্যবহার করে অটোমেটেড বিল্ডগুলি ব্যবহার করা হয়েছিল। আমার আগের চাকরীতে বাজার এসভিএন এর শীর্ষে বসে ব্যবহার করা হত: ডেভস তাদের নিজস্ব বৈশিষ্ট্যযুক্ত শাখায় কাজ করেছিল তারপরে তাদের পরিবর্তনগুলিকে এসভিএন (যা টিমসিটিতে বাঁধা ছিল) তে ঠেলে দেয়। এটি দুর্দান্ত ছিল যে পরিবর্তনগুলি বিচ্ছিন্ন করা এবং এটিকে অন্যান্য লোকের শাখায় ভাগ করে নেওয়া সহজ ছিল।
এই উভয় মডেলের সাথেই একটি কেন্দ্রীয় দেব এবং প্রোড (এবং কখনও কখনও পরীক্ষা) শাখা ছিল যার মাধ্যমে কোডটি পুশ করা হত (এবং লেবেলগুলি বিল্ডগুলিকে প্রোডে বিল্ডগুলি চিহ্নিত করতে ব্যবহৃত হত যা থেকে রিলিজ করা হত ... এবং এগুলি বাগ ফিক্সগুলির জন্য শাখাগুলিতে তৈরি করা হয়েছিল) রিলিজ করতে এবং দেবের সাথে একীভূত হয়ে)। এটি এখানে কাজ করার পদ্ধতিটির সাথে সত্যিই উপযুক্ত নয়, তবে: বিভিন্ন বৈশিষ্ট্য কখন প্রকাশিত হবে সে সম্পর্কে কোনও আদেশ নেই, তারা সম্পূর্ণ হয়ে গেলে ধাক্কা খায়।
এই প্রয়োজনীয়তার সাথে "ক্রমাগত সংহতকরণ" পদ্ধতির সাথে দেখি এটি ভেঙে যাচ্ছে। অবিচ্ছিন্ন একীকরণের সাথে একটি নতুন বৈশিষ্ট্য বের করার জন্য এটি ডেভ-টেস্ট-প্রোডের মাধ্যমে ঠেলে দিতে হবে এবং এটি দেবের কোনও অসম্পূর্ণ কাজ ক্যাপচার করবে।
আমি ভাবছি যে এটিকে কাটিয়ে উঠতে আমাদের কোনও ডিভ-টেস্ট-প্রোড শাখাগুলি সহ একটি বিশাল বৈশিষ্ট্যযুক্ত ব্রাঞ্চযুক্ত মডেলটি নামানো উচিত, বরং উত্সটি বৈশিষ্ট্য শাখার একটি সিরিজ হিসাবে উপস্থিত থাকতে হবে যা বিকাশকাজ শেষ হলে লক, পরীক্ষা, স্থির, লক করা হয় , পরীক্ষা এবং তারপর মুক্তি দেওয়া হয়। অন্যান্য বৈশিষ্ট্য শাখাগুলি যখন প্রয়োজন / চান তখন অন্যান্য শাখাগুলি থেকে পরিবর্তনগুলি দখল করতে পারে, সুতরাং শেষ পর্যন্ত সমস্ত পরিবর্তনগুলি প্রত্যেকের এলেসে অন্তর্ভুক্ত হয়ে যায়। এটি আমার শেষ কাজটিতে যা অভিজ্ঞতা হয়েছে তার থেকে খাঁটি বাজারের মডেলের চেয়ে অনেক বেশি ফিট করে।
এটি যতটা নমনীয় বলে মনে হচ্ছে কোথাও কোথাও কোনও দেব ট্রাঙ্ক বা প্রোড শাখা না থাকাটাই অদ্ভুত বলে মনে হয় এবং আমি শাখাগুলি কখনও পুনরায় সংহত না করার জন্য কাঁটাচামচা নিয়ে উদ্বিগ্ন, অথবা ছোট দেরী পরিবর্তনগুলি হয়েছিল যা অন্য শাখাগুলি এবং বিকাশকারীদের সম্পর্কে অভিযোগ করে না to বিপর্যয় একীভূত ...
এ সম্পর্কে মানুষের চিন্তাভাবনা কী?
দ্বিতীয় চূড়ান্ত প্রশ্ন: বিতরণ করা উত্স নিয়ন্ত্রণের সঠিক সংজ্ঞা সম্পর্কে আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি: কিছু লোক মনে করছেন এটি টিএফএস বা এসভিএন এর মতো কেন্দ্রীয় সংগ্রহস্থল না রাখার বিষয়ে, কেউ কেউ বলছেন যে এটি সংযোগ বিচ্ছিন্ন হওয়ার বিষয়ে (এসভিএন 90% সংযোগ বিচ্ছিন্ন হয়েছে) এবং টিএফএসের একটি পুরোপুরি কার্যকরী অফলাইন মোড রয়েছে) এবং অন্যরা বলে যে এটি ফিচার ব্রাঞ্চিং এবং কোনও পিতামাতার-সন্তানের সম্পর্কের সাথে শাখাগুলির মধ্যে মার্জ করার সহজতা (টিএফএসেরও ভিত্তিহীন মার্জিং রয়েছে!)। সম্ভবত এটি দ্বিতীয় প্রশ্ন!