ব্যবহারকারী গল্পটি উচ্চ স্তরে সিস্টেমের সাথে কী করতে চায় তা ক্যাপচার করে। আমি বুঝতে পারি যে ব্যবহারকারীর গল্পটি আরও কয়েকটি নিম্ন স্তরের প্রয়োজনীয়তা চালাবে। ব্যবহারকারীর গল্পটি কি সিস্টেমের জন্য উচ্চ স্তরের প্রয়োজনের মতো?
ব্যবহারকারী গল্পটি উচ্চ স্তরে সিস্টেমের সাথে কী করতে চায় তা ক্যাপচার করে। আমি বুঝতে পারি যে ব্যবহারকারীর গল্পটি আরও কয়েকটি নিম্ন স্তরের প্রয়োজনীয়তা চালাবে। ব্যবহারকারীর গল্পটি কি সিস্টেমের জন্য উচ্চ স্তরের প্রয়োজনের মতো?
উত্তর:
সত্য কথা বলতে গেলে, চটপটি বিকাশে নিমজ্জিত প্রায় দুই বছর অতিবাহিত করার পরেও আমি এখনও মনে করি "ব্যবহারকারীর গল্প" "কার্যকরী প্রয়োজনের" জন্য অভিনব একটি শব্দ।
এটি একটি পৃষ্ঠের স্তরে পৃথক, যেমন এটি সর্বদা একটি নির্দিষ্ট ফর্ম নেয় ( "এক্স হিসাবে, আমি ওয়াই যাতে জেড চাই ..." ) তবে মূল উপাদানগুলি - অংশীদার এবং যুক্তি সনাক্তকরণ - এছাড়াও ভালভাবে অন্তর্নিহিত - লিখিত কার্যকরী প্রয়োজনীয়তা। একটি খারাপ ব্যবহারকারীর গল্প লেখার পক্ষে যেমনটি খারাপ প্রয়োজন ঠিক তেমন সহজ লেখা ( "[আমাদের সংস্থার নাম হিসাবে", আমি [অস্পষ্ট বৈশিষ্ট্য] চাই যাতে আমি [এমন কিছু করতে পারি যা আমার কাজটির স্বতঃসংশ্লিষ্ট অংশ, যেমন 'গ্রাহকদের আরও বেশি বিক্রি'] " )।
আমার গল্পগুলিতে ব্যবহারকারীর গল্পগুলি কখনই ক্যাপচার করে না সেগুলি হল কর্মক্ষমতা এবং সুরক্ষার মতো অ-কার্যকরী প্রয়োজনীয়তা। এই ধরণের প্রয়োজনীয়তাগুলি সঠিকভাবে লিখতে খুব কঠিন এবং ব্যবহারকারী কাহিনীর ফর্ম্যাট কেবল তাদের ক্যাপচারের জন্য খুব ভাল নয়, কারণ তারা নির্দিষ্ট ব্যবহারকারীর সাথে সাক্ষাত না করে সাধারণ পণ্যের গুণমান এবং ঝুঁকি হ্রাস (তবে নির্মূল করে না) সম্পর্কে আরও বেশি প্রয়োজন নেই।
সুতরাং, আমি ব্যবহারকারীর গল্পগুলিকে একটি নির্দিষ্ট সূত্র সহ প্রয়োজনীয়তার একটি উপসেট হিসাবে মনে করি এবং এখনও শব্দগুলি বেশ কিছু বিনিময়যোগ্য হিসাবে ব্যবহার করি।
এক প্রধান সুবিধা ব্যবহারকারী গল্প প্রয়োজনীয়তা উপর আছে শব্দ "প্রয়োজন" দাবি করছে যে একটি বৈশিষ্ট্য হয় প্রয়োজনীয় অনেক ক্ষেত্রেই ঠিক হয় আকাঙ্ক্ষিত । ব্যবহারকারীর গল্পগুলিকে তাত্ত্বিকভাবে কোনও প্রকাশের জন্য অগ্রাধিকার দেওয়া এবং স্লট করা যেতে পারে, যেখানে প্রতিটি প্রকাশের জন্য প্রয়োজনীয়তা পূর্বশর্ত হিসাবে উপস্থিত হয় ।
অবশ্যই, উপরোক্ত উল্লিখিত পার্থক্যটি বিবেচনার জন্য আপনার গ্রাহক এবং / অথবা সিনিয়র ম্যানেজমেন্টকে অবশ্যই এটি আলিঙ্গন করতে হবে; আপনার যদি 30 ব্যবহারকারীর গল্পগুলি একটি "প্রকল্প" হিসাবে গোষ্ঠীভুক্ত করা হয় তবে সমস্ত কিছু একই সাথে শেষ হওয়া উচিত। সেই ক্ষেত্রে আপনি তাদের "প্রয়োজনীয়তা" হিসাবেও ডাকতে পারেন কারণ এগুলি বাস্তবে প্রয়োজনীয়।
রন জেফরিস একটি কার্ডের সংক্ষিপ্ত বিবরণ (সংক্ষিপ্ত বিবরণ), গ্রাহকদের এবং বিতরণ দলের মধ্যে কথোপকথনের সাথে একবার ব্যবহারকারীর গল্পের 3Cs ব্যবহারকারী গল্পগুলির ( http://xprogramming.com/articles/expcardconversationconfirration/ ) সম্পর্কে লিখেছিলেন ক্রিয়াযোগ্য হয়ে ওঠে এবং সেই কথোপকথনের পরে একটি গল্পের সম্মত নিশ্চিতকরণ।
মূলত, কথোপকথনের আগে, ব্যবহারকারী গল্পগুলি কেবল পরিকল্পনার সুযোগ - আমরা কী করতে পারি তার সম্পর্কে মোটামুটি ধারণা। কথোপকথনের পরে, আপনার কাছে গল্পটি সম্পূর্ণ হয়েছে তা নিশ্চিত করার একটি উপায় থাকা উচিত। সুতরাং আপনি যখন এই টাইমলাইনে গল্পটির দিকে তাকান সেই সময়ের উপর নির্ভর করে কোনও গল্প স্কোপ সম্পর্কে কেবল বিস্তৃত ধারণা, বা কোনও বিশদ প্রয়োজন হতে পারে।
আজকাল, "ব্যবহারকারীর গল্প" এর অর্থ জেফরিজের 3 সি এর কেবল "কার্ড" অংশে সংকীর্ণ বলে মনে হচ্ছে। সেক্ষেত্রে কোনও ব্যবহারকারীর গল্পের প্রয়োজন হয় না তবে পুনরুক্তিগুলি সম্পর্কে কথোপকথনের প্রতিশ্রুতি দেওয়া হয়।
আপনি সি 2 উইকিতে ব্যবহারকারীর কাহিনী সম্পর্কে এক টন জ্ঞানের স্বর্ণের নাগেটগুলি খুঁজে পেতে পারেন ( http://xp.c2.com/UserStory.html )
ব্যবহারকারীর গল্প এবং প্রয়োজনীয়তাগুলি খুব আলাদা জন্তু।
প্রয়োজনীয়তাগুলি অনুমান করা যায় যে অ্যাপ্লিকেশনটির নকশা আগেই সম্পন্ন হয়েছে এবং সেই বিকাশটি সেই নকশার বাস্তবায়ন। প্রয়োজনীয়তাগুলি কীভাবে কোনও কার্যকারিতা কার্যকর করতে হয় সেদিকে মনোনিবেশ করে ।
প্রয়োজনের উদাহরণ:
ব্যবহারকারীর গল্পগুলি কী অর্জন করবেন তার উপর ফোকাস করে এবং জোর দিয়ে বলেন যে পণ্যটির নকশা শেষ মুহুর্তে করা হয়েছে এবং এটি কোনও পণ্য ব্যক্তি এবং বিকাশকারী ব্যক্তির মধ্যে একটি সহযোগিতা। সুযোগের ভিত্তিতে প্রয়োগের সময় বিশদগুলি সিদ্ধান্ত নেওয়া হয়।
একটি গল্পের উদাহরণ:
যেমন আপনি দেখতে পাচ্ছেন, সরবরাহিত বিশদের পরিমাণের মধ্যে অবশ্যই একটি পার্থক্য রয়েছে তবে প্রচুর তথ্য রয়েছে যা কেবলমাত্র গল্পে পাওয়া যায়, অর্থাত্ এই উদ্দেশ্যটি যা আমরা এই বৈশিষ্ট্যটির সাথে অর্জন করার চেষ্টা করছি।
যদিও এটি প্রদর্শিত হতে পারে যে উদ্দেশ্যটি তুলনামূলকভাবে গুরুত্বহীন নয়, এটি চতুর বিকাশে একটি ভুল ধারণা। সাধারণত দুটি ক্ষেত্রে রয়েছে যার উদ্দেশ্য জানা খুব গুরুত্বপূর্ণ: সুযোগের ব্যয় হ্রাস করা এবং তত্পরতা সক্ষম করা।
প্রয়োজনে যদি লুকানো অনুমান থাকে তবে এটি অর্জন করা খুব কঠিন হতে পারে। উদাহরণস্বরূপ: কোনও মেল সার্ভার উপলব্ধ আছে কি? যদি তা না হয় তবে প্রয়োজনীয়তাটি বিকাশ হতে অনেক বেশি সময় নিতে পারে। কিছু অন্যান্য ক্ষেত্রে একই লক্ষ্য অর্জনের একটি সহজ উপায় ডিজাইনের কারণে মিস হতে পারে।
বিপরীতে, ব্যবহারকারীর গল্পটি এমন একটি ব্যবহারকারী সম্পর্কে যা আমাদের সমর্থন বিভাগে যোগাযোগ করে। যদি কোনও মেল প্রেরণ অপরিহার্য বা খুব ব্যয়বহুল হয় তবে আমরা স্পটটিতে একটি আলাদা সমাধান তৈরি করতে পারি: উদাহরণস্বরূপ একটি ডাটাবেসে লিখুন বা গুগল ডক্সের মাধ্যমে একটি ফর্ম ব্যবহার করুন বা ফর্মের পরিবর্তে কেবল ইমেল ঠিকানা রেখে দিন। এটি কোনও প্রয়োজনের সাথে সহজেই করা যায় না, তবে এটি কোনও গল্প এবং উপস্থিত একজন ব্যক্তির সাথে খুব সহজেই সম্পন্ন হয়।
এই কারণে প্রয়োজনীয়তার সাথে আমরা সাধারণত এই লুকানো অনুমানগুলি আগেই ভাবি এবং নিশ্চিত করে থাকি যে কোনও হিট নেই। সুতরাং এক্ষেত্রে হাতের আগে নির্ধারিত একটি আলাদা প্রয়োজন থাকতে পারে যা নিশ্চিত করেছিল যে কোনও মেল সার্ভার উপস্থিত ছিল।
এটি আমাদের গল্প এবং প্রয়োজনীয়তার মধ্যে আরও একটি বিশাল পার্থক্যের দিকে নিয়ে যায় যা হায়ারার্কি । আমি যেমন উদাহরণ দিয়েছি, প্রয়োজনীয়তাগুলি তাদের নিজস্ব প্রকৃতি অনুসারে কিছু প্রাকৃতিক শ্রেণিবিন্যাসে অর্ডার করতে হবে যাতে নির্ভরতা মেটাতে পারে। অন্যদিকে গল্পগুলি উদ্দেশ্যকে কেন্দ্র করে এবং এরকম কোনও বাধা নেই।
এটি নকশা দ্বারা, যেমন চটপটে এটি প্রকল্পটি কার্যকর করার সময় গল্পগুলি যুক্ত করা, অপসারণ, পুনরায় নির্ধারণ এবং সংশোধন করা মৌলিক গুরুত্বের। প্রয়োজনীয়তাগুলি সাধারণত যুক্ত করা যেতে পারে, কখনও কখনও সংশোধিত বা মুছে ফেলা যায় তবে সমস্ত নির্ভরতার কারণে এগুলি প্রায় সরানো খুব বেদনাদায়ক। এটি কেবল খুব প্রায়ই করা হয় না। আপনি যদি প্রয়োজনীয়তার সাথে কাজ করে থাকেন তবে আপনার চটপটি বাস্তবায়ন ক্ষতিগ্রস্থ হবে, বা সম্ভবত পরিবর্তনটিকে আলিঙ্গন করতে সক্ষম হবেন এমন অর্থে সম্ভবত খুব চতুর হবে না।
আমার কাছে, একটি ইউজার স্টোরির একটি সমালোচনা উপাদানটি হ'ল এটি কোনও ব্যবহারকারী সিস্টেমটিকে কেন এবং কীভাবে ব্যবহার করে তা ক্যাপচার করে। এটি বিশেষত কার্যকর কারণ এটি সিস্টেমের প্রয়োজনীয় কার্যকারিতা কীভাবে সরবরাহ করে তার ক্ষেত্রে তেমন কোনও নির্দিষ্ট করে না। যখন ইউআই এবং ইউজেবিলিটি পরীক্ষার প্রয়োজন হয় তখন ব্যবহারকারীর গল্পটি সবচেয়ে গুরুত্বপূর্ণ নথি হতে পারে।
অবশ্যই, আপনি সেলেনিয়াম যাচাই করতে পারেন যে কোনও নির্দিষ্ট নোড এইচটিএমএলে উপস্থিত রয়েছে বা স্ক্রিন শট নিতে পারেন বা নিশ্চিত করুন যে নির্দিষ্ট পিক্সেলগুলি সেখান থেকে রয়েছে বলে আপনি আশা করছেন। তবে যদি সেখানে বিভ্রান্তিমূলক পাঠ্য থাকে, বা ব্যবহারকারীর সিস্টেমটি কীভাবে ব্যবহার করা উচিত তা স্পষ্ট নয় বা ব্যবহারকারীর পক্ষে কীভাবে তাদের লক্ষ্য অর্জন করা যায় তা নির্ধারণ করা কঠিন, হঠাৎ আপনার আর কোনও সম্পূর্ণ সিস্টেম নেই। সিস্টেমটি ব্যবহারের জন্য এখন প্রশিক্ষণের প্রয়োজন। ব্যবহারকারীর পরিস্থিতিগুলির বিরুদ্ধে সম্পূর্ণ হওয়া সিস্টেমটির পর্যালোচনা ম্যানুয়াল পরীক্ষার একটি গুরুত্বপূর্ণ উপাদান critical
ব্যবহারকারীর গল্প / পরিস্থিতিগুলিতে ক্যাপচার মাইন্ড সেট রয়েছে যা বাস্তবায়ন সম্পর্কে অনেক বিস্তারিত নকশার সিদ্ধান্তগুলিকে প্রভাবিত করে। ডেভেলপাররা সরাসরি ব্যবহারকারীদের সাথে কথা না বলে বা তাদের সিস্টেমটি ব্যবহার না করে অবধি ব্যবহারকারীর পরিস্থিতি তাদের ব্যবহারকারীর প্রয়োজনীয়তা বুঝতে দেওয়ার একমাত্র লিঙ্ক হতে পারে।
অবশেষে, তারা কীভাবে কী কী অর্জন করা উচিত তা পরামর্শ ছাড়াই ব্যবসায়ের লোকদের তাদের কী প্রয়োজন তা নির্দিষ্ট করার অনুমতি দেয়। প্রয়োজনের তুলনায় কোনও সমাধান বর্ণনা করা অনেক সহজ এবং ব্যবহারকারী পরিস্থিতিতে নির্দিষ্ট সমাধান প্রস্তাব না করেই প্রয়োজনগুলি বর্ণনা করার জন্য একটি কাঠামো সরবরাহ করে। আমি শুনেছি সবচেয়ে সাধারণ ব্যবসায়ের প্রয়োজনীয়তা হ'ল, "আমি এটি এক্সেলের মতো হওয়া চাই, তবে ওয়েবে" যা তাদের আসলে প্রয়োজনের আগে কখনও হয়নি।
সুতরাং আমি বলব যে একটি ভাল গল্পে সিস্টেমটি কীভাবে প্রয়োগ করা উচিত সে সম্পর্কে কোনও নির্দিষ্ট বিবরণ অন্তর্ভুক্ত করা উচিত নয়। এটি বলা উচিত, "মাসে একবার, সিস্টেম এ থেকে নতুন কোনও ডেটা দিয়ে সিস্টেম এ আপডেট করা দরকার That সেই ডেটাটিতে সংশোধনের প্রয়োজন হতে পারে The ক্লায়েন্টটির অবৈধ ডেটা ইনপুট করার এবং সপ্তাহের জন্য সমস্যাটি উপলব্ধি না করার ইতিহাস রয়েছে" " এটি বলা উচিত নয়, "সিস্টেমটি অবশ্যই মাসে একবার অন্তত একবার ল্যাটিন 1 সিএসভি ফাইল গ্রহণ করে এবং 3 নং কলামের সংখ্যা না হলে একটি নম্বর ফরম্যাটএক্সসেপশন নিক্ষেপ করতে হবে" " তুমি কি ভিন্নতা দেখতে পাও? দৃশ্যপটটি কোনও নির্দিষ্ট সমাধান নয়, প্রয়োজনটিকে বর্ণনা করে। তারপরে পরীক্ষায় আপনি সমাধানটি প্রয়োজনীয়তার সাথে খাপ খায় তা নিশ্চিত করতে দৃশ্যে ফিরে ঘোরেন। প্রয়োজনীয়তাগুলি কিছু সমাধানগুলির সাথে কিছু চাহিদা মিশ্রিত করতে পারে, বা এমনকি সম্পূর্ণ সমাধানগুলিতে ফোকাস করতে পারে।
গুগল অনুসন্ধানের সময় এটিকে হোঁচট খেয়েছে এবং ভেবেছিলাম আমার মতামতটি এখানে ফেলে দেব।
প্রয়োজন এবং ব্যবহারকারীর গল্পের মধ্যে সত্যিই কোনও পার্থক্য নেই। উভয়ই ব্যবহারকারীর দৃষ্টিকোণ থেকে পছন্দসই ফলাফল বা লক্ষ্য উল্লেখ করছেন।
একমাত্র পার্থক্য হ'ল এই লক্ষ্য বা ফলাফলটি কোনও ব্যবসায়ীর বিশ্লেষক দ্বারা ক্যাপচার করায়। এক্ষেত্রে এটি কথার মধ্যে রয়েছে।
উদাহরণ:
দলের নেতৃত্ব হিসাবে আমি দেখতে চাই যে আমার দলটি বন্ধকী মামলায় কাজ করছে যাতে আমি তাদের পারফরম্যান্স পর্যবেক্ষণ করতে পারি।
সমাধানটি বন্ধক মামলায় কাজ করা টিম সদস্যদের প্রদর্শন করবে display
উপরের উভয়টি একইভাবে ব্যাখ্যা করা যেতে পারে তবে উভয়ের মধ্যেও দ্বিধাদ্বন্দ্ব রয়েছে। এখানে মূল বিষয়টি শৈলীতে একটি পার্থক্য। আমি মনে করি আমরা যে সমস্যাটি বেশিরভাগ ক্ষেত্রেই দেখি তা হ'ল আমরা প্রয়োজনীয়তার জগতের বাইরে এবং কার্যকরী নকশার জগতে চলে যাওয়ার আগে সমাধানটি সংজ্ঞায়িত করার ক্ষেত্রে আমরা কতদূর যেতে পারি। "মূল অ্যাপ্লিকেশন মেনুতে ব্যবহারকারীরা প্রথম এবং দ্বিতীয় নাম দ্বারা ব্যবহারকারীদের লগ ইন করা" তালিকাটি কি ব্যবসায় বিশ্লেষকের কাছে নামিয়ে দেওয়া হয়েছে বা এটি খুব বেশি তথ্য? যখন আমরা আমাদের স্টেকহোল্ডারদের সাথে কথা বলি এবং আমরা সকলেই সমাধানটি জানি এবং এটির চেহারাটি কী তা ব্যাখ্যা করা যায়, এমনকি এটি সম্ভবত নির্মিত ভাষা ভাষাও তৈরি করা হবে এবং এটি যেভাবে স্থাপন করা হবে তা কি আমাদের সত্যিকারের খাঁটিবাদী খেলাটি খেলতে হবে? আসুন উদ্দেশ্যগুলি নির্ধারণ করুন, সমাধানগুলি নয় "। এখানেই আমার মনে হয় বিভ্রান্তিটি আসলেই।
প্রয়োজনীয়তা প্রায়শই অনুমান করে যে আমরা সমাধানটি কেবল কাঙ্ক্ষিত ফলাফল সম্পর্কে কিছুই জানি না। হ্যাঁ এটি সবকিছু সমাধানকে অজ্ঞেয়বাদী করে তোলে তবে এটি কি সত্যই উন্নয়ন চক্রে আমাদের সহায়তা করে? আমরা যদি প্রথমদিকে সঠিকভাবে সংজ্ঞা দিতে পারি তবে তা কেন করবেন না?
সব মিলিয়ে আমি ব্যবহারকারীর গল্প এবং প্রয়োজনীয়তার পার্থক্য সম্পর্কে চিন্তা করব না। শেষ পর্যন্ত আপনি পর্যাপ্ত তথ্য সংজ্ঞায়িত করতে চান কারণ কোনও একটি সমাধান বিকাশ করতে পারে। খুব উচ্চ স্তরের একটি ব্যবহারকারীর গল্পটি কেবল পিছনে ছিটকে যাবে এবং ছোট ব্যবহারকারী গল্পগুলিতে বিভক্ত হওয়ার জন্য অনুরোধ করা হবে। "সিস্টেমটি করবে" স্টাইলের মতোই re প্রয়োজনীয়তা খুব দ্ব্যর্থহীন বলে প্রত্যাবর্তিত হবে কারণ এতে পর্যাপ্ত বিবরণ না থাকলে।
শেষ পর্যন্ত আপনার বিকাশকারী এবং স্টেকহোল্ডাররা যা দেখতে ও এটি থেকে কাজ করতে পছন্দ করে তা নিয়ে যান।
আমি মনে করি ক্লাসিক পাঠ্য বইয়ের মধ্যেও শব্দের প্রয়োজনীয়তার অর্থ কী তা নিয়ে প্রচুর অসঙ্গতি রয়েছে। একই অসঙ্গতি ব্যবহারকারীর গল্পগুলিতে প্রযোজ্য। বিভিন্ন সংস্থা এবং পাঠ্যপুস্তকগুলি এই শর্তগুলিকে আলাদাভাবে আচরণ করে। উদাহরণস্বরূপ, রজার প্রেসম্যানের ক্লাসিক সফ্টওয়্যার ইঞ্জিনিয়ারিং পাঠ্যপুস্তক কীভাবে প্রয়োজনীয়তা সম্পর্কে আলোচনা করে তা ডিন লেফিংওয়েলের অ্যাগ্রিল সফ্টওয়্যার প্রয়োজনীয়তার বইয়ের চেয়ে একেবারে আলাদা। আমি তাদের উভয়কে সম্মান করি এবং তারা উভয়ই বৈধ হতে পারে।
প্রয়োজনীয়তাগুলি এমন জিনিসগুলি হতে পারে যা আমরা কল করি যা কল্পনার সামান্য বাম সাথে অসাধারণ স্বাতন্ত্র্য। অন্যদিকে, এটি যুক্তিযুক্ত হতে পারে যে প্রয়োজনীয়তাগুলিতে ব্যবসায়ের সমস্যাটি কী তা নির্দিষ্ট করা উচিত এবং সমাধানটি নির্দিষ্ট করে না। আমি মনে করি এটি যদিও আরও সংবেদনশীল এবং উত্তরটি কোথাও কোনও বর্ণালীতে রয়েছে যা প্রতিটি সংস্থা এবং শিল্পের জন্য অনন্য (সমস্ত সফ্টওয়্যার বিকাশ আইটি-তে ঘটে না)।
আমাকে শিখানো হয়েছিল যে প্রয়োজনীয়তা এলিকেশন বিশ্লেষণের দিকে পরিচালিত করে, এটি নকশা বাড়ে, যা আর্কিটেকচারের দিকে পরিচালিত করে যা প্রয়োজনীয়তা বিস্তৃতকরণ বা নির্দিষ্টকরণের দিকে পরিচালিত করে, যা কোডিং করা যায় এমন কোনও দিকে নিয়ে যায়। আমি বিশ্বাস করি না যে এটি চট করে চলে যায়। এই জিনিসগুলি কখন ঘটে যায় তার সময় পরিবর্তন হয় এবং এটি সবচেয়ে গুরুত্বপূর্ণ পার্থক্য difference জলপ্রপাতের মডেলটিতে, শিথিলকরণ এবং সম্প্রসারণটি তাড়াতাড়ি ঘটে। পাতলা এবং স্ক্রামে, আপনি একটি স্প্রিন্টে বাস্তবায়নের কাছাকাছি আসার সাথে সাথে আরও পর্যায়ে বিস্তৃতকরণের সাথে বিভিন্ন স্তরে এলিকিটেশন এবং প্রসারণ ঘটে। যেমন উদীয়মান ডিজাইনের কাজ করে।
আমাদের সংস্থায়, আমরা এপিক্স, বৈশিষ্ট্য এবং গল্পগুলির লেফিংওয়েল মডেলের দিকে ঝুঁকছি, প্রয়োজনীয়তা হিসাবে নয় বরং কাজের ব্রেকডাউন এবং অগ্রাধিকার হিসাবে। প্রয়োজনীয়তা একটি আলাদা জিনিস। প্রয়োজনীয়তাগুলি পৃথকভাবে পরিচালিত হয় কারণ আমাদের নিয়ন্ত্রক এজেন্সিগুলির জন্য এটি করা প্রয়োজন। এবং এখনও কিছু দল অবশ্যই প্রোগ্রাম ইনক্রিমেন্ট এবং স্প্রিন্ট পরিকল্পনার সময় ব্যবহারকারীর গল্পগুলির মধ্যে প্রয়োজনীয়তা বিকাশ করছে।
কার্যকরী প্রয়োজনীয়তা সাধারণত একটি আনুষ্ঠানিক স্পেসিফিকেশন যা আপনার সফ্টওয়্যারটি কাজ করে কি না তা আপনাকে ঠিক জানতে দেয়। ব্যবহারকারী গল্পটি সাধারণত আপনার ব্যবহারকারীর একটির প্রয়োজনের বর্ণনা দেওয়ার জন্য অনেক বেশি অনানুষ্ঠানিক উপায়। সফ্টওয়্যারটি "বৈধ" বা "অবৈধ" কিনা তা নির্ধারণের জন্য এটি একটি অনমনীয় স্পেসিফিকেশন নির্দিষ্ট করে না। আপনি যখন এর কিছু অংশ পরীক্ষা করতে পারেন, যখন আপনার ব্যবহারকারী "হ্যাঁ, এটি আমার সমস্যার সমাধান করে!" বললে কোনও ব্যবহারকারী গল্পের আসল সমাপ্তি (যদি আপনি তাদের সঠিকভাবে করেন) is চতুর ইশতেহারটি মনে রাখবেন:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
মাইক কোহান তাঁর "ইউজার স্টোরি অ্যাপ্লাইডেড" বইটিতে সুনির্দিষ্টভাবে বলেছেন যে কিছু জিনিস ব্যবহারকারীর গল্পের মানচিত্র নয় এবং আপনাকে কেবল এটি ব্যবহার করতে হবে না ।
আমার নিজস্ব দলে, আমরা নিম্নলিখিতটি ব্যবহার করি:
কার্যকরী প্রয়োজনীয়তা আমাদের উপলব্ধি করতে দেয় না যে আমরা প্রয়োগ করা একটি বৈশিষ্ট্য কোনও ব্যবহারকারীর প্রয়োজনীয়তা সমাধান করে না, যদিও আমাদের শসা পরীক্ষার পাস এবং আমরা প্রতিটি লিখিত শব্দ প্রয়োগ করেছি। একটি গল্প একটি আলোচনা এবং এটি অনানুষ্ঠানিক। বিষয়টি বাস্তবায়নকারীদের বোঝার জন্য সমস্যাটি কী। এগুলি কোনও চুক্তির সরঞ্জাম নয়। আপনি যদি "স্ক্রাম তবে ... " করেন এবং আপনার গল্পটি সফ্টওয়্যারটির প্রয়োজনীয়তাগুলি লেখার সহজ মজার উপায় হয় তবে হ্যাঁ, কোনও পার্থক্য নেই।
পয়েন্টটি ব্যবহারকারীর কাহিনী নয়, আপনি যে কাজটি সম্পন্ন করতে যাচ্ছেন তাতে পয়েন্টটি দৃষ্টান্তের বিশাল স্থানান্তর। আপনি একটি চুক্তি করছেন না, আপনি কিছু সমস্যার সমাধান করতে আপনার ব্যবহারকারীকে সহায়তা করছেন। যদি আপনি আপনার ব্যবহারকারীর গল্পগুলিকে সত্যিকারের ব্যবহারকারীর সাথে আলোচনার সরঞ্জাম হিসাবে দেখেন না , তবে আপনি ব্যবহারকারীর গল্পগুলি ব্যবহার করছেন না, আপনি একটি মজাদার প্রয়োজনীয়তা বাক্য গঠন ব্যবহার করছেন ।
এখানে বাকি আমার মতামত: ব্যবহারকারীর গল্প কখনও একতরফাভাবে সফল হতে পারে না। আপনার গ্রাহককে এটির সাথে কাজ করার দরকার। জল-স্ক্র্যাম-পতন একটি অদ্ভুত প্রয়োজনীয়তা-তবে-না-আবশ্যকীয় জগাখিচুড়ির মতো হয়ে যায়। আপনার যদি নির্দিষ্ট প্রয়োজনীয়তার সাথে একটি স্থির বিড চুক্তি থাকে তবে পুনরাবৃত্তি এবং ব্যবহারকারীর গল্প ব্যবহার করবেন না, কোনও লাভ নেই । চতুর বাকী সরঞ্জামকিটের বাকী অংশটি ব্যবহার করুন: স্বয়ংক্রিয় ইউনিট / কার্যকরী পরীক্ষা, কোড পর্যালোচনা, ধারাবাহিক একীকরণ, রিফ্যাক্টরিং, ইত্যাদি নিশ্চিত করুন যে আপনার সফ্টওয়্যার অবিচ্ছিন্নভাবে কাজ করছে এবং আপনি এটি মুহুর্তের বিজ্ঞপ্তিতে শিপ করতে পারবেন। এটি তার অসমাপ্ত ফর্মটিতে গ্রাহকের কাছে উপলব্ধ করুন যাতে সে যতটা সম্ভব প্রতিক্রিয়া জানাতে পারে। আপনি যদি আমার বন্ধুটি করেন, আপনি যদি "ব্যবহারকারীর গল্প" এবং "স্ক্রাম" না করেন তবে আপনি অনেক তথাকথিত "চটজলদি" দোকানের তুলনায় আরও চতুর হয়ে উঠতেন।
আমি বিশ্বাস করি যে প্রত্যেকে অতীত অভিজ্ঞতার উপর নির্ভর করে সবকিছু বাস্তবায়ন এবং লেবেল করবে এবং যে সংস্থার কাজটি হয়ে যায় তার পক্ষে যে ভাষাতেই কাজ করে তা বিতর্ক করার মতো নয়।
যাইহোক, আইএমও, এ ইউজার স্টোরি "বিল্ডিংয়ের গ্রাহক বা গ্রাহক তাত্ক্ষণিকভাবে উপলব্ধ" এর অ্যাগিলের পদ্ধতির অনুসরণ করে, যেখানে ডকুমেন্টেশন প্রয়োজন হয় না কারণ বিবরণ গ্রাহকদের মাথায় থাকে এবং সহজেই পাওয়া যায় তাই একটি আনুষ্ঠানিক এসআরএস হতে পারে প্রয়োজন হবে না। এখন একটি "ব্যবহারকারী গল্প" এর একটি "টাস্ক" হ'ল একটি বিকাশকারী কীভাবে হজমযোগ্যভাবে ব্যবহারকারী গল্পগুলি তৈরি করতে চলেছে।
ব্যবহারকারী গল্পের উদাহরণ হতে পারে:
প্রশাসক ব্যবহারকারী হিসাবে আমি গ্রিডে তালিকাভুক্ত আমার ক্লায়েন্টদের ডেটা দেখতে চাই
এবং একটি "টাস্ক" হতে পারে:
একটি গ্রিড তৈরি করুন যা প্রদর্শিত হবে এমন ডেটা তালিকাভুক্ত করে
গ্রিডে বাছাই সক্ষম করুন যা নির্বাচিত কলামটি বাছাই করবে
এখন প্রতিটি কাজ অনুমিত হয় এবং তার নিজ নিজ স্প্রিন্টে সমাপ্ত হয়।
একটি "traditionalতিহ্যবাহী" দৃষ্টিকোণ থেকে, যেখানে "গ্রাহককে ধরে রাখা শক্ত, আমাদের এটি লিখতে হবে যাতে তারা নিশ্চিত করতে পারে যে আমরা পরিকল্পনা / কোডিং" পদ্ধতির শুরু করার আগেই এটি পেয়েছিলাম ঠিকই, সফ্টওয়্যার প্রয়োজনীয়তা নির্দিষ্টকরণ গ্রাহকদের মাথায় থাকা ধারণাগুলি হতে চলেছে এবং elicited এবং তারপরে লিখিত এবং আনুষ্ঠানিকভাবে এবং তারপরে বেসলাইন এবং পরিচালিত।
এই ক্ষেত্রে, "ক্রিয়ামূলক প্রয়োজনীয়তা" হ'ল সেই এসআরএসের কৌতূহলপূর্ণ বিবরণ এবং বৃহত্তর আইডিয়াটির একটি অংশ। সুতরাং আমার মতে, একটি ব্যবহারকারীর গল্পটি (আনুষঙ্গিক) আনুষ্ঠানিক "প্রয়োজনীয়তার" অংশ হিসাবে দেখা যেতে পারে এবং সেই ব্যবহারকারী গল্পটির কাজটি একটি (বা অনেকের মধ্যে একটি) কার্যকরী-প্রয়োজনীয়তা।
উদাহরণস্বরূপ ব্যবহারকারীর গল্পে, আনুষ্ঠানিক "প্রয়োজনীয়তা" প্রবাহের চার্ট সহ একটি দীর্ঘ দলিল এবং সাধারণত গ্রাহক-কেন্দ্রিক যে আরও "চতুর" পদ্ধতির বিপরীতে ডকুমেন্টেশন-কেন্দ্রিক হতে চলেছে।
পার্থক্যটি হ'ল, আনুষ্ঠানিক "প্রয়োজনীয়তা" অ্যাপ্লিকেশনটির প্রশাসনিক বিভাগের রূপরেখার সাথে কিছু 10 পৃষ্ঠার নথির পংক্তির সাথে হতে চলেছে যা নির্দেশ করে যে কিছু তালিকা প্রয়োজন হবে, কিছু ভূমিকা ভিত্তিক সুরক্ষা, ইত্যাদি .. এবং তারপরে কিছু কার্যকরী প্রয়োজনীয়তাগুলি হবে "তালিকাভুক্ত গ্রিডগুলি বাছাই করতে সক্ষম করবে", "ব্যবহারকারীর তথ্য গ্রিডে তালিকাবদ্ধ করা হবে" ইত্যাদি etc
এবং আমি বিশ্বাস করি আজকাল শর্তাবলী সমস্ত মিশ্র এবং মিশ্রিত .. যা মোটেই গুরুত্বপূর্ণ নয়