Waterfall model vs Evolutionary model in Software Engineering with a real life example

[This is not a software engineering post]
সাধারণত কাস্টমারের চাহিদা অনুযায়ী সফটওয়্যার কোম্পানী গুলো বিভিন্ন সফটওয়্যার বানিয়ে থাকে। তবে সফটওয়্যারটি কতদিনে বানানো হবে, এর ব্যবহার (এপ্লিকেশন) কতগুলো,  দাম কি রকম হবে  - এইসব বিষয় চিন্তা করে সফটওয়্যার ইঞ্জিনিয়াররা তাদের প্ল্যানিং করে। এই ধরণের প্ল্যানিং গুলোকে বিভিন্ন মডেল নাম দেওয়া হয়। সেই রকম দুইটি মডেল হচ্ছে Waterfall model এবং Evolutionary model । আমরা প্রথমে মডেল দুটি সর্ম্পকে জানব, আর তারপর আমাদের জীবনের মজার একটা প্ল্যানিং এর  সাথে এই দুটি মডেলের তুলনা করব।


Waterfall model: কিছু কিছু সফটওয়্যার এর রিক্যয়ারমেন্ট (কাস্টমারের চাহিদা/ এপ্লিকেশন) অনেক থাকে, কিন্তু কাস্টমারের সফটওয়্যারটি নেওয়ার জন্য কোন তাড়াহুড়া থাকেনা। তারমনে ডেডলাইন অনেক বড় থাকে। এই ধরণের সফটওয়্যার বানানোর মডেল গুলোকে Waterfall model বলে, যেখানে ইঞ্জিনিয়াররা খুব সময় নিয়ে নিখুতভাবে প্রোডাক্ট/ সফটওয়্যারটি বানিয়ে থাকে। সাধারণত ইনডাস্ট্রি বা বিগ সফটওয়্যার এবং সায়েন্টফিক সফটওয়্যার গুলো এই মডেল অনুসরণ করে বানানো হয়।


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

বাস্তব উদাহরণঃ
বর্তমানে আমাদের দেশে দুই ধরনের বিবাহের প্রচলন আছে, ১. আরেঞ্জ ম্যারেজ আর ২. লাভ ম্যারেজ। 

আরেঞ্জ ম্যারেজ (Arrange marriage): এই ক্ষেত্রে পাত্র পাত্রীর অনেক রিক্যয়ারমেন্ট থাকে। যেমনঃ শিক্ষা, বয়স, সামাজিক অবস্থা, চাকরি, ......। কিন্তু সুপাত্র বা সুপাত্রীকে পাওয়ার জন্য তারা অনেক সময় পর্যন্ত অপেক্ষা করতে রাজি থাকে। এই ম্যারেজ সিস্টেমকে আমারা Waterfall model এর সাথে তুলনা করতে পারি, যেখানে সময় ও রিক্যয়ারমেন্ট দুটিই বেশী থাকে। কিন্তু একবার ফাইনাল প্রোডাক্ট হয়ে গেলে পরে তার আর পরিবর্তন হয় না।  আরেঞ্জ ম্যারেজ এর ক্ষেত্রে ঠিক এমনটাই হয়। একবার বিয়ে হয়ে গেলে পড়ে আর কিছু চেঞ্জ করা যায় না।


লাভ ম্যারেজ (Love marriage): এই পদ্ধতির শুরুর দিকে পাত্র পাত্রীর (কথাটা আসলে প্রেমিক-প্রেমিকা হবে) তেমন কোন রিক্যয়ারমেন্ট-ই থাকে না। ভাল লাগা থেকে ভালবাসা, আর তারপরই রিলেশনশিপ। কিন্তু কিছুদিন যেতে না যেতেই, তারা তাদের মাঝে কিছু ভুল বা মিস-আন্ডারস্ট্যান্ডিং খুঁজে পায়। ফলে ব্রেক-আপ হয়ে যায়। তারপর তারা একজন আরেকজনের সেই ভুল গুলো শেয়ার করে, নিজেদের মাঝে নতুন কন্ডিশন করে, আর তারপর আবার রিলেশনশিপের শুরু হয়। ঠিক যেমনটি Evolutionary model এ কাস্টমার থেকে ফিডব্যাক নিয়ে নতুন ভার্সন রিলিজ হয়। কিছুদিন যাওয়ার পর আবার ব্রেক-আপ হয়, তারপর আবার রিলেশনশিপ কিছুটা আপডেট হয়। একটা সময় যাওয়ার পর ব্রেক-আপ এর পরিমাণ কমতে থাকে, তারমানে রিলেশনশিপটা ম্যাচুয়েট অবস্থায় চলে যায়। কিন্তু এর মানে এই নয় যে রিলেশনশিপ বা আমাদের সফটওয়্যার/প্রোডাক্ট টি ১০০% ঠিক হয়ে যায়। আসলে সময়ের সাথে সাথে আমারা একটা স্টেবল স্টেটে চলে যায়। 

মন্তব্যসমূহ