"সুতরাং, আমি আপনাকে চটপটে এবং স্ক্রাম সম্পর্কে বলতে চাই ।"

"একবিংশ শতাব্দীর শুরুতে, প্রোগ্রামিং সম্পর্কে লোকেরা যেভাবে চিন্তা করেছিল তা উল্টে গেছে।"

"সবাই নিশ্চিত ছিল যে দীর্ঘমেয়াদী পরিকল্পনা কাজ করছে না, তাই তারা এটি সম্পূর্ণরূপে পরিত্যাগ করার সিদ্ধান্ত নিয়েছে।"

"তারা এটা কি করে করলো?"

"এখানে কিভাবে।"

"তারা সম্ভাব্য সবচেয়ে নমনীয় প্রকল্প ব্যবস্থাপনা পদ্ধতির উদ্ভাবন করেছে।"

চটপটে বিকাশের পিছনে মূল ধারণাগুলি এখানে রয়েছে :"

  • মানুষ এবং যোগাযোগ প্রক্রিয়া এবং সরঞ্জামের চেয়ে বেশি গুরুত্বপূর্ণ;
  • একটি কাজের পণ্য সম্পূর্ণ ডকুমেন্টেশনের চেয়ে বেশি গুরুত্বপূর্ণ;
  • একটি চুক্তির শর্ত পূরণের চেয়ে গ্রাহকের সাথে সহযোগিতা করা আরও গুরুত্বপূর্ণ;
  • পরিবর্তনের ইচ্ছা মূল পরিকল্পনায় লেগে থাকার চেয়ে বেশি গুরুত্বপূর্ণ।

এখানে দ্রুত বিকাশের নীতিগুলি রয়েছে:

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

"সফ্টওয়্যার ডেভেলপমেন্টের সাথে প্রধান সমস্যাটি ছিল যে কোন পর্যায়ে অংশগ্রহণকারীদের মধ্যে কি করতে হবে সে সম্পর্কে সম্পূর্ণ তথ্য ছিল না।"

"গ্রাহক আপনাকে বলতে পারেন যে তিনি কীভাবে প্রোগ্রামটি কল্পনা করেছেন, তবে তিনি কিছু ছেড়ে দেবেন বা মঞ্জুর করে কিছু নেবেন।"

"ম্যানেজারকে সাধারণত প্রোগ্রামিং জার্গন থেকে গ্রাহকের ভাষায় প্রয়োজনীয়তা অনুবাদ করতে হয় এবং আবার ফিরে আসতে হয়।"

"অত্যধিক অনিশ্চয়তা আছে।"

"প্রায়শই গ্রাহকের প্রয়োজনীয়তাগুলি এইরকম হয়: এটি কিছু উপায়ে করুন, তারপর আমাকে দেখান - যদি আমি এটি পছন্দ না করি তবে আপনি এটি পুনরায় করতে পারেন।"

"ওহ... এটা ভয়ানক।"

"নতুন দৃষ্টান্ত অনুযায়ী, প্রোগ্রামাররা আর কোনো পণ্য বা প্রোগ্রাম তৈরি করছে না। পরিবর্তে, তারা গ্রাহকের প্রয়োজনীয় কার্যকারিতা বাস্তবায়ন করছে।"

"কি পার্থক্য?"

"আচ্ছা, ধরুন সেই প্রোগ্রাম ডেভেলপমেন্টে এক বছর সময় লাগত। এবং দেখার জন্য কিছু করার আগে ছয় মাস কেটে যেতে হয়েছিল। এটি একটি বড় বাড়ি তৈরি করার মতো: প্রথমে, আপনি ভিত্তির জন্য একটি গর্ত খনন করুন, তারপর ভিত্তিটি ঢেলে দিন, দেয়াল, ছাদ, ছাঁটা ইত্যাদি তৈরি করুন।"

"কিন্তু এখন প্রোগ্রামাররা যত তাড়াতাড়ি সম্ভব প্রয়োজনীয় কার্যকারিতা প্রকাশ করার চেষ্টা করে। এটি প্রথমে একটি কুঁড়েঘর, তারপর একটি মোবাইল বাড়ি, তারপর একটি ছোট বাড়ি এবং তারপরে একটি বড় বাড়ি তৈরি করার মতো হবে - কিস্তিতে।"

" গ্রাহক সম্ভবত জানেন না যে তিনি কী চান তা বিবেচনা করে, তাহলে এটি একটি খুব যুক্তিসঙ্গত পদ্ধতি।"

"ধরুন গ্রাহক একটি বড় শিকারের লজ চায়।"

"ডেভেলপাররা তাকে একটি ছোট বাড়ি তৈরি করে। তিনি একটি শীতের জন্য এটিতে থাকেন। তারপর তিনি সিদ্ধান্ত নেন যে তিনি কাঠের বাড়ি পছন্দ করেন না। আসুন একটি ইটের তৈরি করা যাক।"

"তিনি গ্রীষ্মের জন্য হ্রদের কাছে থাকেন, কিন্তু মশারা তাকে জীবন্ত খেয়ে ফেলে। তিনি কোথাও শুনেছিলেন যে হ্রদ শীতল, এবং তাই তিনি একটি হ্রদ রাখার কল্পনা করেছিলেন। কিন্তু এখন তিনি একটি লেক চান না। এবং এটি তৈরি করা সহজ হবে। এইভাবে বাড়িটি: কোনো হ্রদ মানেই বন্যার কোনো হুমকি নেই, এবং আপনি মাটিতে ঘর তৈরি করতে পারেন, যা 25% দ্রুত হবে।"

"একটি আকর্ষণীয় উপমা। গ্রাহকরা কি সত্যিই তাদের প্রয়োজনীয়তা প্রায়ই পরিবর্তন করে?"

"হ্যাঁ, কিন্তু সমস্যাটি গ্রাহক নয়।"

"প্রথমত, ভবিষ্যতে কীভাবে জিনিসগুলি ঘটবে তা কল্পনা করা খুব কঠিন। ম্যানেজার, পরীক্ষক এবং প্রোগ্রামাররা সবাই এটি করে। তারা কীভাবে জিনিসগুলি চলে তার উপর নির্ভর করে তাদের মন পরিবর্তন করে।"

"দ্বিতীয়, গ্রাহকের প্রয়োজনীয়তাগুলি কি সবচেয়ে গুরুত্বপূর্ণ নয়?  সর্বোপরি , এই সমস্ত কাজের মূল উদ্দেশ্য হল গ্রাহকের যা প্রয়োজন তা তৈরি করা , তিনি প্রথমে যা তৈরি করতে বলেছিলেন তা নয় ।"

"প্রকৃতপক্ষে, এটি এইভাবে কাজ করত: ব্যবসায়িক বিশ্লেষকরা সমস্ত প্রয়োজনীয়তার একটি তালিকা তৈরি করবে। তারা এই তালিকাটিকে একটি চুক্তিতে অন্তর্ভুক্ত করবে, এটিতে স্বাক্ষর করবে এবং শুধুমাত্র তালিকা অনুযায়ী কাজ করবে।"

"যদি তালিকায় এমন কিছু অনুপস্থিত থাকে যা গ্রাহকের সত্যিই প্রয়োজন ছিল কিন্তু ভুলে গেছে, কেউ এটি সম্পর্কে কিছু করবে না।"

"আমি দেখছি। একটি পরিকল্পনা অনুসরণ করা সহজ, কিন্তু একটি পরিকল্পনা অনুযায়ী সবকিছু করা যায় না!"

"ঠিক।"

"তাই চটপটে উন্নয়নের পদ্ধতি উদ্ভাবিত হয়েছিল।"

"এবং আজ আমি আপনাকে স্ক্রাম সম্পর্কে বলতে যাচ্ছি - তাদের মধ্যে সবচেয়ে জনপ্রিয়।

"স্ক্রামের প্রাথমিক বৈশিষ্ট্য হল প্রকল্পের উন্নয়নকে ছোট পুনরাবৃত্তিতে বিভক্ত করা - সাধারণত 2-4 সপ্তাহ দীর্ঘ। প্রতিটি পুনরাবৃত্তিকে একটি স্প্রিন্ট বলা হয়।"

"একটি স্প্রিন্টের শুরুতে, একটি স্প্রিন্ট পরিকল্পনা সভা অনুষ্ঠিত হয়। এটি 3-4 ঘন্টা স্থায়ী হয়।"

"শেষে, সমস্ত সম্পূর্ণ সম্পূর্ণ কাজগুলির একটি প্রদর্শনী রয়েছে।"

"এখানে সাধারণত সবকিছু কিভাবে কাজ করে:"

"প্রথম স্প্রিন্টের আগে, গ্রাহক (বা গ্রাহকের প্রতিনিধি) প্রয়োজনীয়তার একটি তালিকা তৈরি করে, অর্থাৎ প্রোগ্রামটি করতে সক্ষম হওয়া উচিত এমন জিনিসগুলির সেট। এই প্রয়োজনীয়তাগুলিকে সাধারণত ব্যবহারকারীর গল্প বলা হয়, এবং গ্রাহক সাধারণত পণ্যের মালিককে ডাকা হয়েছে ।"

"তাকে পণ্যের মালিক বলা হয়, কারণ পণ্যটি তার জন্য লেখা হয়। তিনি এবং তিনি একাই প্রয়োজনীয়তার তালিকা নির্ধারণ করেন — কী, কখন, এবং কী ক্রমে।"

"অতিরিক্ত, পণ্যের মালিক সাধারণত কাজের অগ্রাধিকার নির্ধারণ করে। সর্বোচ্চ অগ্রাধিকার সহ কাজগুলি প্রথমে বাস্তবায়ন করা হবে। প্রয়োজনীয়তার সম্পূর্ণ তালিকাকে পণ্য ব্যাকলগও বলা হয় ।"

"যখন একটি স্প্রিন্ট শুরু হয়, সবাই একটি মিটিংয়ের জন্য জড়ো হয়। স্ক্রাম মাস্টার , সাধারণত দলের একজন সদস্য, সাধারণত মিটিংয়ে নেতৃত্ব দেন। সভার লক্ষ্য হল বর্তমান স্প্রিন্টের (উন্নয়নের পুনরাবৃত্তি) জন্য কাজগুলি ( ব্যবহারকারীর গল্প ) নির্বাচন করা। "

"প্রথম, দল প্রতিটি কাজকে বিমূর্ত মানব-দিনে একটি মোটামুটি অনুমান নির্ধারণ করে, যা গল্পের পয়েন্ট হিসাবেও পরিচিত।  তারপর দল সিদ্ধান্ত নেয় স্প্রিন্টের সময় তাদের কতগুলি কাজ শেষ করতে হবে।"

"আবার, দল নিজেই সিদ্ধান্ত নেয় যে স্প্রিন্টের সময় তাদের কতগুলি কাজ শেষ করতে হবে।"

"আসুন বলে নেওয়া যাক পণ্যের মালিক টিমটি প্রথম 7টি কাজ নির্বাচন করবে বলে আশা করেছিল কিন্তু এটি শুধুমাত্র 5টি নির্বাচন করেছে, তারপরে 6 এবং 7 টাস্কগুলি পরবর্তী স্প্রিন্টে স্থগিত করা হয়েছে৷ যদি এটি পণ্যের মালিকের জন্য উপযুক্ত না হয় তবে তিনি কাজের অগ্রাধিকার বাড়াতে পারেন৷ 6 এবং 7 নিশ্চিত করার জন্য যে তারা নির্বাচিত হয়েছে, কিন্তু তারপরে অন্য কিছু কাজ স্প্রিন্ট থেকে বাদ পড়বে।"

" স্ক্রাম মাস্টার কিছু কাজকে ছোট করে ভাঙার প্রস্তাব দিতে পারেন এবং পণ্যের মালিককে যতটা সম্ভব খুশি করতে তাদের জন্য বিভিন্ন অগ্রাধিকার সেট করতে পারেন।"

"এটা হল মিটিংয়ের বিষয়: কাজগুলি পরিবর্তন করা যেতে পারে এবং বিভক্ত করা যেতে পারে, অগ্রাধিকার পরিবর্তন করা যেতে পারে, ইত্যাদি। এটি এমন একটি কাজ যা শুরুতে দৃশ্যমান ছিল না, কিন্তু যা অনেক মূল্য নিয়ে আসে।"

"বুঝেছি। এটা একটা গাড়ি চালানোর মত। এমনকি যদি আপনি প্রাথমিকভাবে বিশ্বাস করেন যে আপনাকে শুধু সোজা যেতে হবে, বাস্তবতা হল যে আপনাকে ক্রমাগত গর্ত এড়াতে হবে, ডানে-বামে যেতে হবে, এবং অন্যদের পাশ দিয়ে যেতে হবে বা তাদের আপনাকে যেতে দিতে হবে।"

"হ্যাঁ, এরকম কিছু।"

"স্প্রিন্টের জন্য নির্বাচিত কাজের তালিকাকে স্প্রিন্ট ব্যাকলগ বলা হয় ।"

"প্রোগ্রামাররা সিদ্ধান্ত নেয় কে কি করবে, এবং শুধুমাত্র তখনই তারা কাজ করতে পারবে৷ "দক্ষতা উন্নত করার জন্য, স্ক্রাম পরামর্শ দেয় যে প্রতিদিন 5-15 মিনিটের একটি মিটিং অনুষ্ঠিত হবে যেখানে প্রত্যেকে একে অপরকে বলতে পারবে তারা গতকাল কী করেছে এবং তারা কী করেছে৷ আজ করতে যাচ্ছি।"

"টিমওয়ার্ক। আমি যে সম্মান করতে পারি!"

"বিষয়গুলি কল্পনা করা সহজ করার জন্য, এটি সাধারণত একটি বিশেষ বোর্ডে বর্তমান স্প্রিন্ট স্থিতি প্রদর্শন করার সুপারিশ করা হয়:"

চটপটে, স্ক্রাম, জলপ্রপাত - 2

"বাম দিকের তিনটি কলাম নোট করুন।"

"সংক্ষিপ্ত কাজের নামগুলি স্টিকি নোটগুলিতে লেখা হয়। এবং স্টিকি নোটগুলি তাদের অবস্থার (পরিকল্পিত, অগ্রগতিতে, সম্পন্ন) উপর নির্ভর করে বিভিন্ন কলামে স্থাপন করা হয়।"

"ডানদিকে, আপনি একটি বার্নডাউন চার্ট দেখতে পাচ্ছেন । প্রতিটি দিনের জন্য, এই চার্টে এমন কাজগুলি তালিকাভুক্ত করা হয়েছে যা এখনও পূর্বাবস্থায় রয়ে গেছে। আদর্শভাবে, স্প্রিন্টের সময় অসম্পূর্ণ কাজের সংখ্যা শূন্যে নেমে আসে।"

"স্প্রিন্ট শেষ হলে, স্ক্রাম-মাস্টার একটি ডেমো দেয় যা সম্পূর্ণভাবে শেষ হয়ে গেছে তার তালিকা দেখানোর জন্য।"

"তারপর তিনি একটি স্প্রিন্ট রেট্রোস্পেক্টিভ মিটিং করেন , যা কয়েক ঘন্টা স্থায়ী হয়৷ এই মিটিং চলাকালীন, অংশগ্রহণকারীরা সাধারণত কী ভাল হয়েছে এবং কী (এবং কীভাবে) জিনিসগুলি আরও ভাল করা যেত তা বোঝার চেষ্টা করে৷"

"সাধারণত 2-3 টি স্প্রিন্টের পরে, আপনি টিমকে আরও দক্ষতার সাথে কাজ করতে না দিয়ে প্রধান সমস্যাগুলি সনাক্ত করতে এবং নির্মূল করতে পারেন। এটি দলের কাজের চাপ না বাড়িয়ে বৃহত্তর উত্পাদনশীলতার দিকে নিয়ে যায়। চটপটে  পদ্ধতির যুগের আগে এটি সম্ভব ছিল না। "

"কখনও কখনও স্প্রিন্টের সময় একটি গ্রুমিং মিটিংও অনুষ্ঠিত হয়। এর উদ্দেশ্য হল পরবর্তী স্প্রিন্টের পরিকল্পনা করা। অংশগ্রহণকারীরা সাধারণত এই মিটিংয়ে কাজের অগ্রাধিকারগুলি স্পষ্ট করে। তারা কিছু কাজকে অংশে বিভক্ত করতে পারে এবং/অথবা পণ্য ব্যাকলগে নতুন কাজ যোগ করতে পারে "

"ঠিক আছে, আমার কাছে মূলত এটিই রয়েছে। এটি কেবলমাত্র একটি সংক্ষিপ্ত বিবরণ। এটি শুধুমাত্র কয়েকটি শব্দে ব্যাখ্যা করা অসম্ভব, তবে আপনি এখানে এই বিষয়ে একটি ভাল নিবন্ধ পড়তে পারেন:"

https://en.wikipedia.org/wiki/Scrum_(software_development)