অধিকাংশ ইঞ্জিনিয়ার AI ব্যবহার করেন। খুব কম ইঞ্জিনিয়ার AI-এর সাথে কাজ করতে পারেন।
এখন অধিকাংশ সফটওয়্যার ইঞ্জিনিয়ার AI ব্যবহার করেন।
তারা এটি ডিবাগিং, টেস্ট লেখা বা SQL কুয়েরি জেনারেট করার জন্য ব্যবহার করেন। AI ব্যবহার করা সহজ। কিন্তু AI-এর সাহায্যে ইঞ্জিনিয়ারিং করা অনেক বেশি কঠিন।
রিয়েল রিপোজিটরি টাস্কগুলোতে AI ব্যবহার করার সময় আমি একটি সমস্যা লক্ষ্য করেছি। একটি ভুল পরিবর্তন কেবল খারাপ আউটপুটই দেয় না, বরং এটি আপনার স্ট্রাকচার, আপনার টেস্ট এবং ভবিষ্যতে কোড রক্ষণাবেক্ষণ করার ক্ষমতাকেও (maintainability) নষ্ট করে দেয়।
কোড জেনারেশনের অংশটি সহজ। একটি সাধারণ প্রম্পট দ্রুত কোড তৈরি করে দেয়। প্রথম দেখায় এটি পরিষ্কার মনে হয়।
কার্যকর ফলাফল তখনই আসে যখন আপনি প্রথমে সেই বিরক্তিকর কাজগুলো করেন। আপনাকে অবশ্যই:
- প্রয়োজনীয়তা (requirement) সংজ্ঞায়িত করতে হবে।
- কাজের পরিধি (scope) সীমিত করতে হবে।
- সীমাবদ্ধতাগুলো (constraints) ব্যাখ্যা করতে হবে।
- পরিবর্তনটি কীভাবে যাচাই করা হবে তা নির্ধারণ করতে হবে।
দক্ষতা প্রম্পট দেওয়ার মধ্যে নয়। দক্ষতা হলো কাজটিকে সঠিক রূপ দেওয়া (shaping the work)।
AI আউটপুটের গতি বাড়ায়। এটি যাচাইকরণের (verification) গুণমান বাড়ায় না। যদি কোড জেনারেট করা দ্রুততর হয়, তবে অস্পষ্ট প্রয়োজনীয়তাগুলো আরও বেশি ব্যয়বহুল হয়ে ওঠে। দুর্বল রিভিউ আরও বিপজ্জনক হয়ে ওঠে।
AI আপনার বিদ্যমান ইঞ্জিনিয়ারিং লুপকে আরও বহুগুণ বাড়িয়ে দেয়।
যদি প্রয়োজনীয়তা অস্পষ্ট হয়, AI তবুও কিছু না কিছু তৈরি করবে। যদি আর্কিটেকচার অগোছালো হয়, AI সেই অগোছালো ভাবটিই কপি করবে। আপনি যদি আউটপুট রিভিউ করতে না পারেন, তবে গতি একটি ঝুঁকির কারণ হয়ে দাঁড়াবে।
প্রশ্নটি এটি নয় যে AI ইঞ্জিনিয়ারদের প্রতিস্থাপন করবে কি না। প্রশ্ন হলো: যখন কোড পাওয়া সস্তা হয়ে যাবে, তখন ইঞ্জিনিয়ারিংয়ের কোন অংশগুলো আরও গুরুত্বপূর্ণ হয়ে উঠবে?
আমার উত্তর: ইমপ্লিমেন্টেশনের আগে স্পষ্টভাবে চিন্তা করা।
AI পুরনো পরামর্শগুলোকে আরও গুরুত্বপূর্ণ করে তুলেছে:
- দুবার ভাবুন, একবার কোড করুন।
- AI-কে কিছু তৈরি করতে বলার আগে সমস্যাটি সংজ্ঞায়িত করুন।
- কোনো উত্তর গ্রহণ করার আগে ট্রেডঅফ (tradeoffs) যাচাই করুন।
- মার্জ করার আগে আচরণ (behavior) যাচাই করুন।
ইঞ্জিনিয়ারিং এখন কোড লেখা থেকে সরে এসে সঠিক পরিবর্তনটি তৈরি করার (shaping the right change) দিকে ধাবিত হচ্ছে।
AI-কে একজন সহযোগীর মতো বিবেচনা করুন যার জন্য একটি কাঠামোর প্রয়োজন। একটি ভালো লুপ দেখতে এমন হওয়া উচিত: Requirement → Gaps → Plan → Small change → Review → Checks → Notes.
প্রকৃত ইঞ্জিনিয়ারিং মানে কেবল কোড তৈরি করা নয়। এটি হলো নির্ভরযোগ্য পরিবর্তন (reliable change) নিশ্চিত করা।
সুবিধাটি সবচেয়ে বেশি কোড জেনারেট করার মধ্যে নেই। সুবিধাটি হলো কী তৈরি করতে হবে এবং এটি কীভাবে আপনার সিস্টেমের সাথে খাপ খায় তা জানা।
যে ইঞ্জিনিয়াররা সফল হবেন তারা দ্রুততম প্রম্পট রাইটার হবেন না। তারা হবেন তারা যারা এই টুলের চারপাশে আরও উন্নত ওয়ার্কফ্লো (workflow) ডিজাইন করতে পারবেন।
Source: https://dev.to/jeelvankhede/most-engineers-use-ai-few-engineer-with-it-3pd
Optional learning community: https://t.me/GyaanSetuAi