লাভ:
- এআই সমর্থন সহ অস্পষ্ট ব্যবসায়ের অনুরোধগুলিকে স্পষ্ট, পরীক্ষাযোগ্য সফ্টওয়্যার প্রয়োজনীয়তা এবং ব্যবহারকারীর গল্পগুলিতে রূপান্তর করার ক্ষমতা
- এআইয়ের সাথে কাঠামোগত উপায়ে সিস্টেম ডিজাইন, ডেটা মডেল এবং আর্কিটেকচারাল সিদ্ধান্তের সুবিধা এবং অসুবিধাগুলি তুলনা করার ক্ষমতা
- প্রয়োজনীয়তা, মাপযোগ্যতা এবং সীমাবদ্ধতার বিরুদ্ধে AI এর প্রস্তাবিত নকশাকে সমালোচনামূলকভাবে যাচাই করার ক্ষমতা
বেশিরভাগ সফ্টওয়্যার প্রকল্পগুলি খারাপ কোডের কারণে নয়, ভুল বোঝার প্রয়োজনীয়তার কারণে ব্যর্থ হয়। "ব্যবহারকারীদের রিপোর্ট ডাউনলোড করতে দিন"-এর মতো এক-বাক্যের অনুরোধ কয়েক ডজন উত্তরহীন প্রশ্ন রেখে যায়: কোন বিন্যাসে? দায়িত্বে কে? কত রেকর্ড? যদি এটি ধীর হয়? প্রয়োজনীয়তা বিশ্লেষণ (একটি ব্যবসায়িক অনুরোধকে স্পষ্ট, পরীক্ষাযোগ্য প্রযুক্তিগত প্রয়োজনে অনুবাদ করা) এবং সফ্টওয়্যার ডিজাইন (এই চাহিদাগুলি পূরণ করার জন্য কাগজে কাঠামো তৈরি করা) হল সেই পর্যায় যেখানে কোড লেখার আগে সবচেয়ে ব্যয়বহুল ভুলগুলি প্রতিরোধ করা হয়। এই ইউনিটে, আমরা এই পর্যায়ে একটি "চিন্তার অংশীদার" হিসাবে AI ব্যবহার করতে শিখব: এমন একটি অংশীদার যা অনিশ্চয়তাকে অস্পষ্ট করে, বিকল্পগুলি বাছাই করে, কিন্তু চূড়ান্ত সিদ্ধান্ত আপনার উপর ছেড়ে দেয়।
AI এখানে দুটি বড় মান তৈরি করে। প্রথমত, এটি এমন প্রশ্ন জিজ্ঞাসা করে যা আপনি এড়িয়ে যান; এটি একটি অনুরোধে পৃষ্ঠের লুকানো অনুমান এবং প্রান্তের ক্ষেত্রে নিয়ে আসে। দ্বিতীয়ত, এটি একটি ডিজাইনের সিদ্ধান্তের সুবিধা এবং অসুবিধাগুলি দ্রুত সারণী করে। কিন্তু এটাই বিপদ: AI আপনার প্রসঙ্গ (বাজেট, দল, বিদ্যমান সিস্টেম, আইনি সীমাবদ্ধতা) পুরোপুরি না জেনেই "সেরা অনুশীলন" হিসাবে জেনেরিক সুপারিশ দেবে। আপনার নিজের সত্যের বিরুদ্ধে এই উপদেশ ফিল্টার করা আপনার কাজ।
ধারণা: ব্যবহারকারীর গল্প: "... যেমন, আমি সক্ষম হতে চাই... কারণ..." আকারে একটি প্রয়োজন প্রকাশ করে একটি ছোট বাক্য। গ্রহণযোগ্যতার মানদণ্ড: পরীক্ষাযোগ্য শর্ত যা একটি চাকরির জন্য অবশ্যই পূরণ করতে হবে যা "সম্পন্ন" বলে বিবেচিত হবে। অ-কার্যকর প্রয়োজনীয়তা: "এটি কী করবে" এর পরিবর্তে "এটি কীভাবে আচরণ করবে" এর সাথে সম্পর্কিত প্রয়োজনীয়তা, যেমন গতি, নিরাপত্তা, মাপযোগ্যতা।
অস্পষ্ট অনুরোধ থেকে পরীক্ষাযোগ্য প্রয়োজনীয়তা পর্যন্ত
একটি ভাল প্রয়োজন পরিমাপযোগ্য এবং যাচাইযোগ্য। "ব্যবস্থা দ্রুত হতে দিন" নয়, কিন্তু "অনুসন্ধানের ফলাফল 500 ms এর মধ্যে ফিরে আসতে দিন"। অনিশ্চয়তা কমাতে AI ব্যবহার করার জন্য এখানে একটি ধাপে ধাপে উপায় রয়েছে:
- অনুরোধটি দিন এবং প্রশ্নটি তৈরি করুন। AI কে জিজ্ঞাসা করুন সমাধানের জন্য নয়, তবে প্রথমে "এই অনুরোধে অস্পষ্ট কিছু একটি প্রশ্ন হিসাবে তালিকাভুক্ত করুন।"
- আপনি উত্তরগুলো দেন। শুধু আপনি প্রসঙ্গ জানেন; আপনার আসল ব্যবসার সীমাবদ্ধতার সাথে AI এর প্রশ্নের উত্তর দিন।
- এটি ব্যবহারকারীর গল্প এবং গ্রহণযোগ্যতার মানদণ্ডে অনুবাদ করুন৷ স্পষ্ট করা প্রয়োজনকে পরীক্ষাযোগ্য আইটেমগুলিতে অনুবাদ করুন।
- প্রান্ত কেস এবং নেতিবাচক পরিস্থিতিতে যোগ করুন. "খালি ফলাফল", "অননুমোদিত ব্যবহারকারী", "খুব বড় ফাইল" ইত্যাদি।
অস্পষ্টতা নিষ্কাশন প্রম্পট: "আমরা নিম্নলিখিত ব্যবসায়িক অনুরোধটিকে একটি সফ্টওয়্যার প্রয়োজনে অনুবাদ করব। এখনও কোনও সমাধানের প্রস্তাব করবেন না। প্রথমে, সমস্ত অস্পষ্টতা এবং লুকানো অনুমানগুলি বের করুন যেগুলির উত্তর এই অনুরোধে প্রশ্নের একটি তালিকা হিসাবে দেওয়া হয়নি। নিম্নলিখিত শিরোনামের অধীনে প্রশ্নগুলিকে গোষ্ঠীবদ্ধ করুন: সুযোগ, ব্যবহারকারী/কর্তৃপক্ষ, ডেটা ভলিউম, কার্যকারিতা, ত্রুটির শর্তাবলী, নিরাপত্তা হিসাবে 'অনুরোধের ইতিহাস' ডাউনলোড করুন।
ব্যবহারকারীর গল্প + গ্রহণযোগ্যতার মানদণ্ড প্রম্পট: "নিম্নলিখিত স্পষ্ট করা প্রয়োজনকে ব্যবহারকারীর গল্পগুলিতে বিভক্ত করুন যা INVEST নীতিগুলি মেনে চলে। প্রতিটি গল্পের জন্য 3-5টি পরীক্ষাযোগ্য গ্রহণযোগ্যতা মানদণ্ড লিখুন (যখন-তখন ফর্ম্যাটে)। কমপক্ষে 2টি নেতিবাচক পরিস্থিতি যুক্ত করুন (অননুমোদিত অ্যাক্সেস, খালি ডেটা)। প্রয়োজন: [এখানে লিখতে হবে]"
এআই-এর সাথে ডিজাইনের সিদ্ধান্তের তুলনা করা
ডিজাইন একটি ধ্রুবক বাণিজ্য বন্ধ: গতি বনাম নমনীয়তা, সরলতা বনাম স্কেলেবিলিটি? AI এই ট্রেড-অফগুলিকে একটি দ্রুত স্প্রেডশীটে রাখে। উদাহরণস্বরূপ, একটি "বিজ্ঞপ্তি পাঠান" বৈশিষ্ট্যের জন্য, আপনি একটি সিঙ্ক্রোনাস (অনুরোধে পাঠান) বা অ্যাসিঙ্ক্রোনাস (সারি, পটভূমিতে পাঠান) পদ্ধতি ব্যবহার করবেন কিনা তা নিয়ে বিতর্ক করতে পারেন।
ডিজাইন তুলনা প্রম্পট: "আমি একটি 'ব্যবহারকারীকে ইমেল বিজ্ঞপ্তি পাঠান' বৈশিষ্ট্যটি ডিজাইন করছি। দুটি পদ্ধতির তুলনা করুন: (A) HTTP অনুরোধের সময় সিঙ্ক্রোনাস ডেলিভারি, (B) বার্তা সারিতে রেখে ব্যাকগ্রাউন্ডে অ্যাসিঙ্ক্রোনাস ডেলিভারি। নিম্নলিখিত অক্ষগুলিতে একটি টেবিল তৈরি করুন: ব্যবহারকারীর অপেক্ষার সময়, ত্রুটি সহনশীলতা, জটিলতা, পরিকাঠামো ডিগ্রীতে জটিলতা, জটিলতা আমি শেষ পর্যন্ত কোনটি বেছে নেব সে ক্ষেত্রে আমার পক্ষে সিদ্ধান্ত নেবেন না।"
অক্ষ
সিঙ্ক্রোনাস ট্রান্সমিশন
অ্যাসিঙ্ক্রোনাস (সারি)
ব্যবহারকারীর অপেক্ষার সময়
দীর্ঘ (চালানের জন্য অপেক্ষা)
সংক্ষিপ্ত ( অবিলম্বে ফিরে)
দোষ সহনশীলতা
কম (প্রেরণ বিস্ফোরিত হলে অনুরোধ বিস্ফোরিত হয়)
উচ্চ (পুনরায় চেষ্টা সম্ভব)
জটিলতা
কম
মাঝারি-উচ্চ (সারির অবকাঠামো)
অবকাঠামো খরচ
কম
অতিরিক্ত উপাদান প্রয়োজন
যেখানে মানানসই
কম ভলিউম, সহজ অ্যাপ্লিকেশন
উচ্চ ভলিউম, সমালোচনামূলক বিতরণ
টিপ: AI কে বলা "আমার জন্য সিদ্ধান্ত নেবেন না, শুধু আমাকে বিকল্প এবং শর্তগুলি দেখান" আপনাকে ভাবতে বাধ্য করে এবং একটি পরামর্শ অন্ধভাবে গ্রহণ করার ঝুঁকি হ্রাস করে৷ আপনার প্রসঙ্গ (আপনি) জানেন এমন ব্যক্তি দ্বারা সেরা ডিজাইনের সিদ্ধান্ত নেওয়া হয়।
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
দুর্বল: "অর্ডার সিস্টেমের জন্য একটি ডাটাবেস ডিজাইন করুন।" (ফলাফল: কোন স্কেল, কোন সম্পর্ক, কোন সীমাবদ্ধতাগুলি স্পষ্ট নয়; একটি সাধারণ, অবাস্তব স্কিম।) স্ট্রং: "একটি ছোট ই-কমার্সের জন্য একটি খসড়া ডেটা মডেল সাজেস্ট করুন। সত্তা: গ্রাহক, অর্ডার, পণ্য, অর্ডার আইটেম। সীমাবদ্ধতা: একটি অর্ডারে অনেকগুলি পণ্য থাকতে পারে; সময়ের সাথে পণ্যের মূল্য পরিবর্তিত হতে পারে, কিন্তু বর্তমান ক্রমানুসারে বর্তমান মূল্য ~0 আগের দিন ~0 হতে হবে। প্রত্যাশিত সম্পর্ক এবং কেন "আপনি সিদ্ধান্ত নিয়েছেন তা ব্যাখ্যা করুন। আপনি কিভাবে মূল্য ইতিহাস সমস্যা সমাধান করেছেন তা উল্লেখ করুন। এটি সত্তা এবং ক্ষেত্রগুলির একটি তালিকা হিসাবে দিন, কোড নয়।"
একটি শক্তিশালী প্রম্পটের পার্থক্য; স্কেল (প্রতিদিন 500 অর্ডার), ব্যবসার নিয়ম (অতীত মূল্য বজায় রাখতে হবে) এবং পছন্দসই আউটপুট বিন্যাস। একটি একক বাক্য যেমন "অতীতের মূল্য বজায় রাখতে হবে" সম্পূর্ণরূপে নকশা পরিবর্তন করে; আপনি যদি এটি নির্দিষ্ট না করেন, তাহলে AI একটি ভুল কিন্তু যুক্তিযুক্ত-সুদর্শন ডায়াগ্রাম তৈরি করবে।
মিনি কেস
কেস 1 - লুকানো অনুমান। একটি দল সরাসরি "ব্যবহারকারী প্রোফাইল ফটো আপলোড করতে পারে" অনুরোধটি কোড করে। অন্য একটি দল এআইকে অনিশ্চয়তা সম্পর্কে জিজ্ঞাসা করেছিল: "সর্বোচ্চ আকার? অনুমোদিত বিন্যাস? অনুপযুক্ত সামগ্রী নিয়ন্ত্রণ? পুরানো ছবি মুছে ফেলুন?" এটা 8 মত প্রশ্ন উত্পাদন. 20 এমবি ফাইল সার্ভার পূর্ণ হলে প্রথম দলটি উৎপাদনে সমস্যা সম্পর্কে শিখে; দ্বিতীয় দল এটি ডিজাইনে সমাধান করে।
কেস 2 - ভুল স্কেল অনুমান। এআই একটি রিপোর্টিং বৈশিষ্ট্যের জন্য একটি জটিল ক্যাশিং স্তর প্রস্তাব করে। যখন প্রকৌশলী নির্দেশ করে যে প্রকৃত ডেটা প্রতিদিন মাত্র 30টি রিপোর্ট, AI পরামর্শটিকে সরল করে। স্কেল নির্দিষ্ট না করা অপ্রয়োজনীয় জটিলতার খরচ বহন করে; উল্লেখ করা অপ্রয়োজনীয় কাজের 2 সপ্তাহ সংরক্ষণ করে।
কেস 3 — গ্রহণযোগ্যতার মানদণ্ডের ফাঁক। "পেমেন্ট ব্যর্থ হলে কি হবে?" যেহেতু প্রশ্নটি কখনই জিজ্ঞাসা করা হয়নি, একটি অর্ডার সিস্টেম ব্যর্থ অর্থপ্রদানের ক্ষেত্রে অর্ডারটিকে "নিশ্চিত" হিসাবে চিহ্নিত করবে। এআই দ্বারা উত্পন্ন নেতিবাচক পরিস্থিতির তালিকা এই ফাঁকটি ক্যাপচার করে; 1 লাইন গ্রহণযোগ্যতা মানদণ্ড প্রকৃত অর্থের ক্ষতি প্রতিরোধ করে।
সাধারণ ভুল
- কোড সরাসরি অনুরোধ পাস. অস্পষ্টতা সমাধানের আগে লেখা কোডটি দ্রুত ভুল সমস্যার সমাধান করে।
- অন্ধভাবে AI এর সাধারণ "সেরা অনুশীলন" গ্রহণ করা। আপনি যদি আপনার প্রসঙ্গ (স্কেল, বাজেট, দল) নির্দিষ্ট না করেন তবে সুপারিশটি আপনার জন্য কাজ করবে না।
- অকার্যকর প্রয়োজনীয়তা এড়িয়ে যাওয়া। গতি, নিরাপত্তা এবং স্কেল নির্দিষ্ট না হলে, নকশা অসম্পূর্ণ হবে।
- শুধু সুখী দৃশ্যকল্প সম্পর্কে চিন্তা. নেতিবাচক পরিস্থিতি যেমন খালি ডেটা, অননুমোদিত ব্যবহারকারী, ত্রুটির স্থিতি ডিজাইনে অন্তর্ভুক্ত করা উচিত।
- এআইকে সিদ্ধান্ত অর্পণ করা। এআই বিকল্প তৈরি করে; আপনি সিদ্ধান্ত নিন কোন ট্রেড-অফ আপনার ব্যবসার জন্য উপযুক্ত।
সংক্ষেপে
প্রয়োজনীয়তা বিশ্লেষণ এবং নকশা হল সেই পর্যায় যেখানে সস্তার ত্রুটি ধরা পড়ে। এখানে, AI এমন প্রশ্ন তৈরি করে যা অনিশ্চয়তা প্রকাশ করে, ব্যবহারকারীর গল্প এবং গ্রহণযোগ্যতার মানদণ্ড তৈরি করে এবং চার্ট ডিজাইন ট্রেড-অফ করে। কিন্তু প্রসঙ্গটা শুধু আপনিই জানেন; আপনার স্কেল, বাজেট, দল এবং আইনি সীমাবদ্ধতার উপর ভিত্তি করে AI এর সুপারিশগুলি ফিল্টার করা এবং চূড়ান্ত সিদ্ধান্ত নেওয়া আপনার কাজ। "আমার জন্য সিদ্ধান্ত নেবেন না, আমাকে বিকল্পগুলি দেখান" এর শৃঙ্খলা আরও ভাল ডিজাইন এবং গভীর শিক্ষার দিকে নিয়ে যায়।
আবেদন টাস্ক
আপনার প্রসঙ্গ থেকে একটি এক-বাক্য কাজের অনুরোধ চয়ন করুন। প্রথমে, AI-তে অস্পষ্টতা প্রম্পট প্রয়োগ করুন এবং আপনার বাস্তব সীমাবদ্ধতার সাথে প্রশ্নের উত্তর দিন। তারপরে স্পষ্ট করা প্রয়োজনটিকে কমপক্ষে 2টি ব্যবহারকারীর গল্প এবং প্রতিটির জন্য 3টি গ্রহণযোগ্যতার মানদণ্ডে অনুবাদ করুন; কমপক্ষে 1টি নেতিবাচক পরিস্থিতি অন্তর্ভুক্ত করুন। অবশেষে, একটি নকশা সিদ্ধান্তের জন্য একটি তুলনা টেবিল তৈরি করুন (সিঙ্ক্রোনাস/অসিঙ্ক্রোনাস, টেবিল গঠন, ইত্যাদি) এবং 2 বাক্যে আপনার নিজের সিদ্ধান্ত লিখুন।
চেকলিস্ট
- কোডে অনুরোধটি পাস করার আগে আমি প্রশ্ন হিসাবে অস্পষ্টতাগুলি সরিয়ে দিয়েছি।
- [ ] আমি AI কে প্রসঙ্গ (স্কেল, কর্তৃত্ব, কর্মক্ষমতা, আইনি সীমাবদ্ধতা) দিয়েছি।
- [ ] আমি ব্যবহারকারীর গল্পগুলিকে পরীক্ষাযোগ্য গ্রহণযোগ্যতার মানদণ্ডে ভেঙে দিয়েছি।
- [ ] আমি অন্তত একটি ডাউনসাইড/এজ দৃশ্যকল্প যোগ করেছি।
- [ ] আমি ট্রেড-অফ টেবিলের সাথে ডিজাইনের সিদ্ধান্তের মূল্যায়ন করেছি।
- [ ] আমি আমার প্রেক্ষাপটের উপর ভিত্তি করে চূড়ান্ত সিদ্ধান্ত নিয়েছিলাম, আমি এটি এআই-এর উপর ছেড়ে দেইনি।