Pair প্রোগ্রামিং উইথ AI
আমরা প্রতিদিন প্রোগ্রামিং নতুন নতুন চ্যালেঞ্জের সম্মূখীন হয়ে থাকি। আর এই এইসব চ্যালেঞ্জ সমাধানের পথ আমাদেরই খুঁজতে হয়, এতদিন পর্যন্ত এইসব চ্যালেঞ্জ সমাধানের পথ ছিল আমাদের সৃজনশীলতা এবং বুদ্ধিমত্তা। শুধুমাত্র তাই না কোডিং জগৎ একমাত্র মানুষের সৃজনশীলতা এবং বুদ্ধিমত্তা উপর নির্ভরশীল ছিল।
কিন্তু AI এর অসাধারণ অগ্রগতি ডেভেলপার দের কাজের ধরণ বদলে দিচ্ছে, এবং ভবিষ্যৎ দিনগুলো তে আমাদের কাজের ধরণ জোর করে হলে ও পরিবর্তন করবে। এই পরিবর্তনের কেন্দ্রে রয়েছে “Pair Programming with AI”। যেখানে আগে একজন ডেভেলপার অন্য একজনের সাথে একযোগে কাজ করতেন এবং একসাথে বসে সমস্যা নিয়ে আলোচনা ও সমাধান করতো এখন AI সেই জায়গা নিতে শুরু করেছে। যার ফলে কেবল দ্রুত সমস্যা সমাধান নয়, বরং ডেভেলপমেন্ট প্রক্রিয়াকে আরও দক্ষ, নির্ভুল এবং শিক্ষণীয় করে তুলছে। আমরা নিচের বিষয় গুলো নিয়ে আলোচনা করার মাধ্যমে আমরা কিভাবে AI কাজে লাগাতে পারি ও AI সাথে “Pair Programming” করা যেতে পারে তা জানার চেষ্টা করবো।
১। Pair প্রোগ্রামিং কি?
২। AI এর সাথে Pair প্রোগ্রামিংয়ের সুবিধা।
৩। AI এর সাথে Pair প্রোগ্রামিংয়ের অসুবিধা ।
৪। ভবিষ্যৎ দিনগুলোতে AI কিভাবে ডেভেলপমেন্ট টীমের কাজের ধরন বদলে দিবে ।
৫। AI কি আমাদের রিপ্লেস করবে ?
৬। AI এর সাথে Pair প্রোগ্রামিং করার টুলস।
Pair প্রোগ্রামিং কি ?
Pair প্রোগ্রামিং যদি ও শুনতে নতুন মনে হতে পারে, কিন্তু এটি আসলে নতুন কোনো বিষয় নয়। Pair প্রোগ্রামিং কনসেপ্ট টি Agile পদ্ধতি থেকে এসেছে, এই কনসেপ্ট অনুযায়ী ২ জন প্রোগ্রামার অথবা একাধিক প্রোগ্রামার এক সাথে বসে যেকোনো একটি বিষয় নিয়ে কাজ করেন, যেখানে একজন কোড লিখেন অন্যরা কোড পর্যবেক্ষণ করেন, সাজেশন দেন, আলোচনা করেন এবং একসাথে মিলে যে কাজ টি করছিলো তা শেষ করেন। কাজটি যেকোনো ফীচার হতে পারে , Bug হতে পারে , কোড অপ্টিমাইজেশান হতে পারে। যদি ও আমরা শুধুমাত্র কোনো সমস্যা তে পড়লে তা সমাধান করার জন্য Pair প্রোগ্রামিং করে থাকি।
AI সাথে Pair প্রোগ্রামিংয়ের সুবিধা :
১। AI এর সাথে প্রোগ্রামিং সুবিধা হচ্ছে AI কে যেভাবে বলবেন, AI সে অনুযায়ী আপনার জন্য কোডিং করে দিবে। যেমন ধরেন আপনি একটি সিম্পল ক্রুড করছেন, এই ধরণের কাজের জন্য এখন আর আপনার কোড করতে হবে না, AI কে ইন্সট্রাকশন দিন AI কিছুসময়ের মধ্যে কাজ করে ফেলবে, তবে AI এর কাজ আপনার ভেরিফাই করা উচিত, যার ফলে আপনার ডেভেলপমেন্ট স্পিড অনেক বাড়বে। যেহেতু ছোট খাটো কাজ আপনি আপনার কোড অ্যাসিস্ট্যান্ট AI কে দিয়ে করেছেন আপনি কমপ্লেক্স কাজ গুলো তে আগের থেকে অনেক বেশি মনোযোগ দিতে পারবেন। AI কে কিভাবে ইন্সট্রাকশন দেওয়া যেতে পারে সে ব্যাপারে আমার সফটওয়্যার ডেভেলপারদের জন্য এআই ( AI ) প্রম্পটিং ( prompting ) ব্লগ টি পড়তে পারেন।
৩। AI এর সাথে Pair প্রোগ্রামিং আরেকটি বড় সুবিধা হচ্ছে কোস্ট অপ্টিমাইজ যেমনঃ AI কে আপনার কোনো ধরণের ট্রেনিং, ফিডব্যাক, চেয়ার টেবিলের ব্যবস্থা, বেতন ভাতা দিতে হয় না।
৪। AI টুল গুলো আপনার কোডের সিনটেক্স, কোড স্ট্যান্ডার্ড, ডকুমেন্টেশন, টেস্টিং , অপ্টিমাইজেশান এইসব করার জন্য যথেষ্ট। তাই আপনার অ্যাপ্লিকেশন এর ভুল ত্রুটি হওয়ার সম্ভাবনা কমে আসে।
৫। AI যা শিখে তা ভুলে না, এছাড়া AI এর কাছে আছে বিশাল ট্রেনিং ডাটা, তার মানে বলতে পারেন সে মোটামুটি সব কিছুর এক্সপার্ট। তার মানে আপনি এক্সপার্ট ( AI ) এর সাথে pair প্রোগ্রামিং করলে আপনার কোডের কোয়ালিটি বাড়বে।
AI এর সাথে Pair প্রোগ্রামিংয়ের অসুবিধা:
১। একজন সিনিয়র ডেভেলপার যেভাবে সুক্ষ ভাবে অ্যাপ্লিকেশনের কমপ্লেক্স লজিক গুলো ( corner case / worst case ) চিন্তা করতে পারে AI অতটা সুক্ষ ভাবে চিন্তা করতে পারে না।
২। জুনিয়র টীম মেট দের জন্য AI ভালো কোড অ্যাসিস্ট্যান্ট হয়ে থাকে, কিন্তু মেন্টর হতে পারে না। যেমনঃ AI কে একটা সমস্যার ব্যাপারে বললে AI কাজটি করে দেয় ঠিকই , কিন্তু এতে করে জুনিয়র ডেভেলপারদের চিন্তা করার ক্যাপাসিটি কমিয়ে দেয় এবং কমপ্লেক্স লজিক গুলা ( corner case / worst case ) এই বিষয় গুলো human টীম মেট এর মতো বুজিয়ে দিতে পারে না, তাই সে ভালো কোড অ্যাসিস্ট্যান্ট হয়ে থাকে কিন্তু মেন্টর হয় না।
৩। AI এর উপর অতিরিক্ত নির্ভরতা ডেভেলপারদের নতুন কিছু শিখার প্রতি অনাগ্রহী করে তুলে।
৪। টাইম ম্যানেজমেন্ট নিয়ে একটি সমস্যা রয়েছে যেমনঃ আপনার সবসময় Pair প্রোগ্রামিং করার দরকার হয় না কিন্তু AI কোড অ্যাসিস্ট্যান্ট আপনার সাথেই বসে থাকবে যেখানে হিউমান টীম মেট অন্য কাজে করবে।
৫। AI মাঝে মধ্যে ভুল সাজেশন দিয়ে থাকে, তাই AI এর সাথে Pair প্রোগ্রামিং করলে চোখ বন্ধ করা বিশ্বাস করা যায় না।
ভবিষ্যৎ দিনগুলোতে AI কিভাবে ডেভেলপমেন্ট টীমের কাজের ধরন বদলে দিবে :
ভবিষ্যৎ দিনগুলোতে AI ডেভেলপমেন্ট টীমের সাথে আরো ব্যাপক ভাবে কাজ করবে যেমনঃ কোড রিভিউ, কোড কোয়ালিটি চেক, রিকোয়ারমেন্ট এনালাইসিস, সলিউশন ডিজাইন। তবে এই মুহূর্তে AI অতটা নিখুঁত হয় নাই যে এই ধরণের কাজে AI কে ব্যবহার করা যায়।
এই মুহর্তে জুনিয়র ডেভেলপারদের একটা সময় পর্যন্ত AI এভোয়েড করে সিনিয়র ডেভেলোপাদের মেন্টর হিসাবে বেছে নেওয়া উচিত, তবে ভবিষ্যৎ দিনগুলোতে এমন কিছু টুল আসতে পারে যেখানে একজন মেন্টর হিসাবে AI আমাদের প্রোগ্রামিং শেখাচ্ছে যেমনঃ এখন কিছু টুলস আছে চাইলে AI এর সাথে একসাথে কথা বলে ইংলিশ স্পিকিং শিখা যাচ্ছে।
ভবিষ্যৎ দিনগুলোতে AI কমপ্লেক্স লজিক গুলা ( corner case / worst case ) চিন্তা করতে শিখে যাবে, তখন AI একজন সিনিয়র ডেভেলপারের এর মতো সকল ধরণের কাজ যথেষ্ট একুরেসি দিয়ে করতে পারবে। হিসাব করলে দেখা যায় ভবিষ্যৎ দিনগুলোতে AI সফটওয়্যার ডেভেলপমেন্ট সেক্টর এর A টু Z পার্ট এ নিজের অবদান রাখবে।
AI কি আমাদের রিপ্লেস করবে ?
World economic form রিপোর্ট অনুযায়ী ২ ০ ২ ৫ সাল পর্যন্ত AI এর কারণে ৮ ৫ মিলিয়ন কর্মসংস্থান হারাবে কিন্তু ৯ ৭ মিলিয়ন নতুন কর্মসংস্থান তৈরী হবে তাহলে জব হারাবে করা জব পাবে করা ?
জব হারাবে তারা যারা AI ব্যবহার তাদের কাজের প্রোডাক্টিভিটি, কোয়ালিটি বৃদ্ধি করবে না, জব পাবে তারা যারা AI ব্যবহার করে তাদের কাজের প্রোডাক্টিভিটি, কোয়ালিটি দ্বিগুন , তিনগুন করবে ।
তার মানে AI আমাদের কে রিপ্লেস করবে না, যদি আমরা AI ব্যবহার শিখে নেই কারণ AI কে ইন্সট্রাকশন দিতে হিউমানের দরকার পড়বে। আর যদি AI ব্যবহার না শিখি তাহলে AI নয়, AI ব্যবহার কারী আমাদের রিপ্লেস করবে। খুব দ্রুত আমরা আমাদের জব ইন্টারভিউ এর মধ্যে AI রিলেটেড প্রশ্ন পেতে যাচ্ছি।
AI এর সাথে Pair প্রোগ্রামিং করার টুলস:
AI এর সাথে pair প্রোগ্রামিং করার অনেকগুলো টুলস রয়েছে, যার মধ্যে ম্যাক্সিমাম পেইড তবে ইন্ডিভিজুয়াল ইউসারের জন্য অনেকগুলি টুলস ফ্রি ব্যবহার করা যায়। তবে আমার সবগুলো টুলস এক্সপ্লোর করা হয় নি। আপনারা ফ্রি টুলস হিসাবে codeium ব্যবহার করতে পারেন যা আমি এক্সপ্লোর করে দেখেছি। codeium এর জন্য মোটামুটি রেগুলার ব্যবহার করা সবগুলা কোড এডিটর এর জন্য এক্সটেনশন রয়েছে।
AI Pair প্রোগ্রামিং টুলস কি কি সুবিধা দিয়ে থাকে সে ব্যাপারে জানতে আমার Pair প্রোগ্রামিং এর জন্য AI টুলস : Github Copilot vs Codeium এই ব্লগ টি পড়তে পারেন।