এক্সট্রিম প্রোগ্রামিং বনাম SCRUM | XP বনাম SCRUM
বছর ধরে সফ্টওয়্যার শিল্পে ব্যবহৃত বিভিন্ন সফ্টওয়্যার বিকাশের পদ্ধতি রয়েছে, যেমন জলপ্রপাত উন্নয়ন পদ্ধতি, ভি-মডেল, আরইউপি এবং কয়েকটি অন্যান্য রৈখিক, পুনরাবৃত্তিমূলক এবং সম্মিলিত রৈখিক-পুনরাবৃত্তি পদ্ধতি। চতুর মডেল (অথবা আরও সঠিকভাবে, পদ্ধতিগুলির একটি গ্রুপ) হল একটি সাম্প্রতিক সফ্টওয়্যার উন্নয়ন মডেল যা সেই ঐতিহ্যবাহী সফ্টওয়্যার বিকাশের পদ্ধতিগুলির মধ্যে পাওয়া ত্রুটিগুলি সমাধান করার জন্য Agile ম্যানিফেস্টো দ্বারা প্রবর্তিত হয়েছে৷
চতুর পদ্ধতিগুলি পুনরাবৃত্তিমূলক বিকাশের উপর ভিত্তি করে এবং প্রধান নিয়ন্ত্রণ ব্যবস্থা হিসাবে ব্যবহারকারীদের কাছ থেকে প্রতিক্রিয়া ব্যবহার করে।সনাতন পদ্ধতির চেয়ে চটপটকে একটি জনকেন্দ্রিক পদ্ধতি বলা যেতে পারে। চটপটে মডেলটি খুব তাড়াতাড়ি পণ্যটির একটি কার্যকরী সংস্করণ সরবরাহ করে যা সিস্টেমটিকে খুব ছোট এবং পরিচালনাযোগ্য উপ অংশে বিভক্ত করে, যাতে গ্রাহক প্রথম দিকে কিছু সুবিধা উপলব্ধি করতে পারেন। Agile-এর টেস্টিং সাইকেল সময় ঐতিহ্যগত পদ্ধতির তুলনায় তুলনামূলকভাবে কম, কারণ পরীক্ষা উন্নয়নের সমান্তরালভাবে করা হয়। এই সমস্ত সুবিধার কারণে, এই মুহুর্তে চিরাচরিত পদ্ধতির চেয়ে চটপটে পদ্ধতিগুলিকে অগ্রাধিকার দেওয়া হয়। স্ক্রাম এবং এক্সট্রিম প্রোগ্রামিং হল অ্যাজিল পদ্ধতির সবচেয়ে জনপ্রিয় দুটি ভিন্নতা।
স্ক্রাম কি?
উপরে উল্লিখিত হিসাবে, SCRUM হল একটি ক্রমবর্ধমান এবং পুনরাবৃত্ত প্রজেক্ট ম্যানেজমেন্ট প্রক্রিয়া, যা চতুর পদ্ধতির পরিবারের অন্তর্গত। SCRUM উন্নয়ন চক্রের প্রথম দিকে গ্রাহকের অংশগ্রহণকে উচ্চ অগ্রাধিকার দেওয়ার উপর ভিত্তি করে। এটি গ্রাহকের দ্বারা যত তাড়াতাড়ি সম্ভব এবং প্রায়শই পরীক্ষা করার পরামর্শ দেয়। একটি স্থিতিশীল সংস্করণ উপলব্ধ হলে প্রতিটি পয়েন্টে পরীক্ষা করা হয়।SCRUM-এর ভিত্তি প্রকল্পের শুরু থেকে পরীক্ষা শুরু করা এবং প্রকল্পের শেষ পর্যন্ত চালিয়ে যাওয়ার উপর ভিত্তি করে।
SCRUM-এর মূল মান হল "গুণমান হল দলের দায়িত্ব", যা জোর দেয় যে সফ্টওয়্যারের গুণমান পুরো দলের (শুধু টেস্টিং দলের নয়) দায়িত্ব৷ SCRUM-এর আরেকটি গুরুত্বপূর্ণ দিক হল সফ্টওয়্যারটিকে ছোট ছোট পরিচালনাযোগ্য অংশে বিভক্ত করা এবং খুব দ্রুত গ্রাহকের কাছে পৌঁছে দেওয়া। একটি কার্যকরী পণ্য সরবরাহ করা অত্যন্ত গুরুত্বপূর্ণ। তারপরে দলটি সফ্টওয়্যার উন্নত করতে এবং প্রতিটি বড় পদক্ষেপে ক্রমাগত বিতরণ করতে থাকে। খুব সংক্ষিপ্ত রিলিজ চক্র (যাকে স্প্রিন্ট বলা হয়) এবং প্রতিটি চক্রের শেষে উন্নতির জন্য প্রতিক্রিয়া পাওয়ার মাধ্যমে এটি অর্জন করা হয়।
SCRUM একটি ডেভেলপমেন্ট টিমের মসৃণ ক্রিয়াকলাপের জন্য কয়েকটি মূল ভূমিকা সংজ্ঞায়িত করে। তারা হলেন পণ্যের মালিক (যিনি গ্রাহকের প্রতিনিধিত্ব করেন এবং পণ্যের ব্যাকলগ বজায় রাখেন), স্ক্রাম মাস্টার (যিনি স্ক্রাম মিটিং পরিচালনা করে, স্প্রিন্ট ব্যাকলগ বজায় রেখে এবং চার্ট বার্ন ডাউন করে দলের সংগঠক এবং সমন্বয়কারী হিসাবে কাজ করেন) এবং অন্যান্য দলের সদস্য।একটি দল ঐতিহ্যগত ভূমিকা নিয়ে গঠিত হতে পারে, কিন্তু বেশিরভাগই তারা স্ব-পরিচালনাকারী দল। প্রধান স্ক্রাম আর্টিফ্যাক্টগুলি হল পণ্য ব্যাকলগ/রিলিজ ব্যাকলগ (ইচ্ছা তালিকা), স্প্রিন্ট ব্যাকলগ/ডিফেক্ট ব্যাকলগ (প্রতিটি পুনরাবৃত্তিতে কাজ), বার্ন ডাউন চার্ট (বাকি কাজ বনাম তারিখ)। প্রধান SCRUM অনুষ্ঠান হল প্রোডাক্ট ব্যাকলগ মিটিং, স্প্রিন্ট মিটিং এবং রেট্রোস্পেক্ট মিটিং।
এক্সট্রিম প্রোগ্রামিং কি?
এক্সট্রিম প্রোগ্রামিং (সংক্ষেপে XP) হল একটি সফটওয়্যার ডেভেলপমেন্ট পদ্ধতি যা চতুর মডেলের অন্তর্গত। চরম প্রোগ্রামিং খুব ছোট ক্রমাগত ধাপে পর্যায়গুলি বহন করে (প্রথাগত পদ্ধতির তুলনায়)। প্রথম পাস, যা মাত্র এক দিন বা এক সপ্তাহ লাগে, ইচ্ছাকৃতভাবে অসম্পূর্ণ। সফ্টওয়্যারটি বিকাশের জন্য সুনির্দিষ্ট লক্ষ্য প্রদানের জন্য, স্বয়ংক্রিয় পরীক্ষাগুলি শুরুতে লেখা হয়। তারপর ডেভেলপাররা কোডিং করে। ফোকাস জোড়া হিসাবে প্রোগ্রামিং করা হয়. একবার সমস্ত পরীক্ষা পাস হয়ে গেলে, কোডিং সম্পূর্ণ বলে বিবেচিত হয়। পরবর্তী ধাপটি হল ডিজাইন এবং আর্কিটেকচার, যা একই সেট প্রোগ্রামারদের দ্বারা কোড রিফ্যাক্টরিং নিয়ে কাজ করে।এই পর্যায়ের শেষে, অসম্পূর্ণ (কিন্তু কার্যকরী) পণ্য স্টেকহোল্ডারদের কাছে উপস্থাপন করা হয়। এর ঠিক পরে, পরবর্তী পর্যায় (যা সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলির পরবর্তী সেটে ফোকাস করে) শুরু হয়৷
Extreme Programming এবং SCRUM এর মধ্যে পার্থক্য কি?
এক্সট্রিম প্রোগ্রামিং এবং SCRUM বোধগম্যভাবে খুব মিল এবং সারিবদ্ধ পদ্ধতি। যাইহোক, এই দুটি পদ্ধতির মধ্যে সূক্ষ্ম কিন্তু গুরুত্বপূর্ণ পার্থক্য রয়েছে। SCRUM স্প্রিন্ট 2-4 সপ্তাহ স্থায়ী হয়, যখন সাধারণ XP পুনরাবৃত্তিগুলি ছোট হয় (শেষ 1-2 সপ্তাহ)। সাধারণত, SCRUM দলগুলি স্প্রিন্টে পরিবর্তনের অনুমতি দেয় না, তবে XP দলগুলি পুনরাবৃত্তির মধ্যে পরিবর্তনের জন্য একটু বেশি নমনীয়। উদাহরণস্বরূপ, স্প্রিন্ট পরিকল্পনার পরে, সেই স্প্রিন্টের আইটেমগুলির সেট অপরিবর্তিত থাকে, তবে যে বৈশিষ্ট্যটি কাজ করা শুরু করেনি তা যেকোন সময় XP-তে অন্য কোনও বৈশিষ্ট্যের সাথে অদলবদল করা যেতে পারে। XP এবং SCRUM-এর মধ্যে আরেকটি পার্থক্য হল, XP-এ বিকাশিত বৈশিষ্ট্যগুলির ক্রম হল গ্রাহকের দ্বারা কঠোরভাবে অগ্রাধিকার দেওয়া হয়, যখন SCRUM টিম আইটেমগুলির ক্রম নির্ধারণ করে (SCRUM-এর পণ্য মালিকের দ্বারা পণ্যের ব্যাকলগকে অগ্রাধিকার দেওয়ার পরে)।
XP এর বিপরীতে, SCRUM কোনো ইঞ্জিনিয়ারিং অনুশীলন করে না। উদাহরণস্বরূপ, এক্সপি পরীক্ষা-চালিত উন্নয়ন (টিডিডি), পেয়ার প্রোগ্রামিং, রিফ্যাক্টরিং ইত্যাদির মতো অনুশীলন দ্বারা চালিত হয়। তবে, কেউ কেউ বিশ্বাস করেন যে স্ব-সংগঠিত দলের উপর অনুশীলনের একটি সেট বাধ্যতামূলক করা একটি নেতিবাচক প্রভাব ফেলতে পারে, এবং এটি বিবেচনা করা যেতে পারে। এক্সপির একটি ঘাটতি। এক্সট্রিম প্রোগ্রামিংয়ের আরেকটি ঘাটতি হল যে অনভিজ্ঞ দলগুলি কোনও স্বয়ংক্রিয় পরীক্ষা বা TDD (বা কেবল হ্যাকিং) ছাড়াই রিফ্যাক্টর করতে পারে। অতএব, কেউ কেউ পরামর্শ দেন যে SCRUM তাকানোর জন্য আরও ভাল (যেহেতু এটি কেবল ফোকাসড টাইমবক্সড পুনরাবৃত্তির মাধ্যমে বড় উন্নতি নিয়ে আসে) এবং XP সামান্য পরিপক্ক দলগুলির জন্য উপযুক্ত যারা উপরে উল্লিখিত অনুশীলনের মূল্য আবিষ্কার করেছে (সেগুলি ব্যবহার না করে কারণ তাদের জিজ্ঞাসা করা হয়েছে) তা করতে)।