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