আমাদের দেশে প্রচুর ছেলে মেয়ের আগ্রহ আছে সফটওয়্যার ইঞ্জিনিয়ার হওয়ার। এর মধ্য অনেকে জানেই না, সফটওয়্যার ইঞ্জিনিয়ার হয়ে কি করতে হয়? তাদের ডেইলি লাইফ কেমন, কি কি কাজ করতে হয়? আমাদের দেশে এই সব নিয়ে তেমন কথা হয় না।
অনেকের কাছে সফটওয়্যার ইঞ্জিনিয়ারিং অনেক কুল একটা প্রফেশন। এখানে কাজ সব সময় ডেক্স এ বসে করতে হয়। সেভাবে ফিজিক্যাল শক্তি ব্যয় হয় না বললেই চলে। আবার অনেকের কাছে এটা একটা বোরিং প্রফেশন। এখন বাস্তবে সফটওয়্যার ইঞ্জিনিয়ার রা কি করে সেটা নিয়ে আজকের ব্লগ। সফটওয়্যার ইঞ্জিনিয়ার রা লাইফ পার্টনার হিসাবেই বা কেমন?
শুরুতে বলে রাখি, কোম্পানি ভেদে সফটওয়্যার ইঞ্জিনিয়ারের কাজ আলাদা হতে পারে। তবে বড় এবং মুল ধারার কোম্পানি গুলোতে মুলত একজন সফটওয়্যার ইঞ্জিনিয়ারের যে কাজ করতে হয় সেটা উল্লেখ করা হয়েছে এখানে। তাই অনেক কোম্পানির সাথে এই আর্টিকেল সম্পুর্ন নাও মিলতে পারে।
কম্পিউটার প্রোগ্রাম বা কোড লেখা
একজন সফটওয়্যার ইঞ্জিনিয়ার এর মুল কাজ হচ্ছে প্রোগ্রাম লেখা। তবে এই প্রোগ্রাম গুলো কিন্তু হ্যালো ওয়ার্ল্ড এর মত মাইক্র প্রোগ্রাম না। সাধারনত যে কোন সফটওয়্যার প্রজেক্ট এ ১০-২০ হাজার লাইন কোড লিখতে হয়। এন্টারপ্রাইস লেভেল এর কোড কয়েক লাখ লাইন পর্যন্ত হয়ে থাকে।
একটা আইডিয়া দেই, আমাদের কোম্পানি XpeedStudio তে গত বছর ৪ লাখ ২৫ হাজার লাইন কোড রিলিজ দেয়া হয়েছে। প্রতিটি প্রজেক্টে ডেভেলপার বা ইঞ্জিনিয়ার রা রিকোয়ার্মেন্ট অনুযায়ী কোড লিখে থাকে। ইঞ্জিনিয়ার রা কাজের শিংহ ভাগ সময় ব্যয় করে প্রোগ্রাম লিখে!
যারা ভবিশ্বতে সফটওয়্যার ইঞ্জিনিয়ার হতে চান, এত এত কোড দেখে ভয়ের কিছু নেই। কারন, আপনাকে একাই সব কোড লিখতে হবে না। কোড ম্যানেজ করার জন্য বিভিন্ন ভার্শন কনট্রলিং টুলস ব্যাবহার করা হয়ে থাকে। ডকুমেন্টশন থাকে আর ওওপি ব্যাবহার করা হয়।
টানা কয়েক হাজার লাইন কোড সাধারনত থাকে না। কোড গুলো ফাইল বাই ফাইল থাকে তাই বের করতে তেমন সমস্যা হয় না। বলে রাখা ভালো, জুনিয়র ইঞ্জিনিয়ার রা সাধারনত প্রচুর কোড লিখে সামান্য আউটপুট বের করে আর সিনিয়র রা অল্প কোড লিখে অনেক বেশি আউটপুট বের করে থাকেন।
সফটওয়্যার ইঞ্জিনিয়ারিং এ কোড লেখার থেকেও গুরুত্বপুর্ন হচ্ছে লজিক। একটা আউটপুট এর জন্য অনেক ভাবে কোড লেখা যায়। আপনার যত কম সময় লাগবে, যত এফিশিয়েন্ট হবে সমাধান, যত কম কম্পিউটার রিসোর্স লাগবে, আপনি তত ভালো কম্পিউটার ইঞ্জিনিয়ার হবেন।
যারা ভবিশ্বতে সফটওয়্যার ইঞ্জিনিয়ার হতে চান, তাদের উচিৎ নিয়মিত কম্পিউটার প্রোগ্রামিং করা। সমস্যা সমাধান কত দ্রুত করা যায়, কত বেটার ওয়েতে করা যায় সেদিকে নজর দেয়া। যদি আপনি সমস্যা সমাধান করতে পারেন, তাহলে সফটওয়্যার ইন্ডাস্ট্রিতে আপনার প্রচুর চাহিদা থাকবে।
সব ইঞ্জিনিয়ার কি একই কোড লিখে থাকে?
না কোম্পানি, প্রজেক্ট, পার্সনাল প্রেফারেন্স এর উপর নির্ভর করে অনেক রকম কোড হতে পারে। যেমন, কম্পানি যদি ওয়ার্ডপ্রেস নির্ভর হয় আর আপনি যদি ব্যাকএন্ড ইঞ্জিনিয়ার হন, তাহলে ধরেই নিতে পারেন, আপনাকে সব সময় পিএইচপি ল্যাংগুয়েজে কোড লিখতে হবে।
আবার আপনি যদি ERP এর মত সফটওয়্যার প্রজেক্ট এ কাজ করেন, তাহলে পাইথন ব্যাবহার করতে পারেন, জাভা ব্যাবহার করতে পারেন বা রুবি এর মত ল্যাংগুয়েজ ব্যাবহার করতে পারেন। সাধারনত বড় কোম্পানি গুলোতে ডেভেলপার রা নিজের ইচ্ছা অনুযায়ী ল্যাংগুয়েজ এ কাজ করতে পারে। আর মাঝারি এবং ছোট কোম্পানিতে ল্যাংগুয়েজ ফিক্স করা থাকে।
উল্লেখ্য, ব্যাক এন্ড মানে হচ্ছে যারা সফটওয়্যার এর লজিক্যাল অংশে কাজ করে থাকেন। যাদের জন্য আপনার সফটওয়্যার কাজ করে থাকে। আর ফ্রন্টএন্ড হচ্ছে যেটা আপনি সরাসরি দেখেন আর ইন্টার্যাক্ট করতে পারেন। ফুল-স্ট্যাক হচ্ছে যারা প্রয়োজন অনুযায়ী ফ্রন্ট এন্ড এবং ব্যাক এন্ড দুই যায়গা ই কাজ করে থাকে।
টিপস- সফটওয়্যার ইঞ্জিনিয়ার এর মুল কাজ সমস্যা গুলো প্রোগ্রামের মাধ্যমে সমাধান করা। তাই আপনি নিজে যদি সফটওয়্যার ইঞ্জিনিয়ার হতে চান, তাহলে আপনাকে প্রোগ্রাম লিখতেই হবে। আপনি কম্পিউটার সায়েন্স এর প্রথম বর্ষের শিক্ষার্থী হলে এই ব্লগটি দেখতে পারেন।
বাগ ফিক্স করা
কম্পিউটার ইঞ্জিনিয়ায়রদের আরেকটি কাজ হচ্ছে বাগ ফিক্স করা। নরমালি, যে কোন প্রজেক্ট ডেভেলপ করার সময়ে ইঞ্জিনিয়ার সাহেব নিজে প্রথমে টেস্ট করেন। এর পর সেটা কোয়ালিটি এসুরেন্স (Software QA) টিমের কাছে যায়। সেখান থাকে ছাড় পেলে মার্কেটে আসে। কোন কোন প্রজেক্ট এ বেটা রিলিজ নামে, টেস্টিং রিলিজ ভার্শন দেয়া হয়ে থাকে, যেটা নানান প্রান্তের মানুষ টেস্ট করে থাকে।
- আরও পড়তে পারেন – যে ১৪টি কারনে প্রোগ্রামার মেয়ের সাথে ডেট করা উচিৎ
এত কিছুর পরও দেখা যায়, সফটওয়্যার এ অনেক সময় আন এক্সপেক্টেড বাগ ধরা পরে। বা সিকিউরিটি তে ত্রুটি ধরা পরে এবং সেটা কে ফিক্স করাই বাগ ফিক্স বলে। সফটওয়্যার ইঞ্জিনিয়ারদের অন্যতম গুরুত্বপুর্ন একটা কাজ হচ্ছে বাগ ফিক্স করা। এটা এতই গুরুত্বপুর্ন যে, বাগ ধরা পরলে সমস্ত কাজ বাদ দিয়ে, পুরো টিম কে দায়িত্ব দেয়া হয় এটা ফিক্স করার জন্য।
![](https://galibnotes.com/wp-content/uploads/2021/04/Screenshot_4-1024x718.png)
বাগ ফিক্স কে বাগ বাউন্টি বলে রিতিমত পুরস্কারও দেওয়া হয়ে থাকে অনেক সময়। আপনি হয়ত ভাবছেন, বাগ ধরা পরলে ইঞ্জিনিয়ারদের কি ঝাড়ি খেতে হয়? সাধারনত ডেভেলপমেন্ট ফেইজ এ বাগ ধরা পরলে সমস্যা হয় না। আর রিলিজ এর পর যদি বাগ ধরা পরে তাইলে কিউএ টিম কে অনেক সময় ধরা হয়ে থাকে।
রিসার্চ করা
সফটওয়্যার ডেভেলপমেন্ট এর অন্যতম গুরুত্বপুর্ন কাজ হচ্ছে রিসার্চ করা। হতে পারে মার্কেট রিসার্চ, কম্পিটিটর এনালাইসিস, ফিচার এনালাইসিস সহ অনেক কিছু। সাধারনত বড় কোম্পানি গুলোতে আলাদা এনালিস্ট থাকে যিনি বিজনেস এনালাইসিস করে, মার্কেটার মার্কেট এবং কম্পিটিটর এনালাসিস করে থাকে। আর লিড ইঞ্জিনিয়ার রা ফিচার এনালাইসিস করে।
কিন্তু ছোট এবং মাঝারি কোম্পানি গুলোতে ইঞ্জিনিয়ার সাহেবদের এই কাজ করতে হয়। আর কিছু না হোক, ফিচার এনালাইসিস ইঞ্জিনিয়রদের করাই লাগে। তবে ভয়ের কিছু নেই, আপনার সাথে কোম্পানির ফাউন্ডার, কো-ফাউন্ডার রা কাজ করবে।
কাস্টমার সাপোর্ট দেওয়া
কম্পিউটার ইন্ডাস্ট্রিতে আরেকটি গুরুত্বপুর্ন কাজ হচ্ছে সাপোর্ট দেয়া। আমরা যখন সফটওয়্যার বানাই, আমাদের কাছে সেটার ব্যাবহার খুব সহজ মনে হলেও, দুনিয়ার সকলের কাছে সেটা দুর্বধ্য লাগে। সেই জন্য তারা সাপোর্ট এ গাদায় গাদায় মেসেজ পাঠায়। সাপোর্ট দেয়ার জন্য আলাদা সাপোর্ট ইঞ্জিনিয়ার থাকলেও, ক্রিটিক্যাল ইস্যু গুলা ইঞ্জিনিয়ারদের কে সমাধান করতে হয়।
জুনিয়রদের তৈরি করা
সিনিয়র বা মিড লেভেল সফটওয়্যার ইঞ্জিনিয়ারদের আরেকটা কাজ থাকে জুনিয়র এবং ইন্টার্ন ইঞ্জিনিয়ারদের সাথে কাজ করা। কিভাবে প্রজেক্ট এ কাজ করা লাগে, কিভাবে টিম প্লেয়ার হওয়া যায়, মেজর ভুল হলে কি করা লাগে। কিভাবে ভালো ইঞ্জিনিয়ার হওয়া যায় ইত্যাদি।
এর সাথে সাথে কোম্পানির নতুন হায়ারিং এর প্রশ্ন বানানো, পরিক্ষা নেওয়া, খাতা দেখে মুল্যায়ন করার কাজও করা লাগে। পজিশন ভেদে অনেক সময় ইন্টারভিউ নেয়া লাগতে পারে।
চা-কফি-বিস্কুট খাওয়া
সফটওয়্যার ইঞ্জিনিয়ারদের আরেকটা কাজ হচ্ছে চা-কফি-বিস্কুট খাওয়া। ব্যাপারটা হাস্যকর মনে হলেও বাস্তব এটাই যে, এই খাওয়াটাও একটা কাজ তাদের জন্য। একজন ইঞ্জিনিয়ার দিনে যত কাপ চা বিস্কুট খেয়ে থাকে, একজন স্বাভাবিক চা-খোড় সপ্তাহেও তত কাপ চা খায় নাহ।
আপনি যদি একজন কম্পিউটার ইঞ্জিনিয়ার এর বডি পোস্টমর্টেম করেন কি কি পাবেন জানেন? চা, বিস্কুট, কফি, আপনার জন্য ভালোবাসা। এক কাল্পনিক গবেষনায় দেখা গেছে, একজন সফটওয়্যার প্রকৌশলীর বডিতে ৭০% থাকে চা, কফি আর বিস্কুট।
একটা ছোট্ট টিপস, যদি আপনি চরম মাত্রার চা-খোর হয়ে থাকেন আর কোন কারনে চা এর সংকট দেখা যায়! তাহলে চা-স্টল না খুজে সফটওয়্যার কোম্পানি খুজে বের করুন। তাহলে আপনি চা পেয়ে যাবেন।
প্রেজেন্টেশন দেওয়া
যারা ক্লায়েন্ট বেইজ কাজ করে তাদের নিয়মিত ভাবে প্রেজেন্টেশন দিতে হয়। এ ক্ষেত্রে প্রেজেন্টেশন গুলো বিশ্ববিদ্যালয়ের মত গট বাধা প্রেজেন্টেশন হয় না। এর বাইরেও, প্রডাক্ট লঞ্চিং এর সময়ে, কোন কন্টেস্ট থাকলে ইঞ্জিনিয়ারদের প্রেজেন্টেশন দিতে হয়।
অন্য টিমের সাথে কোলাব করা
সফটওয়্যার ইঞ্জিনিয়ারদের আরেকটা কাজ হচ্ছে অন্য টিমের সাথে কোলাব করে কাজ করা। যেমন ডিজাইন টিম এর সাথে প্রডাক্ট ডিজাইন এর সময়ে, মার্কেটিং টিম এর সাথে প্রডাক্ট লঞ্চিং এর সময়ে কাজ করা লাগে। একজন সফটওয়্যার ইঞ্জিনিয়ার হয়ে আপনাকে ব্লগ বা ভিডিও এর কোয়ালিটি চেক করা লাগতে পারে। আবার ডিজাইন টিম কে ফিডব্যাক দেয়া লাগতে পারে।
এর বাইরে অনেক কোম্পানিতে সফটওয়্যার ইঞ্জিনিয়ারদের আলাদা অনেক কাজ করতে হয়। বিশেষ করে ছোট বা স্টার্টয়াপ কোম্পানি গুলতে অনেক সময় একজন ইঞ্জিনিয়ার কে মার্কেটিং এর কাজ করতে হয়, ডিজাইনিং এর কাজ করতে হয়। তবে মুল ধারার কোম্পানি গুলোতে এগুলো হয় না বলে এখানে উল্লেখ করা হয় নি।
বোনাসঃ আমাদের দেশে অনেক ছেলে মেয়ে আছে যারা রাত দিন কোন কাজ না করে শুধু প্রোগ্রামিং করে যায়। আমি তাদের নিয়ে কিছু বলব না। কিন্তু আমি একটা ব্যাপার স্পেশাল নোট দিতে চাই, সফটওয়্যার ইঞ্জিনিয়ারিং মানেই কিন্তু শুধু প্রোগ্রামিং নাহ। এখানে অনেক কিছু আছে। তাই বিশ্ববিদ্যালয় লাইফে সব কিছু বাদ দিয়ে প্রোগ্রামিং করার চেয়ে লাইফ ব্যালেন্স করে প্রোগ্রামিং করাই বেটার।
আপনি নিজে যদি সফটওয়্যার ইঞ্জিনিয়ার হয়ে থাকেন, আর আপনি যদি কোন কাজ মিসিং দেখেন, তাহলে কমেন্ট এ জানাতে পারেন। আমি আপডেট করে দিব ক্রেডিট সহ।
এই ব্লগের কন্টেন্ট কপি করে যে কোন যায়গা শেয়ার বা নতুন পোস্ট দেয়া যাবে। ক্রেডিট দিতে চাইলে দিবেন, না চাইলে নাই। এমনকি কপি করে নিজের নামেও চালিয়ে দিতে পারেন। কোন রকম কপিরাইট ক্লেইম দেয়া হবে না। আমার লেখার উদ্যেশ্য শিক্ষার্থীদের জানানো আর আপনার একটি শেয়ার কয়েকজন শিক্ষার্থীকে এই তথ্য গুলো জানাতে সহায়তা করবে।