সফটওয়্যার ডেভেলপাররা যে কমন ভুলগুলো করে থাকেন

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

১) ক্লায়েন্ট যদি কোন লিংক বা ক্রেডেনশিয়াল (লগ ইন ইউজার নেম/ পাসওয়ার্ড) দেয় (ইমেইল অথবা চ্যাট এ) তা তৎক্ষণাৎ পরীক্ষা করে নিশ্চিত হতে হবে যে সেটা কাজ করছে।

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

কিন্তু বিপত্তি হয় যখন ক্লায়েন্ট ঘুমাতে চলে যায়, আর আমরা হাতের কাজ শেষ করে প্রোজেক্ট আপলোড করতে গিয়ে দেখি যে পাঠানো তথ্য ভুল। অনেক সময় এটা ক্লায়েন্টের নিজের ভুল নাও হতে পারে। যেমন আমাদের হয়ত হোস্টে কিছু বিশেষ পারমিশন লাগবে যেটা দেয়া হয়নি। তখন আমাদের বসে থাকতে হয় কাজ বন্ধ করে। আর অপেক্ষা করতে হয় ক্লায়েন্টের জন্য। ক্লায়েন্ট যখন আসবে তখন আমাদের অফিস বন্ধ করার সময়। তখন রাত জেগে কাজ শেষ করা ছাড়া আর কোন উপায় থাকে না। অনেকে হয়ত বলবেন যে এটা তো  ক্লায়েন্টের ভুল। আসলে বাস্তবতা হল ক্লায়েন্টের ভুল এখানে সেভাবে গণ্য হবে না যেভাবে আমদের ভুল গণ্য হবে যে আমরা কেন তখনই চেক করে আগেভাগে তাকে জানাইনি। এটা চেক করতে ২ মিনিট সময় লাগে, সেটা চেক না করার জন্য আমাদের একটা দিন নষ্ট হয়ে গেল। ক্লায়েন্ট আমাদের এর জন্য বকাঝকা না করলেও অনেক বড় সমস্যা হয়ে যেতে পারে। যেমন ঐ দিন হয়ত ঐ সফটওয়্যারটি নিয়ে ক্লায়েন্ট কোন ইভেন্টে যাচ্ছে, এখন কি হবে? মনে রাখতে হবে, ক্লায়েন্টের সমস্যাকে সব সময় আমাদের সমস্যা মনে করতে হবে, তা না হলে আমরা এই কাজে সফলতা পাব না।

২) ক্লায়েন্টকে সন্তুষ্ট করতে অসম্ভব কোন কমিটমেন্ট করবেন না।

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

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

৩) দেশের সমস্যা বা নিজের পার্সোনাল সমস্যা দিয়ে ক্লায়েন্টের কাছে অজুহাত দিবেন না।

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

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

 

8) ক্লায়েন্টের কাছে পুরো প্রোজেক্টের রিকুয়ারমেন্ট ডকুমেন্ট না চেয়ে বরং প্রশ্ন করে খুঁটিনাটি জেনে নিন।

এটা তাদের জন্য বেশি প্রয়োজন যারা ছোট ক্লায়েন্টের কাজ করেন। বেশিরভাগ ক্লায়েন্ট বাজেট কম থাকায় রিকুয়ারমেন্ট ডকুমেন্ট তৈরি করার জন্য কোন কন্সালটিং কোম্পানিকে ভাড়া করতে পারেন না। তাদের নিজেদের জন্যও এটা নিখুতভাবে তৈরি করা কঠিন। আপনি যেটা করতে পারেন, তাহল তাকে একটা মোটামুটি খসড়া দার করাতে বলতে পারেন। তারপর আপনি বিভিন্ন প্রশ্ন করে ভুল ও গ্যাপগুলো বের করবেন। তারপর আপনি আরও নিখুঁতভাবে রিকুয়ারমেন্ট ডকুমেন্টটি এডিট করে তাকে দেখাবেন ও তার কাছ থেকে স্বীকৃতি নিবেন যে সব ঠিক আছে।

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

৫) অসম্ভব লক্ষ্য অর্জন করার জন্য অতিরিক্ত শ্রমের উপর জোর না দিয়ে আগেভাগেই ক্লায়েন্টকে জানিয়ে লক্ষ্য ঠিক করে নিন।

অনেক সময় কাজের মাঝ পথে গিয়ে আমরা বুঝতে পারি যে আমরা আসলে সময়মত কাজ শেষ করতে পারব না। এক্ষেত্রে আমরা যেটা করি তা হল রাত দিন কাজ করতে শুরু করি, ক্লায়েন্টকে কিছু বলি না। কিন্তু শেষ পর্যন্ত যখন আর শেষ করতে পারিনা তখন ডেডলাইনের দিন ক্লায়েন্টকে জানাই যে আমরা শেষ করতে পারিনি। এটা আসলে খুবই খারাপ। এটা করে আমরা আসলে ক্লায়েন্টকে পানিতে ফেলে দেই।

আমাদের সব সময় ক্লায়েন্টকে সাথে সাথে জানানো উচিৎ যে আমাদের লক্ষ্য অর্জন সম্ভব হবে না। এতে ক্লায়েন্ট যথেষ্ট সময় পাবে প্ল্যান করার। আর আমাদের কথার উপর তাদের ভরসা বাড়বে।

৬) ক্লায়েন্টকে প্রশ্ন করতে ভয় পাবেন না।

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

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

৭) লক্ষ্য অর্জনের জন্য শেষ সময়ে অতিরিক্ত লোক প্রজেক্টে যোগ করবেন না।

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

কিন্তু যদি আগেভাগেই বুঝা যায় যে বেশি লোক লাগবে তাহলে লোক বাড়ানো যেতে পারে, তবে মনে রাখতে হবে, লোক যত বাড়বে, সিস্টেম লস তত বাড়বে। ৫ জন লোক যদি কোন কাজ ১০ মাসে শেষ করতে পারে, তবে ১০ জন কিন্তু ৫ মাসে শেষ করতে পারবে না।  ৬-৭ মাস বা তারও বেশি সময় লাগতে পারে।

৮) টিমমেটদের কাছে বস বা ক্লায়েন্টের ব্যাপারে আজেবাজে কথা বলবেন না।

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

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

৯) প্রোজেক্টের শুরুতে বেশি সময় নষ্ট করবেন না।

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

প্রোজেক্টের শুরুর দিকে তাই খুব দ্রুত সব কিছু করতে হবে। আগের ভুল শুধরানো ও আগের থেকে কিভাবে ভালো ভাবে কাজ করা যায় তা অবশ্যই চেষ্টা করতে হবে, কিন্তু তা করতে যেন বেশি সময় না লাগে। নয়ত আমরা আবার চাপের মধ্যে পরে গিয়ে আবার উল্টাপাল্টা কাজ করেই কাজ শেষ করতে বাধ্য হব।

১০) শেষ দিনের জন্য কাজ রেখে দিবেন না।

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

১১) একবারে বড় ডেমো না দিয়ে রেগুলার ছোট ছোট ডেমো দিন।

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

১২) নিজের ভুল স্বীকার করার ক্ষেত্রে সবসময় সততা বজায় রাখুন।

মানুষ মাত্রই ভুল করে। ভুল করলে কিছু বকাঝকা শুনতে হবে এটাই স্বাভাবিক। কিন্তু কখনো কখনো আমরা নিজেদের ভুল স্বীকার করতে এত ভয় পাই যে মিথ্যা কথা বলে তা ধামাচাপা দিতে চেষ্টা করি। কিন্তু আসলে কি তা সম্ভব? সাময়িকভাবে সম্ভব হলেও একদিন সেটা ধরা পরবেই আর তখন আরও বড় সমস্যা তৈরি হতে পারে।

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

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

১৩) ছুটিছাটার ব্যাপারে ক্লায়েন্টের সাথে সমঝোতায় থাকুন।

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

১৪) সকালে প্রথমেই ক্লায়েন্টের ইমেইল চেক করুন।

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

সকলের জন্য সফল ক্যারিয়ারের শুভকামনা রইল।

মোঃ জালাল উদ্দিন

চীফ আর্কিটেক্ট ও সিইও – ডেভস্কিল

 

আমাদের পোস্টগুলো যদি আপনার ভালো লাগে তাহলে কমেন্টে আমাদের জানান, আর শেয়ার করে আপানার বন্ধুদের পড়ার সুযোগ করে দিন।

 

5 Responses

  1. Rumy says:

    very help full article for outsourcing

  2. Hasib says:

    Another important point hitting in my mind- “lesson learned”. Need to manage a lesson learned document.
    The document will help to solve problem quickly which you did earlier.

Leave a Reply

Your email address will not be published. Required fields are marked *