Friday, August 19, 2016

একটি MVP ও একজন সফটওয়্যার প্রকৌশলী



জিনিসটা হচ্ছে এমন- 

আপনাকে বলা হলো একটা MVP বানাতে। MVP মানে হচ্ছে - minimum viable product. (যা আসলে কোন কাজ করে না, শুধুমাত্র দেখানো যায়, যে এইটা এইরকম করে কাজ করবে) 

আপনি আপনার product owner দেখালেন। সে খুশি হয়ে ছাদে উঠে গিয়ে বিজনেজ টিমকে ডেমো দিলেন। বিজনেজ টিম ডেমো দেখে আকাশে উঠে গেলো । তারা সাথে সাথে রকেট ভাড়া করে প্রচার প্রচারনা শুরু করলো এমন ভাবে যে, এই প্রডাক্ট না ব্যবহার করলে আপনার জীবনটাই বৃথা। 

পরেরদিন শুনতে পেলেন যে, আপনার বানানো MVP কে নাকি প্রোডাকশনে দিতে হবে। এই কথা শুনে, আপনার মাথায় সাথে সাথে কুফুর পিড়ামিড ভেঙে পরল, এমন অবস্থা। 

আপনি অনেক চিন্তা ভাবনা করে বললেন যে, এই প্রডাক্ট প্রডাকশন রেডি করতে হলে ৪ মাস ২৩ দিন লাগবে (আসলে কতদিন লাগবে সেটা শুধুমাত্র আ্ল্লাহ জানে)। আপনার দেওয়া এস্টিমেট দেখে আপনার product owner হেসে উড়িয়ে দিলেন। এতো সময় লাগার কোন কারণ নেই। আপনি যা বানিয়েছে তা খুব সুন্দর মতো কাজ করে। আমি চালিয়ে দেখেছি। দু-একটা বাগ থাকতে পারে। ওতে কোন সমস্যা নেই। নতুন প্রডাক্ট সেটা সবাই বুঝবে। কিছু টুয়িক করতে হবে, এর জন্যে আপনি ২ সপ্তাহ নিন। 

আপনি সাথে সাথেই সিউর হয়ে গেলেন নেক্সট ছয় মাস আপনার ঘুম হওয়ার কোন কারণ নেই। কারণ দু-এক হাজার বাগ আসলেও আপানার অবাক হবার কারণ নেই। 

তারপর, যখন বছর খানিক খাটা খাটি করে প্রডাক্টটি মোটামুটি দাড়া করালেন। তখনি শুরু হবে স্কেলিং সমস্যা। ঘন ঘন OutOfMemoryError: GC overhead limit exceeded টাইপ জিনিস পাওয়া শুরু করবেন। মাঝরাতে আপনার ঘুম ফেলে দিয়ে OutOfMemoryError ধরণের সমস্যা ফিক্স করতে হবে। 

এই টাইপ সমস্যা গুলো যখন উতরে যাবেন নেক্সট ২/৩ সপ্তাহ না ঘুমিয়ে, তখন দেখবেন আপনার বিজনেজ টিম নতুন একটা আইডিয়া নিয়ে এসেছে, যেটা ১ সপ্তাহের মধ্যে বানিয়ে দিতে হবে। 

তারা ঘটনা এমনভাবে হয়তো ব্যাখ্যা করবে যে, এই জিনিস না বানালে দুনিয়ার অর্ধেক মানুষ দঃখে কষ্টে আত্মহত্যা করে মরে যাবে।