লাভ:
- সফ্টওয়্যার ডেভেলপমেন্ট লাইফসাইকেলে এআই কোথায় প্রকৃত গতি প্রদান করে এবং যেখানে সিদ্ধান্ত এবং দায়িত্ব প্রকৌশলীর কাছে থাকে তা পার্থক্য করার ক্ষমতা
- একটি তিন-স্তর বিশিষ্ট প্রকৌশল শৃঙ্খলা প্রয়োগ করার ক্ষমতা যা সংকলন, পরীক্ষা এবং পর্যালোচনার মাধ্যমে উত্পাদিত প্রতিটি কোড এবং নকশা যাচাই করে।
- গোপনীয় সোর্স কোড, শংসাপত্র এবং গ্রাহকের ডেটা ভাগ না করেই AI ব্যবহার করার জন্য প্রসঙ্গ পরিষ্কার করার অভ্যাস করুন
আপনি যখন কম্পিউটার প্রকৌশলীর দিনের দিকে তাকান, বেশিরভাগ দলে চিত্রটি একই রকম: একটি ব্যবসায়িক অনুরোধ বোঝা, ডিজাইন করা, কোড লেখা, অন্য কারও কোড পড়া, ডিবাগিং (কোনও প্রোগ্রাম কেন ভুলভাবে কাজ করছে তা খুঁজে বের করার প্রক্রিয়া এবং এটি ঠিক করার প্রক্রিয়া), পরীক্ষা লেখা, ডকুমেন্টেশন প্রস্তুত করা, কোড পর্যালোচনা করা এবং মিটিংয়ে অংশ নেওয়া। অন্য কথায়, প্রকৃত "ইঞ্জিনিয়ারিং জাজমেন্ট" এর জন্য নিবেদিত সময়, অর্থাৎ, একটি সমাধান সঠিক, নিরাপদ এবং টেকসই কিনা, পুনরাবৃত্তিমূলক কাজের অধীনে পিষ্ট হয়। এখানেই কৃত্রিম বুদ্ধিমত্তা (সংক্ষেপে AI; সফ্টওয়্যার যা টেক্সট এবং কোডে একটি বড় ভাষার মডেলের সাথে কাজ করে) কার্যকর হয়। AI আপনার জন্য সিদ্ধান্ত নেয় না; এটি আপনাকে সিদ্ধান্তের জন্য প্রস্তুত করে, একটি কোড কঙ্কাল তৈরি করে, বাগটি সংকুচিত করে এবং একটি কাজ করা খসড়া আপনার সামনে রাখে। এই মডিউল জুড়ে আমরা AI কে "স্বয়ংক্রিয় প্রোগ্রামার" হিসাবে নয় বরং একটি সুশৃঙ্খল জুড়ি প্রোগ্রামিং অংশীদার হিসাবে রাখব যার আউটপুট প্রতিবার সংকলিত, পরীক্ষিত এবং পর্যালোচনা করা হয়।
এই প্রথম ইউনিটে, আমরা তিনটি বিষয় স্পষ্ট করি: সফ্টওয়্যার বিকাশের জীবনচক্রের কোন পর্যায়ে (একটি সফ্টওয়্যার ধারণা থেকে উৎপাদনের পর্যায়ে যায়: বিশ্লেষণ, নকশা, কোডিং, পরীক্ষা, স্থাপনা, রক্ষণাবেক্ষণ) এআই কি প্রকৃত মূল্য যোগ করে; কোন সিদ্ধান্ত কঠোরভাবে ইঞ্জিনিয়ারের সাথে থাকা উচিত; এবং এটি করার সময় আপনাকে অবশ্যই যে যাচাইকরণ এবং গোপনীয়তা শৃঙ্খলা মেনে চলতে হবে। এই ছাদটি সঠিকভাবে ইনস্টল না করে, পরবর্তী ইউনিটগুলিতে কৌশলগুলি বিপজ্জনক হয়ে উঠতে পারে; কারণ সফ্টওয়্যারটিতে একটি ত্রুটি একই সময়ে লক্ষ লক্ষ ব্যবহারকারীর কাছে পৌঁছায় এবং এটি একটি সুরক্ষা দুর্বলতায় পরিণত হতে পারে।
ধারণা: হ্যালুসিনেশন: AI এর একটি পদ্ধতি, লাইব্রেরি, API, বা আচরণের বিশ্বাসযোগ্য বানোয়াট যা আসলে বিদ্যমান নেই। প্রসঙ্গ: আপনি AI-তে যে ইনপুট দেন (কোড, ত্রুটি বার্তা, প্রয়োজনীয়তা, সীমাবদ্ধতা)। যাচাইকরণ: একটি স্বাধীন উপায়ে আউটপুট পরীক্ষা করা হচ্ছে (সংকলন, পরীক্ষা, ডকুমেন্টেশন)। এই তিনটি ধারণা সমগ্র মডিউলের মেরুদণ্ড।
কোন ব্যবসায় এআই অ্যাক্সিলারেটর, কোন ব্যবসায় এটি ঝুঁকিপূর্ণ?
সফ্টওয়্যার কাজগুলি ফলাফলের পরিপ্রেক্ষিতে একটি দ্বি-মুখী বর্ণালীতে পড়ে। এক প্রান্তে রয়েছে বিপরীতমুখী, কম ঝুঁকিপূর্ণ প্রস্তুতিমূলক কাজ; অন্য প্রান্তে, এমন কিছু কঠিন কাজ আছে যা প্রযোজনা পরিবেশে প্রবেশ করে এবং ডেটা ক্ষতি, নিরাপত্তা দুর্বলতা বা বাধা সৃষ্টি করতে পারে। আপনি এই বর্ণালীতে কোথায় দাঁড়িয়েছেন তার উপর নির্ভর করে AI এর মান পরিবর্তিত হয়।
ব্যবসার ধরন
এআই অবদান
ইঞ্জিনিয়ারের ভূমিকা
কোড কঙ্কাল/বয়লারপ্লেট
পুনরাবৃত্তিমূলক কাঠামোর দ্রুত প্রজন্ম
যুক্তি এবং প্রান্ত স্থিতি নিয়ন্ত্রণ
ডিবাগিং
হাইপোথিসিস এবং সম্ভাব্য কারণ তালিকা
প্রজনন এবং মূল কারণ নিশ্চিতকরণ
লেখার পরীক্ষা
পরীক্ষার খসড়া এবং দৃশ্যকল্প তৈরি
অর্থপূর্ণ দাবী এবং সুযোগ পরীক্ষা
রিফ্যাক্টরিং
রিফ্যাক্টরিং প্রস্তাব
পরীক্ষার মাধ্যমে আচরণ বজায় রাখা
ডকুমেন্টেশন
প্রথম খসড়া এবং কাঠামো
কোডের বিরুদ্ধে সঠিকতা পরীক্ষা
স্থাপত্য/নিরাপত্তা সিদ্ধান্ত
বিকল্প এবং সুবিধা এবং অসুবিধা তালিকা
চূড়ান্ত সিদ্ধান্ত এবং দায়িত্ব
নিয়মটি সহজ: একটি AI আউটপুটের ঝুঁকি যদি সেই আউটপুটটি ত্রুটি করে তবে ক্ষতির সমান। একটি পরিবর্তনশীল নাম ভুলভাবে প্রস্তাব করা নিরীহ; অনুপযুক্ত প্রমাণীকরণ (ব্যবহারকারী আসলেই যাকে তারা দাবি করে তা পরীক্ষা করা) পুরো সিস্টেমটিকে দুর্বল করে তোলে। তাই আউটপুট ব্যবহার করার আগে জিজ্ঞাসা করার প্রথম প্রশ্ন হল: "এটি ভুল হলে কি হবে এবং কে এটি লক্ষ্য করে এবং কখন?"
সতর্কতা: AI সাবলীল এবং আত্মবিশ্বাসী কোড তৈরি করে। সাবলীলতা সঠিকতার কোন গ্যারান্টি নয়। একটি ভাষা মডেল বিশ্বাসযোগ্যভাবে একটি ফাংশন নাম তৈরি করতে পারে যা আসলে বিদ্যমান নেই, একটি ভুল পরামিতি ক্রম, বা এমনকি একটি অনিরাপদ প্যাটার্ন। সফ্টওয়্যারে, এটি কাগজে থাকে না; এটি কম্পাইল, রান, এবং উত্পাদন বিস্ফোরণ.
সিদ্ধান্ত যা ইঞ্জিনিয়ারের উপর ছেড়ে দেওয়া উচিত
কিছু সিদ্ধান্ত কখনই সম্পূর্ণ স্বয়ংক্রিয় হওয়া উচিত নয়; প্রযুক্তিগত, আইনি এবং নৈতিক ঝুঁকি বহন করে:
- উত্পাদনের জন্য অনুমোদন: উত্পাদনে একটি কোড প্রকাশ এবং এর জন্য দায়িত্ব।
- নিরাপত্তা এবং স্থাপত্য: ব্যয়বহুল সিদ্ধান্ত যেমন প্রমাণীকরণ, অনুমোদন, এনক্রিপশন এবং ডেটা মডেল।
- লাইসেন্স এবং কপিরাইট: বাণিজ্যিক পণ্য এবং লাইসেন্স সম্মতিতে উত্পাদিত কোডের ব্যবহারযোগ্যতা।
- গোপনীয় ডেটা নিয়ে কাজ করা: গ্রাহকের ডেটা, সোর্স কোড গোপনীয়তা এবং পরিচয় তথ্যের সাথে লেনদেন।
সতর্কতা: এমনকি যদি AI বলে "এই কোডটি নিরাপদ এবং উৎপাদনের জন্য প্রস্তুত", নিরাপত্তা পরীক্ষা ছাড়াই এটি গ্রহণ করা, কোড পর্যালোচনা এবং বাস্তব লোডের অধীনে বৈধতা গ্রহণযোগ্য নয়। নিরাপত্তা-সমালোচনামূলক কাজে, AI আউটপুট কখনই একজন দক্ষ প্রকৌশলীর অনুমোদনের বিকল্প নয়; যে কোনো আউটপুট যা সিদ্ধান্তের দিকে নিয়ে যায় তা বাস্তবায়নের আগে স্বতন্ত্রভাবে যাচাই এবং অনুমোদিত ইঞ্জিনিয়ার দ্বারা অনুমোদিত হতে হবে।
যাচাইকরণ শৃঙ্খলা: তিন-স্তর নিয়ন্ত্রণ
AI আউটপুট অন্ধভাবে ব্যবহার না করে একজন সিনিয়র পর্যালোচকের মতো ব্যবহার করতে নিয়ন্ত্রণের তিনটি স্তর প্রয়োগ করুন। এটি হল মৌলিক রিফ্লেক্স যা আমরা মডিউল জুড়ে পুনরাবৃত্তি করব।
- সংকলন এবং স্ট্যাটিক চেকিং: কোডটি কি আসলে কম্পাইল/চালিত হয়? টাইপ ত্রুটি, অব্যবহৃত ভেরিয়েবল, অস্তিত্বহীন API আছে? স্ট্যাটিক অ্যানালাইসিস টুল (যে টুলটি চালানো ছাড়াই কোড পরীক্ষা করে) কী বলে?
- স্বাধীন প্রজনন (পরীক্ষা): ছোট, পরিচিত ইনপুট দিয়ে কোড চালান এবং দেখুন আপনি প্রত্যাশিত আউটপুট পান কিনা। প্রান্তের ক্ষেত্রে চেষ্টা করুন (নাল, শূন্য, নেতিবাচক, বিশাল)।
- উত্স যাচাইকরণ: প্রতিটি API, লাইব্রেরি সংস্করণ এবং ভাষা বৈশিষ্ট্য যা এআই ব্যবহার করে তা অফিসিয়াল ডকুমেন্টেশন থেকে যাচাই করা উচিত।
যাচাইকরণ প্রম্পট (আউটপুট পরীক্ষা করা সহজ করে তোলে): "আপনার কোডে আপনি যে সমস্ত বাহ্যিক লাইব্রেরি, পদ্ধতি এবং ভাষা বৈশিষ্ট্যগুলি ব্যবহার করেন তা তালিকাভুক্ত করুন। প্রতিটির জন্য, এটি কোন সংস্করণে উপলব্ধ তা নির্দেশ করুন এবং এটিকে 'ডকুমেন্টেশন থেকে যাচাই করা আবশ্যক' লেবেল করুন। আপনি নিশ্চিত নন এমন কোনো API তৈরি করবেন না; যদি আপনি নিশ্চিত না হন, তবে স্পষ্টভাবে লিখুন 'কোনও তালিকাভুক্ত তালিকা আপনার কাছে নিশ্চিত নয়'।
আপনার নিজের কোড প্রম্পটের সমালোচনা করুন: "আপনি এইমাত্র যে কোডটি লিখেছেন তা সমালোচনামূলকভাবে দেখুন, একজন সিনিয়র ইঞ্জিনিয়ারের মতো যিনি আপনাকে নিয়োগ দিয়েছেন। এই তিনটি শিরোনামের অধীনে কংক্রিট আইটেম দিন: (1) লজিক/এজ কেস ত্রুটি, (2) নিরাপত্তা ঝুঁকি, (3) কর্মক্ষমতা বা পঠনযোগ্যতা সমস্যা। প্রতিটি আইটেমের জন্য, 'কেন সমস্যা' লিখুন এবং 'কোনও সমস্যা খুঁজে বের করার পরামর্শ দেওয়া হলে' বলুন; এটি অলঙ্কৃত করার চেষ্টা করবেন না।"
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
দুর্বল:"আমাকে একটি ব্যবহারকারী প্রমাণীকরণ ফাংশন লিখুন।"(ফলাফল: কোন ভাষা, কোন নিয়ম, কোন ত্রুটি আচরণ; জেনেরিক কোড, প্রায়শই অনিরাপদ বা প্রেক্ষাপটের বাইরে।)STRONG:"পাইথন 3.11-এর জন্য একটি ইমেল যাচাইকরণ ফাংশন লিখুন। ইনপুট: স্ট্রিং। আউটপুট: সত্য যদি বৈধ হয়, অন্যথায়, এফসি-রিং, অন্যথায়, অন্যথায়, অন্যথায়; সম্মতি প্রয়োজন, বাহ্যিক লাইব্রেরি ব্যবহার করবেন না একটি 5-নমুনা পরীক্ষার নীচে: বৈধ, খালি, নেই '@', শুধুমাত্র স্পেস রয়েছে।"
পার্থক্যটি প্রসঙ্গে। শক্তিশালী প্রম্পট; এতে ভাষা, সংস্করণ, ইনপুট-আউটপুট চুক্তি, সীমাবদ্ধতা এবং পরীক্ষার প্রত্যাশা অন্তর্ভুক্ত রয়েছে। এই একক শৃঙ্খলা হ্যালুসিনেশন এবং অনিরাপদ কোডের ঝুঁকি অনেকাংশে কমিয়ে দেয়।
মিনি কেস
কেস 1 - কনট্রিভড পদ্ধতি। একজন ডেভেলপার এআই থেকে শুনেছেন যে তারিখের লাইব্রেরিতে date.addBusinessDays(5) নামে একটি পদ্ধতি আছে এবং এটি একটি আত্মবিশ্বাসীভাবে ব্যাখ্যা করা হয়েছে। ডকুমেন্টেশনের দিকে তাকিয়ে, তিনি দেখেন যে এমন কোনও পদ্ধতি নেই, সঠিক উপায় হল একটি ম্যানুয়াল লুপ। হ্যালুসিনেশনটি 10 মিনিটের যাচাইকরণের মাধ্যমে উৎপাদনে যাওয়ার আগে ক্যাপচার করা হয়।
কেস 2 — এজ স্টেট লস। AI একটি "গ্যালকুলেট অ্যাভারেজ" ফাংশন তৈরি করে; 1,000 সারি ডেটা দিয়ে পরীক্ষা করা হলে এটি কাজ করে। যাইহোক, যখন তালিকা খালি থাকে, এটি শূন্য ত্রুটি দ্বারা বিভাজন দেয়। যেহেতু প্রকৌশলী খালি ইনপুট পরীক্ষা যোগ করেছেন, তাই লাইভ হওয়ার আগে তিনি ত্রুটিটি দেখেন এবং ঠিক করেন। একটি একক প্রান্ত অবস্থা পরীক্ষা 3am এ একটি উত্পাদন বিপদাশঙ্কা প্রতিরোধ করে।
কেস 3 - গোপনীয়তার ঝুঁকি। একজন বিশেষজ্ঞ একটি প্রকৃত ডাটাবেস সংযোগ স্ট্রিং এবং API কী সহ একটি পাবলিক টুলে একটি ফাইল পেস্ট করতে চলেছেন৷ প্রতিষ্ঠানের নীতি মনে রাখে; এটি <REDACTED> এর সাথে গোপনীয়তা প্রতিস্থাপন করে, কোডটিকে একটি প্রতিনিধি উদাহরণে হ্রাস করে এবং এটির জন্য জিজ্ঞাসা করে। এভাবে ৫ মিনিটে সাহায্য পেলেও তার পরিচয় বের হয় না।
গোপন কোড এবং পরিচয় তথ্য নিয়ে কাজ করার নীতি
সফটওয়্যারের সবচেয়ে সংবেদনশীল অংশ; সোর্স কোড গোপনীয়তা, পরিচয় তথ্য (API কী, পাসওয়ার্ড, টোকেন) এবং গ্রাহক/ব্যক্তিগত ডেটা। মৌলিক নীতি: ভাগ করার আগে পরিষ্কার করুন, সম্ভব হলে একটি প্রতিনিধি উদাহরণ সহ সমস্যার সারাংশ জিজ্ঞাসা করুন।
বেনামী প্রম্পট প্যাটার্ন: "নিম্নলিখিত ফাংশনে একটি ত্রুটি রয়েছে। আমি প্রকৃত ব্যবসায়িক যুক্তি এবং লুকানো ধ্রুবকগুলি প্রতিনিধি মানের সাথে প্রতিস্থাপিত করেছি (API কী, টেবিলের নাম, ক্ষেত্রের নাম জেনেরিক)। সমস্যা: আমি ইনপুট X-এ Y ত্রুটি পেয়েছি। শুধু এই প্রতিনিধি কোডে যুক্তি ত্রুটি খুঁজে বের করুন এবং সংশোধন করা কোড ব্যাখ্যা করুন। [প্রতিনিধিত্বমূলক কোড]"
টিপ: সন্দেহ থাকলে, এই পরীক্ষাটি নিন: "আমি যদি একটি ফোরামে প্রকাশ্যে এটি লিখি তবে আমার সংস্থা কি সমস্যায় পড়বে?" উত্তরটি অস্পষ্ট হলেও প্রথমে পরিষ্কার করুন। পরে ফাঁস তাড়া করার চেয়ে রিসেট করা সবসময় সস্তা।
সাধারণ ভুল
- কম্পাইল/পরীক্ষা ছাড়াই আউটপুট ব্যবহার করা। "এআই লিখেছেন" একটি ন্যায্যতা নয়; কোডের প্রতিটি অংশ এটি চালানোর মাধ্যমে যাচাই করা হয়।
- প্রসঙ্গ ছাড়াই অনুরোধ করা। যদি ভাষা, সংস্করণ, ইনপুট-আউটপুট এবং সীমাবদ্ধতা না দেওয়া হয়, কোডটি জেনেরিক হয়ে যায় এবং প্রায়শই অনিরাপদ হয়।
- চিন্তা না করে গোপন তথ্য শেয়ার করা। API কী, পাসওয়ার্ড এবং গ্রাহকের ডেটা সাফ না করে প্রকাশ করা উচিত নয়।
- নির্ভুলতার সাথে সুনির্দিষ্ট ভাষা বিভ্রান্তিকর। AI যত বেশি আত্মবিশ্বাসী কথা বলে, আপনার তত বেশি সতর্ক হওয়া উচিত; আত্মবিশ্বাসী টোন প্রমাণ নয়।
- এআইকে সিদ্ধান্ত অর্পণ করা। উৎপাদন, নিরাপত্তা এবং আর্কিটেকচারে রাখার সিদ্ধান্ত প্রকৌশলীর হাতেই থাকে; AI শুধুমাত্র উপকরণ উত্পাদন করে।
সংক্ষেপে
AI সফ্টওয়্যার কাজের পুনরাবৃত্তিমূলক এবং সময়সাপেক্ষ অংশগুলির গতি বাড়ায়: কঙ্কাল কোড, পরীক্ষার খসড়া, বাগ সংকীর্ণ, ডকুমেন্টেশন। তবে সিদ্ধান্ত ও দায়িত্ব প্রকৌশলীর ওপরই থেকে যায়। প্রতিটি আউটপুট নিয়ন্ত্রণের তিনটি স্তর পাস করতে হবে (কম্পাইল/স্ট্যাটিক, টেস্টিং, উত্স)। প্রসঙ্গ সহ প্রম্পট লেখা এবং লুকানো তথ্য পরিষ্কার করা দুটি মূল অভ্যাস যা আমরা এই মডিউলের প্রতিটি ইউনিটে পুনরাবৃত্তি করব। আপনি যখন শৃঙ্খলার সাথে AI ব্যবহার করেন, আপনি গতি অর্জন করেন; আপনি যখন শৃঙ্খলা ছাড়াই এটি ব্যবহার করেন, তখন আপনি উত্পাদনে ত্রুটি এবং দুর্বলতা বহন করেন।
আবেদন টাস্ক
আপনার নিজের কাজ বা একটি কাল্পনিক প্রকল্প থেকে একটি ছোট কোডিং কাজ চয়ন করুন (যেমন একটি বৈধতা ফাংশন)। প্রথমে একটি দুর্বল প্রম্পট লিখুন এবং আউটপুট পান। তারপর এই ইউনিট থেকে শক্তিশালী প্রম্পট প্যাটার্ন প্রয়োগ করুন: ভাষা/সংস্করণ, ইনপুট-আউটপুট চুক্তি, সীমাবদ্ধতা এবং পরীক্ষার প্রত্যাশা যোগ করুন। দুটি প্রিন্টআউট পাশাপাশি রাখুন এবং পার্থক্য লিখুন। তারপরে শক্তিশালী আউটপুটটি কম্পাইল করুন এবং কমপক্ষে তিনটি প্রান্তের ক্ষেত্রে (নাল, শূন্য/নেতিবাচক, অপ্রত্যাশিত বিন্যাস) দিয়ে এটি পরীক্ষা করুন এবং কোন পরীক্ষায় আপনি কী পেয়েছেন তা নোট করুন।
চেকলিস্ট
- [ ] আমি প্রম্পটে ভাষা, সংস্করণ এবং ইনপুট-আউটপুট চুক্তি যোগ করেছি।
- [ ] আমি লিখেছিলাম "এটি তৈরি করবেন না, আপনি যদি নিশ্চিত না হন তবে আমাকে বলুন" এবং সুযোগের সীমাবদ্ধতা।
- আমি কোড কম্পাইল/চালিয়েছি, স্ট্যাটিক সতর্কতার জন্য চেক করেছি।
- আমি কমপক্ষে তিনটি প্রান্তের ক্ষেত্রে পরীক্ষা করেছি।
- [ ] আমি অফিসিয়াল ডকুমেন্টেশন থেকে ব্যবহৃত API গুলি যাচাই করেছি৷
- [ ] আমি কোনো গোপন কোড/প্রমাণপত্র বা ব্যবহৃত এন্টারপ্রাইজ টুল সাফ করেছি।
- [ ] আমি নিশ্চিত করেছি যে উত্পাদন এবং নিরাপত্তা দেওয়ার সিদ্ধান্ত মানুষের সাথে রয়ে গেছে।