Ajker Patrika

কোডের চেয়ে বড় সমস্যা সমাধানের দক্ষতা, এআই যুগে বদলে যাচ্ছে ইঞ্জিনিয়ারের সংজ্ঞা

রানা শাকুর
কোডের চেয়ে বড় সমস্যা সমাধানের দক্ষতা, এআই যুগে বদলে যাচ্ছে ইঞ্জিনিয়ারের সংজ্ঞা
এআই যুগে ইঞ্জিনিয়ারদের প্রয়োজনীয়তা কি ফুরিয়ে যাচ্ছে? ছবি: মাইক্রোসফটের সৌজন্যে

প্রযুক্তি দুনিয়ায় একজন ইঞ্জিনিয়ারের দক্ষতা বলতে আমরা সাধারণত বুঝি নির্দিষ্ট কোনো টেকনোলজি স্ট্যাকে তাঁর পারদর্শিতা। কেউ ব্যাকএন্ডে দক্ষ, কেউ ফ্রন্টএন্ডে, কেউ মোবাইল অ্যাপ্লিকেশনে, আবার কেউ এআই বা ডেভঅপসে। দীর্ঘদিন ধরে সফটওয়্যার ইঞ্জিনিয়ারিংয়ের কাজের কাঠামোও অনেকটা এভাবেই গড়ে উঠেছে—প্রতিটি স্তরের জন্য আলাদা বিশেষজ্ঞ।

কিন্তু কৃত্রিম বুদ্ধিমত্তা বা এআই দ্রুত বদলে দিচ্ছে সেই চিত্র। এখন প্রশ্ন উঠছে, আমরা কি ইঞ্জিনিয়ারদের এখনও একটি নির্দিষ্ট টেকনোলজি স্ট্যাকের জন্য তৈরি করছি, নাকি তাঁদের এমনভাবে প্রস্তুত করা উচিত, যাতে তাঁরা একটি সম্পূর্ণ প্রোডাক্টের ফলাফল বা ‘আউটকাম’-এর দায়িত্ব নিতে পারেন?

সম্প্রতি এক বন্ধু অস্ট্রেলিয়ার একজন ক্লায়েন্টের সঙ্গে তাঁর কথোপকথনের একটি অংশ শেয়ার করছিলেন। ক্লায়েন্টের চাহিদাটি বেশ তাৎপর্যপূর্ণ। তিনি বলেছিলেন, তাঁদের এমন একজন সিনিয়র ইঞ্জিনিয়ার প্রয়োজন, যিনি ব্যাকএন্ড, ফ্রন্টএন্ড, মোবাইল এবং এআই—সবকিছু সামলে পুরো প্রোডাক্ট ডেলিভার করতে পারবেন।

আমার বন্ধুর স্বাভাবিক প্রতিক্রিয়াই ছিল প্রচলিত পদ্ধতির মতো। একজন লিড থাকবেন, এরপর প্রয়োজন অনুযায়ী মোবাইল, এআই ও ডেভঅপসের বিশেষজ্ঞ যুক্ত করা হবে। কিন্তু ক্লায়েন্টের উত্তর ছিল সরাসরি—‘না, আমাদের একজন মানুষই দরকার।’

এখানে বিষয়টি একটু গভীরভাবে দেখা দরকার। ক্লায়েন্ট এমন কাউকে খুঁজছিলেন না, যিনি ছয়টি আলাদা প্রযুক্তিগত ক্ষেত্রে বিশ্বমানের বিশেষজ্ঞ। তাঁর প্রয়োজন ছিল এমন একজন ইঞ্জিনিয়ার, যিনি আধুনিক এআই টুল ব্যবহার করে বিভিন্ন টেকনোলজি স্ট্যাকের মধ্যে দ্রুত কাজ করতে পারবেন, এক সিস্টেমের সঙ্গে অন্য সিস্টেমের সমন্বয় করতে পারবেন এবং শেষ পর্যন্ত পুরো প্রোডাক্টের ফলাফলের দায়িত্ব নিতে পারবেন।

এটি সফটওয়্যার ইঞ্জিনিয়ারিংয়ের ভবিষ্যৎ নিয়ে একটি গুরুত্বপূর্ণ ইঙ্গিত দেয়।

একটি সমস্যার সমাধানে অনেক স্তরের কাজ

আমার নিজের ম্যানেজমেন্ট ইনফরমেশন সিস্টেম বা এমআইএস নিয়ে কাজের অভিজ্ঞতার সঙ্গেও বিষয়টি বেশ মিলে যায়। একটি ব্যবসায়িক সমস্যা সমাধান করতে গিয়ে প্রায়ই একই সপ্তাহে আমাকে একাধিক স্তরে কাজ করতে হয়। শুরুটা হয় প্রয়োজন বা রিকোয়ারমেন্ট বোঝা দিয়ে। এরপর আর্কিটেকচার ঠিক করা, ডেটাবেইস তৈরি বা পরিবর্তন, এপিআই তৈরি, ইউজার ইন্টারফেস বা ইউআই নিয়ে কাজ, বিভিন্ন সিস্টেমের ইন্টিগ্রেশন, নিরাপত্তা নিশ্চিত করা, পারফরম্যান্স পরীক্ষা, ডিপ্লয়মেন্ট এবং শেষ পর্যন্ত সমস্যার সমাধান—সবকিছুই একই কাজের অংশ হয়ে যায়।

অর্থাৎ বাস্তব একটি প্রোডাক্ট তৈরির কাজকে শুধু ‘ব্যাকএন্ড ডেভেলপমেন্ট’ বা ‘ফ্রন্টএন্ড ডেভেলপমেন্ট’ দিয়ে আলাদা করে দেখা সব সময় সম্ভব হয় না। একজন ব্যবহারকারী একটি ব্যাকএন্ড, একটি ডেটাবেইস বা একটি এপিআই কিনছেন না। তিনি একটি সমাধান চান।

আর এখানেই এআই বড় পরিবর্তন আনছে।

এআই এখন বিভিন্ন টেকনোলজির মধ্যে কাজ করার সময়কে অনেক কমিয়ে দিতে পারে। নতুন কোনো ফ্রেমওয়ার্ক সম্পর্কে ধারণা নিতে, কোডের একটি অংশ তৈরি করতে টেক্সট লিখতে, ডকুমেন্টেশন বুঝতে কিংবা কোনো এরর বা লগ বিশ্লেষণ করতে একজন ইঞ্জিনিয়ার এআইয়ের সহায়তা নিতে পারেন। ফলে একজন দক্ষ ইঞ্জিনিয়ার আগের তুলনায় অনেক বড় পরিসরের কাজ সামলাতে পারছেন।

কিন্তু এআই কি ইঞ্জিনিয়ারের প্রয়োজন কমিয়ে দিচ্ছে?

এআই কোড লিখতে পারে—কিন্তু সিস্টেমের দায়িত্ব নিতে পারে না। এআই একটি ডেটাবেইস মাইগ্রেশনের কোড তৈরি করে দিতে পারে। কিন্তু সেই মাইগ্রেশন প্রোডাকশন ডেটার জন্য নিরাপদ কি না, কোনো রেকর্ড নষ্ট হওয়ার ঝুঁকি আছে কি না, সিস্টেম ডাউন না করেই কাজটি করা সম্ভব কি না—এসব সিদ্ধান্ত ইঞ্জিনিয়ারকেই নিতে হবে।

এআই একটি অথরাইজেশন সিস্টেমের কোড লিখে দিতে পারে। কিন্তু কোনো ব্যবহারকারী সত্যিই নির্দিষ্ট তথ্য বা রিসোর্স দেখার অনুমতি রাখেন কি না এবং সেই অনুমতি সিস্টেমের প্রতিটি স্তরে ঠিকভাবে প্রয়োগ হয়েছে কি না, সেটি যাচাই করার দায়িত্ব ইঞ্জিনিয়ারের।

একইভাবে, এআই কোনো কোডকে ‘সঠিক’ বললেও একজন ইঞ্জিনিয়ারকে ভাবতে হবে—বাস্তব প্রোডাকশন লোডে এটি কেমন আচরণ করবে? কোনো সার্ভিস বন্ধ হয়ে গেলে কী হবে? কোনো ব্যর্থতা কি ব্যবহারকারীর চোখে না পড়েই সিস্টেমের ভেতরে ঘটতে পারে?

এখানেই একটি গুরুত্বপূর্ণ বিষয় সামনে আসে—এআই কোড লেখার প্রয়োজনীয়তা কমাতে পারে, কিন্তু গভীর সিস্টেম বোঝাপড়ার প্রয়োজন কমায় না। বরং সেটি আরও বাড়িয়ে দেয়। কারণ এখন কোড তৈরি করা আগের চেয়ে সহজ। ফলে ভুল কোডও আগের চেয়ে দ্রুত তৈরি করা সম্ভব।

কোড লেখা আর সিস্টেম বোঝা এক বিষয় নয়

এআইয়ের কারণে কোড লেখার গুরুত্ব কমতে পারে, কিন্তু সিস্টেম বোঝার গুরুত্ব কমছে না। বরং অনেক ক্ষেত্রে সেটি আরও বাড়ছে। কারণ এখন একজন ইঞ্জিনিয়ার খুব দ্রুত কোড তৈরি করতে পারেন। ফলে ভুল কোডও আগের তুলনায় অনেক দ্রুত তৈরি হতে পারে।

একটি এআই টুল কয়েক মিনিটে এমন একটি ফিচারের কোড লিখে দিতে পারে, যেটি আগে একজন ডেভেলপারের কয়েক ঘণ্টা সময় নিত। কিন্তু সেই কোডটি কীভাবে পুরো সিস্টেমের সঙ্গে যুক্ত হচ্ছে, কোথায় নিরাপত্তার ঝুঁকি তৈরি হচ্ছে, ভবিষ্যতে এটি রক্ষণাবেক্ষণ করা কতটা সহজ হবে—এসব বুঝতে ইঞ্জিনিয়ারের মৌলিক জ্ঞান প্রয়োজন। এখানে একজন ভালো ইঞ্জিনিয়ারের মূল্য শুধু তাঁর কত লাইন কোড লেখার ক্ষমতায় নয়; বরং তিনি কত ভালো সিদ্ধান্ত নিতে পারেন, সেটিতেও।

‘স্পেশালিস্ট’ থেকে ‘প্রোডাক্ট ওনারশিপ’

সফটওয়্যার ইঞ্জিনিয়ারিংয়ে বিশেষায়িত দক্ষতার প্রয়োজন অবশ্যই থাকবে। বড় ও জটিল সিস্টেমে ডেটাবেইস, সিকিউরিটি, ক্লাউড, এআই কিংবা মোবাইলের মতো ক্ষেত্রগুলোতে গভীর জ্ঞানসম্পন্ন বিশেষজ্ঞের প্রয়োজন কখনোই পুরোপুরি শেষ হবে না।

তবে একই সঙ্গে আরেক ধরনের ইঞ্জিনিয়ারের চাহিদা বাড়তে পারে—যিনি কোনো একটি টেকনোলজির মধ্যে আটকে না থেকে পুরো সমস্যাটিকে দেখতে পারবেন। তিনি জানবেন কখন নিজে কাজ করতে হবে, কখন এআইয়ের সাহায্য নিতে হবে এবং কখন কোনো বিশেষজ্ঞের সহায়তা প্রয়োজন।

অর্থাৎ তাঁর দক্ষতার কেন্দ্রবিন্দু হবে ‘আমি কোন টেকনোলজি জানি’—এটি নয়; বরং ‘আমি কীভাবে একটি বাস্তব সমস্যা সমাধান করে ব্যবহারযোগ্য প্রোডাক্ট তৈরি করতে পারি’—এটি।

এই পরিবর্তনকে বলা যেতে পারে ‘প্রোডাক্ট ওনারশিপ’-এর দিকে এগিয়ে যাওয়া।

ভবিষ্যতের ইঞ্জিনিয়ার কেমন হবেন

সম্ভবত ভবিষ্যতের একজন শক্তিশালী ইঞ্জিনিয়ারকে একই সঙ্গে কয়েকটি স্তরে দক্ষ হতে হবে। তাঁকে রিকোয়ারমেন্ট বুঝতে হবে, আর্কিটেকচার নিয়ে চিন্তা করতে হবে, ডেটা ও এপিআই সম্পর্কে জানতে হবে, ইউআই সম্পর্কে অন্তত কাজ করার মতো ধারণা রাখতে হবে, নিরাপত্তা ও পারফরম্যান্সের মৌলিক বিষয় বুঝতে হবে এবং ডিপ্লয়মেন্ট ও মনিটরিংয়ের ব্যাপারেও ধারণা রাখতে হবে।

এর সঙ্গে যুক্ত হবে এআই টুল ব্যবহারের দক্ষতা।

কিন্তু সবচেয়ে গুরুত্বপূর্ণ বিষয় হবে—এই সবকিছুকে একসঙ্গে নিয়ে একটি বাস্তব ব্যবসায়িক সমস্যার সমাধান করতে পারা।

অর্থাৎ একজন ইঞ্জিনিয়ারকে হয়তো আর শুধু ‘ব্যাকএন্ড ইঞ্জিনিয়ার’ হিসেবে ভাবা হবে না। তিনি হতে পারেন এমন একজন ‘প্রোডাক্ট ইঞ্জিনিয়ার’, যিনি প্রয়োজন অনুযায়ী ব্যাকএন্ড থেকে ফ্রন্টএন্ড, এপিআই থেকে এআই এবং ডেভেলপমেন্ট থেকে ডিপ্লয়মেন্ট—বিভিন্ন স্তরে কাজ করতে পারেন।

তাহলে কি সব ইঞ্জিনিয়ারকে সবকিছু শিখতে হবে

না। বিষয়টি আসলে ‘সবকিছুর বিশেষজ্ঞ’ হওয়ার নয়। একজন মানুষ একসঙ্গে সব প্রযুক্তিতে গভীরতম পর্যায়ের বিশেষজ্ঞ হতে পারবেন—এমন প্রত্যাশা বাস্তবসম্মত নয়। বরং প্রয়োজন হচ্ছে একটি শক্তিশালী ভিত্তি তৈরি করা, যাতে একজন ইঞ্জিনিয়ার নতুন প্রযুক্তি দ্রুত শিখতে পারেন এবং প্রয়োজন অনুযায়ী সেটি কাজে লাগাতে পারেন।

এর জন্য প্রোগ্রামিংয়ের মৌলিক ধারণা, ডেটাবেইস, এপিআই, সফটওয়্যার আর্কিটেকচার, সিকিউরিটি, ডিবাগিং এবং সিস্টেম ডিজাইনের মতো বিষয়গুলোতে শক্ত ভিত্তি থাকা জরুরি। এরপর এআইকে ব্যবহার করতে হবে একজন ‘কোড জেনারেটর’ হিসেবে নয়, বরং একজন শক্তিশালী ইঞ্জিনিয়ারিং অ্যাসিস্ট্যান্ট হিসেবে।

এআই দ্রুত কোড লিখে দেবে। ইঞ্জিনিয়ার ঠিক করবেন কোন কোডটি গ্রহণ করা হবে, কেন গ্রহণ করা হবে এবং সেটি বাস্তব সিস্টেমে কীভাবে নিরাপদভাবে ব্যবহার করা হবে।

আমাদের ইঞ্জিনিয়ারিং শিক্ষা কি বদলাবে?

এখানেই সবচেয়ে বড় প্রশ্ন। আমরা কি এখনও ইঞ্জিনিয়ারদের শেখাচ্ছি—‘এই ভাষা শেখো, এই ফ্রেমওয়ার্ক শেখো, এই টেকনোলজি স্ট্যাক জানো?’ নাকি শেখানো উচিত—‘একটি সমস্যা বিশ্লেষণ করো, সমাধানের আর্কিটেকচার তৈরি করো, প্রয়োজনীয় প্রযুক্তি নির্বাচন করো এবং ফলাফল নিশ্চিত করো?’

প্রযুক্তি বদলাবে। আজ যে ফ্রেমওয়ার্ক জনপ্রিয়, পাঁচ বছর পর সেটি হয়তো আর থাকবে না। আজ যে এআই টুল ব্যবহার করছি, আগামীকাল তার চেয়েও শক্তিশালী কোনো টুল চলে আসতে পারে।

কিন্তু সমস্যা বিশ্লেষণ, সিস্টেম বোঝা, ঝুঁকি শনাক্ত করা, সঠিক সিদ্ধান্ত নেওয়া এবং একটি নির্ভরযোগ্য সমাধান তৈরি করার দক্ষতা সহজে পুরোনো হবে না। তাই ভবিষ্যতের ইঞ্জিনিয়ার তৈরির ক্ষেত্রে হয়তো আমাদের প্রশ্নটি একটু বদলানো দরকার।

সে কোন টেকনোলজি জানে?

এর পাশাপাশি জিজ্ঞেস করতে হবে—‘সে কী ধরনের সমস্যা শেষ পর্যন্ত সমাধান করতে পারে?’ কারণ শেষ পর্যন্ত একজন ব্যবহারকারী ব্যাকএন্ড, ফ্রন্টএন্ড, এপিআই কিংবা এআই—কোনোটিই আলাদাভাবে চান না। তিনি চান তাঁর সমস্যার একটি নির্ভরযোগ্য সমাধান। আর তাই এআইয়ের যুগে হয়তো সবচেয়ে চাহিদা সম্পন্ন ইঞ্জিনিয়ার তিনি নন, যিনি সবচেয়ে বেশি কোড লিখতে পারেন; বরং তিনি, যিনি কত দ্রুত একটি অপরিচিত সমস্যা বুঝতে পারেন, কত বুদ্ধিমত্তার সঙ্গে এআই ও অন্যান্য প্রযুক্তিকে কাজে লাগাতে পারেন এবং সবচেয়ে গুরুত্বপূর্ণভাবে—একটি ধারণাকে কতটা নির্ভরযোগ্য, ব্যবহারযোগ্য ও বাস্তব প্রোডাক্টে পরিণত করতে পারেন।

প্রযুক্তি বদলাবে, টুল বদলাবে, কোডও বদলাবে। কিন্তু একটি সমস্যাকে বুঝে সেটিকে কার্যকর সমাধানে রূপ দেওয়ার দায়িত্ব—সেটিই হয়তো ভবিষ্যতের ইঞ্জিনিয়ারের সবচেয়ে বড় পরিচয়।

লেখক: রিয়েক্ট ডেভেলপার, জাভা ইঞ্জিনিয়ার, সরকারি প্রজেক্টে সিনিয়র আইটি কনসালট্যান্ট হিসেবে কর্মরত

Google News Icon

সর্বশেষ খবর পেতে Google News ফিড ফলো করুন

পঠিত
সর্বশেষ
এলাকার খবর
খুঁজুন

পাঠকের আগ্রহ

সম্পর্কিত