Saturday, March 12, 2016

বাংলাদেশ ব্যাংকের টাকা চুরি - গোপন কথা কেন রয়না গোপন

বাংলাদেশ ব্যাংকের টাকা হ্যাকাররা চুরি করার পর বাংলাদেশের পত্র পত্রিকায় বিভিন্নভাবে ব্যাপরটা ব্যাখ্যা করা হয়েছে। কিছু কিছু পত্রিকায় কিছু লেখা পড়ার পর মনে হল টেকনিক্যাল ব্যাপারটা যেভাবে ব্যাখ্যা করা হচ্ছে সেটার মাঝে সমস্যা আছে। সুইফট হল একটা প্রতিষ্ঠান (Society) যেটার পুরো নাম Society for Worldwide Interbank Financial Telecommunication সংক্ষেপে SWIFT. এদের নেটওয়ার্কের মাধ্যমে টাকা এক ব্যাংক থেকে আকের ব্যাংকে স্থানান্তর হয়ে থাকে। এই স্থানান্তরের ব্যাপারটা সম্পন্ন হয় একটা নিরাপদ নেটওয়ার্কের মাধ্যমে। এই নেটওয়ার্কের আওতায় থাকা প্রত্যেকটা ব্যাংকের একটা পরিচিতি নম্বর থাকে যটাকে বলা হয় সুইফট কোড। নাম কোড হলেও এটা একটা পরিচিতি নম্বর। যেমন বাংলাদেম ব্যাংকের সুইফট কোড হচ্ছে BBHOBDDH। ব্যাংক যখন টাকা এক ব্যাংক থেকে আরেক ব্যাংকে নেটওয়ার্কের মাধ্যমে টাকা পাঠায় তখন বিভিন্ন নিরাপত্তা ব্যবস্থা গ্রহন করে থাকে। কিন্তু কখনও কখনও সেই নিরাপত্তা ব্যবস্থা ভেঙ্গে হ্যাকাররা টাকা চুরি করতে পারে। ব্যাংকের চেস্টা থাকে যেন কেউ চুরি করতে না পারে এবং সেজন্য প্রয়োজনীয় ব্যবস্থা গ্রহন করে।

ব্যাপারটা বুঝতে হলে আমাদের কয়েকটা বিষয বুঝতে হবে। সুইফট সিস্টেম কিভাবে কাজ করে সেটা ব্যাখ্যা করার জন্য মোটামুটি একটা বই লিখে ফেলা সম্ভব। আমি সবকিছু ব্যাখ্যা করার চেষ্টা না করে শুধু একটা গুরুত্বপূর্ণ বিষয়ে আলোচনা করতে চাই। সুইফট সিস্টেমের একটা গুরুত্বপূর্ণ বিষয় হল এক ব্যাংক থেকে আরেক ব্যাংকে advice পাঠানো। যেমন বলা হচ্ছে বাংলাদেশ ব্যাংক থেকে ফেডারেল রিজার্ভ ব্যাংকে ফিলিপাইনে টাকা পাঠানোর জন্য advice পাঠানো হয়েছে। ধরা যাক advice এ এরকম একটি বার্তা ছিল - "প্রিয় ফেডারেল রিজার্ভ ব্যাংক, আপনার ব্যাংকে রক্ষিত আমার হিসাব নম্বর ১৯৭১ থেকে ফিলিপাইনের আবুল ব্যাংকে (যাহার সুইট কোড FABCDEG) রক্ষিত কুদ্দুসের ৪২০ নম্বর সঞ্চয়ী হিসাবে ১০০ মিলিয়ন ডলার পাঠান। - ইতি বাংলাদেশ ব্যাংক - সুইফট কোড BBHOBDDH"। এরকম একটি বার্তা যেন যে কেউ পাঠাতে না পারে সেকারনে বিভিন্ন সতর্কতামূলক ব্যবস্থা নেয়া হয়। যেমন পাসওয়ার্ড, সার্টিফিকেট, গোপন চাবি (private key) ইত্যাদি ব্যবহার করা হয় বার্তাটিকে সঙ্কেতায়িত (encrypt) করার জন্য। যেটা এই ক্ষেত্রে বাংলাদেশ ব্যাংক ছাড়া আর কেই করতে পারবে না। কিন্তু কোন ভাবে যদি গোপন চাবিটি কোন অসাধু ব্যক্তির হাতে পড়ে তাহলে সে ইচ্ছামত বার্তা পাঠাতে পারবে। সুতরাং গোপন চাবিটি যত্ন করে রাখতে হবে যেন কেউ না পায়। ব্যাপারটা আরও জটিল। কিন্তু আমরা সহজভাবে বোঝার চেষ্টা করব। এটা নিশ্চয়ই বুঝতে পারছেন বাংলাদেশ ব্যাংক থেকে ফেডারেল রিজার্ভ ব্যাংকে যে বার্তা পাঠানো হবে সেটা অবশ্যই গোপন বার্তা হতে হবে। আবার ফেডারেল রিজার্ভ ব্যাংকের কাছে এমন প্রযুক্তি থাতে হবে যেন তারা সেই গোপন বার্তা বুঝতে পারে।

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

একটা তথ্যকে গোপন বার্তায় রুপান্তর করার প্রক্রিয়াকে আমরা বলব এনক্রিপ্ট (encrypt) করা এবং এনক্রিপ্ট করা গোপন বার্তা থেকে সেটাকে মূল তথ্যে রুপান্তর করার প্রক্রিয়াকে আমরা বলব ডিক্রিপ্ট (decrypt) করা। আজকে আমরা এনক্রিপ্ট / ডিক্রিপ্ট করার একটি জনপ্রিয় পদ্ধতি RSA শিখব। এই লেখাটা আমি এমনভাবে লেখার চেষ্টা করব যেন প্রাথমিক বিদ্যালয়ের ছাত্রছাত্রীরাও বুঝতে পারে।

প্রথমে আমাদের জানতে হবে মৌলিক সংখ্যা (prime number) সম্পর্কে। এই বিশেষ সংখ্যা গুলো ১ এর চেয়ে বড় এমন সব সংখ্যা যেগুলোকে শুধু ১ এবং সেই সংখ্যা দিয়ে ভাগ করলে নিঃশেষে বিভাজ্য হবে- কোন ভাগশেষ থাকবে না। ভাগ করতে হবে শুধু ধনাত্বক পূর্ণ সংখ্যা দিয়ে- যেমন (-৫) বা (২.৭) দিয়ে ভাগ করা যাবে না। যেমন ৭ সংখ্যাটিকে শুধুমাত্র ১ এবং ৭ দিয়ে ভাগ করলে নিঃশেষে বিভাজ্য হবে। সুতরাং ৭ একটি মৌলিক সংখ্যা। কিন্তু ৯ সংখ্যাটিকে ১ এবং ৯ ছাড়াও ৩ দিয়ে ভাগ করলেও নিঃশেষে বিভাজ্য হবে। সুতরাং ৯ মৌলিক সংখ্যা নয়। ২ হচ্ছে একমাত্র জোড় মৌলিক সংখ্যা। বাকি সব মৌলিক সংখ্যা বিজোড়। কিছু মৌলিক সংখ্যার উদাহরনঃ ২,৩,৫,৭,১১,১৩,১৭,১৯,২৩,২৯,৩১,৩৭,৪১,৪৩,৪৭,৫৩ ইত্যাদি।

এখন আমাদের ভাগশেষ বের করা বুঝতে হবে। আশা করি সবাই ব্যাপরাটা জানেন। আমি কয়েকটা উদাহরন দেই- ৭ সংখ্যাটিকে ৩ দিয়ে ভাগ করলে ভাগফল হবে ২ আর ভাগশেষ হবে ১। আবার ১১ সংখ্যাটিকে ৪ দিয়ে ভাগ করলে ভাগশেষ হবে ৩। ভাগশেষ বোঝানোর জন্য আমরা % চিহ্ন ব্যবহার করব-

৭ % ৩ = ১
১১ % ৪ = ৩

আমাদের আরও বুঝতে হবে দুইটি সংখ্যার গ.সা.গু (GCD) কিভাবে বের করতে হয়। কোন দুইটি সংখ্যার গ.সা.গু বের করার জন্য প্রথমে আমরা সংখ্যা দুটিকে যেসব সংখ্যা দিয়ে ভাগ করা যায় (নিঃশেষে বিভাজ্য) সেগুলো বের করতে পারি। এরপর সবচেয়ে বড় যে সংখ্যাটি দিয়ে দুটি সংখ্যাকেই ভাগ করা যায় সেই বড় সংখ্যাটি হবে ওই সংখ্যা দুটির গ.সা.গু। যেমস ৮ এবং ১২ সংখ্যাদুটির গ.সা.গু বের করার জন্য -

৮ কে ১,২,৪,৮  সংখ্যাগুলো দিয়ে ভাগ করা যায়
১২ কে ১,২,৩,৪,৬,১২  সংখ্যাগুলো দিয়ে ভাগ করা যায়
এখন আমরা দেখতে পাচ্ছি ৮ এবং ১২ উভয়কে ১,২,৪ দ্বারা ভাগ করা যায়। ১,২,৪ এই তিনটি সংখ্যার মধ্যে ৪ সবচেয়ে বড়। সুতরাং ৮ এবং ১২ এর গ.সা.গু বা GCD হল ৪। সেটাকে আমরা এভাবে লিখব- GCD(৮, ১২) = ৪

এখন আমাদের সূচক বা power বুঝতে হবে। আমরা যদি ৫ সংখ্যাটিকে ২ বার গুন করা বোঝাতে চাই তাহলে আমরা লিখতে পারি -

৫x৫
অথবা আমরা সূচক বা power ব্যবহার করে লিখতে পারি

এবার আমরা দেখি কিভাবে দুইটি সংখ্যার গুনফলের সাথে একটি সংখ্যা দিয়ে ভাগ করা দরকার হলে কিভাবে সহজে ভাগশেষ বের করা যায়। মনে করি ৭x৬ কে ৫ দিয়ে ভাগ করলে ভাগশেষ কত হবে বের করতে চাই। অর্থাৎ
৭x৬ % ৫ = ?
আমরা জানি ৭ % ৫ = ২ এবং ৬ % ৫ = ১। তাহলে
  ৭x৬ % ৫
= ২x১ % ৫
= ২ % ৫
= ২
এভাবে আমরা ৭x৬ = ৪২ মান না বের করেও ৭x৬ কে ৫ দিয়ে ভাগ করলে ভাগশেষ ২ হবে সেটা বের করতে পারি। ৪২ কে ৫ দিয়ে ভাগ করলেও ভাগশেষ ২ হয়। কিন্তু অনেক বড় সংখ্যার অনেক বড় পাওয়ার থাকলে গুনফল না বের করে সারাসরি ভাগশেষ বের করা সুবিধাজনক। এবার আগের চেয়ে একটু বড় সংখ্যার উদাহরন দেখি-
  % ৩ = ?
 বা
৫x৫x৫ % ৩ = ?
আমরা জানি ৫%৩=২ সুতরাং
  ৫x৫x৫ % ৩ 
= ২x২x২ % ৩
= ৮ % ৩
= ২
পরীক্ষা করার জন্য আমারা দেখি যে ৫x৫x৫ % ৩ = ১২৫ % ৩ = ২।

আমরা গোপন বার্তা কিভাবে তৈরি করা যায় সেটা সেখার জন্য যতটুকু গনিত জানা দরকার সেটা জেনে নিয়েছি।

এরপরে সুবিধার জন্য সংখ্যাগুলো ইংরেজিতে লিখব। প্রথমে একটি সূত্র দেখি। আমরা এমন তিনটি ধনাত্বক পূর্ণসংখ্যা e,d,n বের করতে পারব যেগুলো ব্যবহার করলে নীচের সমীকরনের উভয় পক্ষ সমান হবে-

    (me)d % n = m   |  0 <=m < n  and GCD(m,n) = 1 
এখন উপরের সমীকরন থেকে আমরা বলতে পারি
যদি  
    c = me % n 

হয় তবে

    m = cd % n
হবে।
এই ছোট্ট সমীকরন দুটিই RSA এনক্রিপশন ডিক্রিপশনের মূল কথা। আমরা একটি তথ্য এনক্রিপ্ট করতে চাইব তখন আমাদের একটি private key এবং একটি public key দরকার হবে। এইগুলি কিভাবে বের করা হবে সেটা আমরা একটু পরই দেখব। এখানে m আমাদের তথ্য যেটাকে আমরা গোপন বার্তায় রুপান্তর করতে চাই। আর c হচ্ছে আমাদের গোপন বার্তা। (e,n) হচ্ছে public key এবং (d,n) হচ্ছে private key। প্রথমে একটা উদহরন দেখে নেই- ধরা যাক আমাদের একটি গোপন সংখ্যা m=4 যেটা আমরা আমাদের বন্ধু শুক্কুর আলীর কাছে পাঠাতে চাই। আমরা জানি শুক্কুর আলীর পাবলিক কি হচ্ছে e=5, n=21। তাহলে
c = 45%21
  = 16
এখন আমরা আমাদের গোপন বার্তা 16 শুক্কুর আলীর কাছে পাঠিয়ে দিতে পারি। এখানে একটা ব্যাপার লক্ষ্য করি যে আমরা কিন্তু আমাদের শুক্কুর আলীর private key জানি না। সেটা শুধু শুক্কুর আলীই জানে। আর শুক্কুর আলীর public key সবাই জানে- সেজন্য আমরাও জানি। তথ্য এসক্রিপ্ট করার জন্য public key থাকলেই হয় কিন্তু ডিক্রিপ্ট করার জন্য private key দরকার হবে যেটা শুধু শুক্কুর আলীর কাছে আছে। সুতরাং আমরা বলতে পারি আমাদের গোপন তথ্য শুক্কুর আলী ছাড়া আর কেউ পড়তে পারবে না। বার্তাটি পাওয়ার পর শুক্কুর আলী তার private key যেটা হচ্ছে d=341, n=21 ব্যবহার করে আমাদের তথ্যটি বের করবে এভাবেঃ
m = 16341 % 21
  = 4

এখন আমরা দেখি কিভাবে শুক্কুর আলী e,d,n এর মান পেল। প্রধমে শুক্কুর আলী দুইটি অনেক বড় প্রাইম নাম্বার নিল-
p=7
q=3
এবার n=pxq ব্যবহার করে পেল:
n=21
এখানে মনে রাখতে হবে GCD(m,n) = 1 সমীকরণের জন্য ৩,৬,৭ মানগুলো ব্যবহার করা যাবে না। আমরা ধরে নেই যে এই সংখ্যাগুলো আমাদের এনক্রিপ্ট করার দরকার নাই। বাস্তবে অনেক বড় প্রাইম নাম্বার ব্যবহার করলে এই সমস্যা হবে না। এবার সে
φ(n) = (p-1)x(q-1)
থেকে পেল
φ(n) = 12    [φ => Euler's totient function]
এবার সে এমন একটি সংখ্যা e খুজে বের করল যেন
1 < e < φ(n) এবং GCD(e, φ(n)) = 1 
সে হিসাব করে দেখল e=5 সে ব্যবহার করতে পারে। এবার এমন একটি সংখ্যা d খুঁজে বের করল যেন
d x e % φ(n) = 1
d x 5 % 12 = 1
সে অনেকক্ষন ধরে হেসাব করে দেখল d = 341 ধরলে 341 x 5 % 12 = 1 হয়।

এবারে সে p,q,d এর মানগুলো খুব গোপনে রাখল আর (e,n) এর মান সবার কাছে পাঠিয়ে দিল যেন সবাই তাকে গোপন বার্তা পাঠাতে পারে। আর সে সেগুলো (d,n) ব্যবহার করে পড়তে পারে।

এই পদ্ধতির বড় সুবিধা হচ্ছে public key দিয়ে এনক্রিপ্ট করা তথ্য private key দিয়ে ডিক্রিপ্ট করা যায় আবার private key দিয়ে এনক্রিপ্ট করা তথ্য public key দিয়ে ডিক্রিপ্ট করা যায়। উপরের উদাহরন থেকে আপনারা নিজেরা সেটা পরীক্ষা করে দেখতে পারেন।

যদি শুক্কুর আলি আমাদের একটি বার্তা তার private key দিয়ে এনক্রিপ্ট করে পাঠায় এবং যদি তার public key দিয়ে সে বার্তা ডিক্রিপ্ট করা যায় তাহলে আমরা নিশ্চিত ভাবে জানি যে ওই বার্তা সেই পাঠিয়েছে।

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

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

এই লেখায় খুব ছোট ছোট সংখ্যা ব্যবহার করেছি বোঝার সুবিধার জন্য। 0,1,2,4,5,8 ইত্যাদি মান এনক্রিপশন ডিক্রিপশন ঠিকমত কাজ করবে এই মানগুলো ব্যবহার করলে। এর চেয়ে বড় সংখ্যার জন্য কাজ করাতে চাইলে আরও বড় মৌলিক সংখ্যা নিতে হবে। সেক্ষেত্রে হিসাবটা কঠিন হয়ে যাবে। সেটা করার কোন দরকার নাই RSA বোঝার জন্য। বাস্তবে অনেক বড় বড় মৌলিক সংখ্যা ব্যবহার করা হয় যেন এর d মান কম্পিউটার দিায়ে বের করে ফেলা না যায় এবং অনেক বড় সংখ্যার জন্য কাজ করে।

Thursday, January 24, 2013

সরল মেমোরি ম্যানেজার

μnix এর জন্য খুব সাধারণ একটা মেমোরি ম্যানেজার বানিয়েছিলাম কিছুদিন আগে। বর্তমানে এটার স্লথগতির জন্য এটাকে আর ব্যবহার করছি না। তবে মেমোরি ম্যানেজার কিভাবে বানানো যায় সেটার একটা উদাহরণ হতে পারে। এটা একটা লিংকড লিস্ট ব্যবহার করে বানানো। অপারেটিং সিস্টেমের জন্য এর চেয়ে ভাল ডাটা স্ট্রাকচার ব্যবহার করতে হবে। বর্তমানে আমি Splay Tree ব্যবহার করছি। অনেকে বলেন AVL Tree ব্যবহার করার কথা। ডেমো এর সুবিধার জন্য এটাকে একটা ইউজার মোড অ্যাপ্লিকেশন হিসাবে দিলাম (টেস্ট করার জন্য অপারেটিং সিস্টেম বানাতে হলে বিপদ!)।

#include "stdio.h"
#include "memory"

#define SIZE 1024*1024
#define MEMORY_USED 0x1
#define DEAD_SIGN 0xEFBEADDE

#define SIGN 0xABCD08EF

#define panic(message)

#define assert(cond) if(!cond){panic("ASSERTION FAILED")}

#define INCLIDE_SANITY_CHECK_CODE

struct memblk{
#ifdef INCLIDE_SANITY_CHECK_CODE
    int signature;
#endif

    memblk *prev,*next;
    unsigned int managed_data, size;
    void *memory;
};

#define MEM_BLK_STRUCT_SIZE (sizeof(memblk) - sizeof(void*))

void *block = NULL;
memblk *head = NULL;

memblk* find_free_block(unsigned int size)
{
    assert(size);

    memblk *cur_blk = head, *free_blk = NULL;

    while(!free_blk)
    {
        if(!(cur_blk->managed_data & MEMORY_USED) && cur_blk->size >=size)
        {
            free_blk = cur_blk;
            break;
        }

        if(cur_blk->next == NULL)
        {
            break;
        }

        cur_blk=cur_blk->next;
    }

    return free_blk;
}

void split_block(memblk *free_blk, unsigned int size)
{
 assert(free_blk->size > (size + MEM_BLK_STRUCT_SIZE));

    //create a new block as next block
    void *address = &(free_blk->memory);
    memblk *next = (memblk *)((int)address + size);
    memset(next, 0, MEM_BLK_STRUCT_SIZE);
#ifdef INCLIDE_SANITY_CHECK_CODE
    next->signature = SIGN;
#endif
    next->prev = free_blk;
    next->next = free_blk->next;
    next->size = free_blk->size - (size + MEM_BLK_STRUCT_SIZE);

    free_blk->next = next;
    free_blk->size = size;
}


void * mem_alloc(unsigned int size)
{
    assert(size);

    if(size<1)
    {
        return NULL;
    }

    memblk* free_blk = find_free_block(size);

    if(free_blk == NULL)
    {    
        return NULL;
    }    
    
    if(free_blk->size > (size + MEM_BLK_STRUCT_SIZE))
    {
        split_block(free_blk, size);
    }
    
    free_blk->managed_data |= MEMORY_USED;
    return &(free_blk->memory);
}

void merge_blocks(memblk *left_blk, memblk *right_blk)
{
    assert(left_blk);
    assert(right_blk);
    assert(!(left_blk->managed_data & MEMORY_USED));
    assert(!(right_blk->managed_data & MEMORY_USED));

    left_blk->next = right_blk->next;
    left_blk->size += (right_blk->size + MEM_BLK_STRUCT_SIZE);

    if(right_blk->next)
    {
        right_blk->next->prev = left_blk;
    }

#ifdef INCLIDE_SANITY_CHECK_CODE
    memset(right_blk, 0xC3, MEM_BLK_STRUCT_SIZE);
#endif
}

void mem_free(void *address)
{
    assert(address);

    memblk *block = (memblk *)((int)address - MEM_BLK_STRUCT_SIZE);

#ifdef INCLIDE_SANITY_CHECK_CODE
    memset(address, 0xAC, block->size);
#endif

    block->managed_data &= ~MEMORY_USED;

    memblk *left_blk = block->prev;
    memblk *right_blk = block->next;
    memblk *cur_blk=block;
    if(left_blk && !(left_blk->managed_data & MEMORY_USED))
    {        
        merge_blocks(left_blk, cur_blk);
        cur_blk = left_blk;
    }

    if(right_blk && !(right_blk->managed_data & MEMORY_USED))
    {
        merge_blocks(cur_blk, right_blk);
    }
}

void print_heap()
{
    memblk *cur_blk=head;
    int count = 0;

    while(cur_blk)
    {
        printf("Block %d: Address: %d Next %d Prev %d Size: %d Used=%s\n", count, cur_blk, cur_blk->next, cur_blk->prev, cur_blk->size, (cur_blk->managed_data & MEMORY_USED)?"Yes":"No");
        count++;
        cur_blk=cur_blk->next;
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    block = malloc(SIZE);
    memset(block, 0, SIZE);

    head = (memblk*)block;
#ifdef INCLIDE_SANITY_CHECK_CODE
    head->signature = SIGN;
#endif
    head->prev = NULL;
    head->next = NULL;
    head->managed_data = 0;
    head->size = SIZE - MEM_BLK_STRUCT_SIZE;

    print_heap();
    printf("-------------------------------------------\n");
    void *mem=mem_alloc(16);
    memset(mem, 0xD1, 16);

    print_heap();
    printf("-------------------------------------------\n");

    void *mem2=mem_alloc(32);
    memset(mem2, 0xD2, 32);

    print_heap();
    printf("-------------------------------------------\n");


    void *mem3=mem_alloc(64);
    memset(mem3, 0xD3, 64);

    print_heap();
    printf("-------------------------------------------\n");

    mem_free(mem2);

    print_heap();
    printf("-------------------------------------------\n");


    mem_free(mem);

    print_heap();
    printf("-------------------------------------------\n");

    mem_free(mem3);

    print_heap();
    printf("-------------------------------------------\n");

    return 0;
}

Monday, January 7, 2013

মুহম্মদ জাফর ইকবাল এবং আমার কিছু স্মৃতি

স্কুল/কলেজে পড়ার সময় আমি যে টাকা পেতাম (সেটা খুব বেশি না) তার ৯০% যেত গল্পের বই কিনতে। আমার সংগ্রহে সেবার বই ছাড়া মুহম্মদ জাফর ইকবালের সাইন্স ফিকশন বইই ছিল সবচে' বেশি । আমার এক বন্ধুর ভাই যাকে আমরা টারজান ভাই ডাকি জোমাক নামে একটা কোম্পানিতে কাজ করতেন। এই কোম্পানিটা যমুনার উপর তখন ব্রিজ বানাচ্ছিল যে হুন্দাই কোম্পানির কাজ তদারকি করত। টারজান ভাইয়ের অনেক আগে থেকে কম্পিউটার এবং ইন্টারনেট ছিল। আমি মুহম্মদ জাফর ইকবালকে একটা ইমেইল করতে চাইলাম। উনি বললেন ইংরেজিতে লিখে দিতে। আমি যা লিখেছিলাম তার বাংলা করলে এরকম হয়- "ডিয়ার মুহম্মদ জাফর ইকবাল, আমি আপনার লেখা বেশিরভাগ বই পড়েছি। ...... ...আমি আপনার সাথে একবার দেখা করতে চাই। ইতি - কুয়াশা"। নিজের নাম লিখতে লজ্জা লাগছিল তাই কুয়াশা লিখেছিলাম। উত্তরে তিনি লিখেছিলেন "... বাংলাদেশ একটা খুবই ছোট দেশ। একদিন নিশ্চয়ই তুমি আমার সাথে দেখা করতে পারবে...." ।

এরপর শাহজালাল বিশ্ববিদ্যালয়ে ভর্তি পরীক্ষা দিতে গিয়ে প্রথম দেখলাম ওনাকে মদনমোহন কলেজে। সবার আগে ভর্তি পরীক্ষা - ১৯ ফেব্রুয়ারী ১৯৯৯। কোন ধারণা নাই কেমন পরীক্ষা হলে ভর্তি হওয়া যাবে। যাকেই জিজ্ঞাসা করি কতগুলা হইছে বলে ৭০-৭৫ টা। বাড়ি ফিরে গুনে দেখলাম আমার ৬৪টা হয়েছে ঠিক ৮০ টা প্রশ্নের মধ্যে। আশা ছেড়ে দিলাম সাস্টে ভর্তি হওয়ার। ২৮ তারিখে রেজাল্ট হল। আমি যেটার আর খোঁজ রাখি নাই। পরে ২ তারিখে রাজশাহীতে আমার এক বন্ধু বলল যে সাস্টের পরীক্ষার রেজাল্ট হয়েছে। আমি আমাদের কলেজের পিছনের পাবলিক লাইব্রেরিতে গিয়ে রেজাল্ট দেখলাম। সিরিয়াল অনুযায়ী সি.এস.ই তে ভর্তি হতে পারব দেখে প্রথমে বিশ্বাস হচ্ছিল না। ভাবলাম নিশ্চয়ই রোল নম্বর ভুল করছি- যেটা আছে সিরাজগঞ্জে আমার বাসায়। লাইব্রেরিয়ান খুব ভাল মানুষ- উনি আমাকে কপি করার জন্য পত্রিকাটা ফটোকপির দোকানে নিয়ে যেতে দিলেন। আমি ২ দিন পর বাড়িতে এসে মিলিয়ে দেখলাম যে ঠিকই আছে রোল নম্বর। এরপর বাকি বিশ্ববিদ্যালয়ের পরীক্ষার প্রস্তুতি মাথায় উঠল।

স্কুল থেকেই আমার কম্পিউটারের প্রতি বাড়াবাড়ি রকম আগ্রহ ছিল। কিন্তু তারপরও আমি ইন্টার পাশ করার আগে কম্পিউটার ছুয়ে দেখতে পারি নাই। "সি এন্ড ই জার্নাল" নামে একটা পত্রিকা বের হত যেটার আমি নিয়মিত গ্রাহক ছিলাম। সেটাতে একবার লিখলাম Z80 কম্পিউটার কোথায় পাওয়া যাবে। আমি চিন্তা করে দেখেছিলাম যে কম্পিউটার কেনার জন্য আমি ২-৫ হাজার টাকা সর্বোচ্চ ব্যয় করতে পারব। যাই হোক উত্তর পেলাম অত পুরাতন কম্পিউটার আর পাওয়া যাবে না। ১০-১৫ হাজার টাকায় পুরাতন একটা স্ট্যান্ডার্ড কম্পিউটার পাওয়া যাবে। ভাবলাম যে বানানো যায় কিনা। স্কুল থেকেই ইলেকট্রনিক্স আমার হবি ছিল। কিন্তু খোঁজ নিয়ে দেখলাম পার্টস পাওয়া সম্ভব না। কম্পিউটর সেন্টারের কোর্স ফিও নাগালের বাইরে। তারপরও সেটা শুধু টাইপ শেখা জাতীয় কোর্স হওয়ায় আর আমাকে তার বাইরে কিছু করতে দিবে না বলে আর যাইনি ওদের কাছে। ("সি এন্ড ই জার্নাল" এর যে কপিতে আমার চিঠিটা ছাপা হয়েছিল সেটার কপি যদি থাকে তাহলে আমার চিঠির একটা স্ক্যান কপি দিলৈ কৃতজ্ঞ থাকব)। একবার চুরি করে আমার এক কাজিনের বন্ধুর কম্পিউটার ব্যবহার করতে যেয়ে ধরা পড়ে কেলেঙ্কারি অবস্থা। চারতলা থেকে নীচে ফেলে দিবেন বলেছিলেন।

৫মে ভর্তি হতে গেলাম সাস্টে। ভর্তি ইন্টারভিউএ কোন বিষয়ে ভর্তি হব জিজ্ঞাসা করলেন ভর্তি কমিটির চেয়ারম্যান। আমি বললাম কম্পিউটার সায়েন্স। মুহম্মদ জাফর ইকবাল আমার দিকে ভর্তি ফরমটা এগিয়ে দিলেন এবং সেটাতে সাক্ষর করার পর উনি হটাৎ করে "জাফর স্যার" হয়ে গেলেন। এই সাক্ষরের পর আরেকটা বিশাল ফরম পুরণ করতে হয় বাইরে গিয়ে - যেটাতে স্বাক্ষর নেন সেটা কি ফরম আর মনে নাই। আমি কম্পিউটার সায়েন্সে ভর্তি হতে চাই এটা নিয়ে ভর্তি কমিটির অন্যান্য স্যারেরা হয়ত খুবই হতাশ হয়েছিলেন। কিন্তু আমি কম্পিউটার সায়েন্স শুধু জনপ্রিয় সাবজেক্ট বলে পড়তে চাই নি। কম্পিউটার সায়েন্সের প্রতি আমার আগ্রহ সম্ভবত টিনেজ ছেলেদের মেয়েদের প্রতি যে আগ্রহ থাকে তার সাথে তুলনা করা চলে। (মজার ব্যাপর হচ্ছে ঠিক ৮ বছর পর ৫ মে আমি মাইক্রোসফটে ইন্টারভিউ দিতে যাই হংকং) ।

১১ জুলাই ওরিয়েন্টেশন হল। সেখানে বিভিন্ন জন বিভিন্ন কথা বলল। কে যেন বিল গেটস হতে চাইল। আমি বললাম আমার যা খুশি সেটা আমি পড়তে পারব কিনা। জাফর স্যার উত্তর দিয়েছিলেন এটা একটু মুশকিল হবে। যাই হোক আমি সত্যি সত্যি আমার যা ইচ্ছা তাই পড়েছি। যে সাবজেক্ট ভাল লেগেছে সেটাতে A+ পেয়েছি। যেটা ভাল লাগেনি সেটাতে পাশ করতে হিমশিম খেয়েছি। ৮ সেমিস্টারের কোর্স ১১ সেমিস্টারে শেষ করেছি। তাও হতনা যদি জাফর স্যার ঝাড়ি দিয়ে পরীক্ষা না দেয়াতেন। আমি খুব একটা খারাপ ছাত্র ছিলাম না- শুধু হাই স্কুলে একবার অংকে ২৫ পেয়েছিলাম ১০০ তে- বাসায় বলেছিলাম ৫০ এর মধ্যে পরীক্ষা হয়েছে। কিন্তু বিশ্ববিদ্যালয়ে যাচ্ছেতাই অবস্থা।

জাফর স্যার কম্পিউটার ল্যাবটা ২৪ ঘন্টা উম্মুক্ত করে দিয়েছিলেন। আমি অনেক রাত ল্যাবে কাটিয়েছি (বাসায় পিসি ছিল না ফার্স্ট ইয়ারে)। দিনে ১০ ঘন্টার বেশি টার্বো-প‌্যাসকেল আই.ডি.ই খুলে এটা সেটা করার চেষ্টা করতাম। টার্বো-প‌্যাসকেল সফটওয়ারটা যখন খুশি ব্যবহার করতে পারার স্বাধীনতাটা আমার কাছে এত আনন্দের ছিল যেটা ভেবে এখনও আমি অবাক হই।

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

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

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

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

আমি জলমানব বইটাতে দেয়া মুহম্মদ জাফর ইকবালের অটোগ্রাফ সুযোগ পেলেই সবাইকে দেখাই।



Sunday, August 21, 2011

The E-Myth Revisited - Part 1

একটি সমীক্ষায় দেখা গেছে ক্ষুদ্র ব্যাবসা শুরুর এক বছরের মধ্যে ৪০% ব্যাবসা গুটিয়ে নিতে বাধ্য হয়- পাঁচ বছরের মধ্যে ৮০% আর যে সব পাঁচ বছর টিকে যায় তার মধ্যে ৮০% পরবর্তী পাঁচ বছরে ব্যাবসা গুটিয়ে নেয়। বইটির লেখক দীর্ঘদিন পর্যবেক্ষণ করে ব্যার্থ ব্যাবসা প্রতিষ্ঠান গুলোর মধ্যে আশ্চর্য কিছু সাদৃশ্য দেখতে পেয়েছেন। ঠিক তেমনি সাদৃশ্য পেয়েছেন সফল কোম্পানিগুলোর মধ্যেও। এই বইটিতে লেখক তাঁর পর্যবেক্ষণের ফলাফল বিস্তারিত তুলে ধরেছেন - কেন বেশিরভাগ ক্ষুদ্র ব্যাবসা সফল হতে পারে না এবং সে বিষয়ে কি করা যায় সে সম্পর্কে তাঁর ব্যাবস্থাপত্র দিয়েছেন। একজন উদ্যোক্তার এই বিষয়গুলো সম্পর্কে স্বচ্ছ ধারণা থাকলে সহজে সঠিক সিদ্ধান্ত নিতে পারেন।

Buy from Amazon

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

আপনি যদি আপনার ব্যাবসার উন্নতির জন্য কোন পরিবর্তন চান তাহলে আপনার নিজেকে সর্বপ্রথম পরিবর্তন করতে হবে। একজন অলস বা লোভী ব্যাক্তির প্রতিষ্ঠানে যারা কাজ করবে তারাও অলস বা লোভী হবে।-

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

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

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

একজন উদ্যোক্তা যখন কাজে নামেন তখন তার মধ্যে তিনটি ভিন্ন স্বত্তা কাজ করে। একজন প্রকৌশলী বা কারিগর, একজন ম্যানেজার আর একজন এন্টারপ্রেনার।

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

একজন ম্যানেজার সবকিছু পরিপাটি দেখতে চান। কোন পরিবর্তন তাকে আতঙ্কিত করে তোলে। তিনি সবকিছু ঠিকঠাক মত চললে স্বস্তি পান। কিন্তু একজন এন্টারপ্রেনার স্বপ্ন দেখেন। তিনি বিভিন্ন ধারণা পরীক্ষা করে দেখতে চান। এজন্য তার ম্যানেজার ও প্রকৌশলীর সহায়তা দরকার।

একজন এন্টারপ্রেনারকে চিন্তা করতে হয় একটা কোম্পানি কিভাবে পরিচালিত হবে। একজন প্রকৌশলী চিন্তা করেন কি কাজ করতে হবে। এন্টারপ্রেনার চিন্তা করেন ফলাফল কি হচ্ছে- প্রকৌশলী চিন্তা করেন কি কি কাজ করা হল- সেটার জন্য ফলাফল কি ঞল তা চিন্তা করতে চান না। এন্টারপ্রেনার ভবিষ্যতের কথা ভেবে সবকিছু করেন আর প্রকৌশলী চিন্তা করেন বর্তমানে তার হাতে কি কাজ আছে।

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


প্রথম পর্যায়ে উদ্যোক্তারা নিজেরা্ই সব কাজ করেন। উৎপাদন, মার্কেটিং, বিপনন সবকিছু। তারা দিনরাত কাজ করে যান। কিন্তু কাজের পরিমান দিনদিন বাড়তে থাকে আর উদ্যোক্তা তাল মেলাতে হিমসিম খেতে থাকেন।

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

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

=======================================================
এই বইটা কমপক্ষে তিনটা পার্টে শেষ করতে পারব। আরও কয়েকবার চেষ্টা করতে হবে ঠিক মত কাজটা করার জন্য। ১০ আগষ্ট শুরু করে আজ পর্যন্ত (২১ আগষ্ট) এইটুকু লিথতে পেরেছি-
=======================================================

Sunday, July 31, 2011

The Art of the Start

"এন্টারপ্রেনারশিপ"কে কোন পেশা বা দক্ষতার চেয়ে মনের একটি অবস্থা বলা ভাল। একজন উদ্যোক্তা কোন কিছু বদলে দিতে চান- আগের চেয়ে আরও ভালভাবে কোন পন্য বা সেবা কিভাবে দেয়া যায় সেটা নিয়ে চিন্তা করেন এবং সে অনুযায়ী কাজ করে যান। বইটিতে লেখক কালোত্তীর্ণ কিছু পরামর্শ দিয়েছেন। এই লেখাটি বইটার একটি মোটামুটি সারসংক্ষেপ বলা যেতে পারে।
Buy the book at Amazon.com






এজন উদ্যোক্তা হিসাবে আপনার পাঁচটি মূল বিষয় অবশ্যই খেয়াল করা উচিৎ-

১) যা করছেন তা যেন আপনার কাছে অর্থপূর্ণ হয়।
২) একটি মূলমন্ত্র বেছে নিন।
৩) দীর্ঘ প্লান করে অযথা সময় নস্ট না করে কাজে নেমে পড়ুন
৪) আপনাম ব্যবসার ধরন ঠিক করুন (বিজনেস মডেল)
৫) অনুমান, বড় বড় লক্ষ্য আর তার জন্য কি কি করতে হবে সে অনুযায়ী কাজের তালিকা রাখুন - প্রয়োজনে সংশোধন করুন ভুল পদক্ষেপ নিয়ে ফেললে-

শুরু করার আগে

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

সেই কারনে সেই দিকে না গিয়ে নিজেকে প্রশ্ন করুন-

১) আমি কি অর্থপূর্ণ কিছু করতে চাই?
২) আমি কি এই পৃথিবীকে একটুখানি এগিয়ে নিতে চাই?
৩) আমি কি মানুষের জীবনযাত্রার মান আমার পন্য বা সেবার মাধ্যমে বাড়াতে চাই?

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

আপনি যদি একটি কোম্পানির মালিক হন তাহলে নিজেকে প্রশ্ন করুন- আমার কোম্পানি না থাকলে কি অসুবিধা হত কোম্পানির পন্য বা সেবা গ্রহনকারীদের- যদি কোন উত্তর না পান তাহলে আপনি হয়ত একজন সফল ব্যবসায়ী - কিন্তু সত্যিকার অথ্যে উদ্যোক্তা নন। একজন মুদি দোকানের মালিক বা একজন বিপননকারীকে আমরা উদ্যোক্তা বলব না। আপনি কোন নতুন ধারনার উপর ভিত্তি করে একটা চায়ের দোকান প্রতিষ্ঠা করলে (যেমন ১ মিনিটে সুস্বাদু চা) আপনি একজন উদ্যোক্তা।


মূলমন্ত্র

আপনি আপনার কোম্পানির জন্য একটা মূলমন্ত্র ঠিক করুন। এটা আপনার মিশন স্টেটমেন্ট থেকে আলাদা হবে। উদাহরন হিসাবে IBM এর মূলমন্ত্র হচ্ছে Think। আপনি আপনার মূলমন্ত্র ঠিক করবেন আপনার প্রতিষ্ঠানের সাথে জড়িত সবার জন্য - ক্রেতাসাধারণের জন্য না- আপনার কোম্পানির মূলমন্ত্র হতে পারে "ক্রেতার সন্তুষ্টি" বা "সবার জন্য শিক্ষা" বা এই ধরনের কোন একটা সংক্ষিপ্ত শব্দগুচ্ছ। যেটা আপনার প্রতিষ্ঠানের সাথে জড়িত সবাই জানবে এবং বিশ্বাস করবে।

মূলমন্ত্রের সবচেয়ে ভাল দিক হচ্ছে এটা আপনাকে সিদ্ধান্ত নিতে সাহায্য করবে। কোনকিছু করবেন কিনা সেটা নিয়ে দ্বিধা থাকলে আপনি নিজেকে প্রশ্ন করবেন- এটা কি আপনার মূলমন্ত্রের সাথে সামঞ্জস্যপূর্ণ?

মূলমন্ত্র হবে হবে হা-বাচক- কি করতে চান সেটা প্রকাশ করবে- কি করতে চান না সেটা নয়-

দ্রুত বাজারজাত এবং তারপর অবিরাম এগিয়ে যাওয়া

আপনার প্রতিষ্ঠানের সব কাজ কি আপনার প্রতিষ্ঠানকে সামনের দিকে এগিয়ে নিচ্ছে? আপনি কি আপনার পণ্যের উৎপাদনের জন্য কাজ করে যাচ্ছেন? নাকি শুধু পরিকল্পনা করে যাচ্ছেন? সবকিছু ঝেড়ে ফেলে কাজে লেগে যান আর একটা নমুনা (Prototype) তৈরির দিকে মন দিন। প্রথমবারের চেষ্টায় সফল হয়েছে এমন কোম্পানির সংখ্যা খুবই নগণ্য। মানুষ কি ভাববে এটা নিয়ে চিন্তা করবেন না। কিভাবে আপনি শুরু করলেন সেটার চেয়ে আপনি কিভাবে আপনার পণ্য বা সেবার মান দিন দিন বাড়াচ্ছেন সেটা অনেক বেশি গুরুত্বপূর্ণ। সুতরাং একটা ভার্সন ১ তৈরি করুন - সেটাকে বাজারে ছেড়ে দিন- সবার মন্তব্য মন দিয়ে শুনুন- সে অনুযায়ী পণ্যের মানের বা ফিচার পরিবর্তন করুন- বারবার এটা করুন- প্রথম সংস্করণে কখনও যুগান্তকারী কিছু করা যায় না-

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

তবে এটা ব্যাপার খেয়াল রাখতে হবে। যে কাজে আপনার পন্য ব্যবহার হবে সেটা যেন মোটামুটি সহজে করা যায়। আপনি হয়ত একটা হাতুড়ি বাজারজাত করবেন- সেটা দিয়ে যেন পেরেক ঠোকা যায়। দেখতে যদি সেটা সুন্দর না হয় ক্ষতি নেই আপাতত। আপনি একটা টেক্সট এডিটর বানিয়েছেন। সেটা দেখতে খুব সুন্দর না হোক; অনেক ফিচান না থাক- কিন্তু সেটা দিয়ে টেক্সট এডিট করা যায় তো? আপনি যদি পৃথিবীর সবচেয়ে ভাল টেক্সট এডিটর বানানোর পরিকল্পনা করে থাকেন সেটা খুবই ভাল কথা- কিন্তু ভার্সন ১.০ তে সেটা করতে যাওয়া বোকামি হবে। এমন কি হতে পারে না যে আপনি যেটা গুরুত্বপূর্ণ ভ্বছেন সেটা আসলে ব্যবহারকারীর কাছে গুরুত্তচূর্ণ না? http://craigslist.org/ এই অসম্ভব জনপ্রিয় সাইটটি এবার ঘুরে আসুন। কেন এটা এত জনপ্রিয়?


কি করবেন

আপনি একটা কোম্পানি দাড়া করাবেন- কিন্তু মনের মত আইডিয়া পাচ্ছেন না?

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

আরেকটা হতে পারে যে আপনি হয়ত কোন কোম্পানিতে কাজ করেছেন- সেখানে ক্রেতার প্রয়োজন আছে এমন একটা পণ্যের যেটা আপনার কেই কোম্পানি বানাতে আগ্রহী নয়- আপনি নিজেই শুরু করে দিন যদি সম্ভব হয়।

আপনার কাজ হবে কোন একটা কিছুর অভাব খুজে বের করা- তারপর সেই অভাব পূরণ করা। বা কোন একটা সমস্যা খুজে বের করে তার সমাধান বের করা।

বিজনেস মডেল

আপনার একটা বিজনেস মডেল লাগবে। সেটা বিশাল হওয়ার দরকার নাই। আসলে সেটা হতে হবে খুবই ছোট। ১০ শব্দের মধ্যে হলে ভাল। জনপ্রিয় ebay কোম্পানির বিজনেস মডেল এরকম- "একটা লিস্টিং ফি থাকরে আর বিক্রি প্রতি কমিশন নেয়া হবে"। কোটি কোটি টাকার বিজনেস যদি এত সাধারন মডেলে চলতে পারে তাহলে বিশাল আর জটিল বিজনেস মডেল তৈরি করা সময়ের অপচয় নয়কি? (সার্কিটের মুন্না ভাইকে দেয়া জটিল শব্দ ব্যবহারের পরামর্শের কথা মনে পড়ল- হা হা হা)

আপনার কোম্পানি পরিচালনার খরচ আর আপনি কি পরিমান বিক্রি করতে পারবেন সেটা বিবেচনা করে সহজ একটা মডেল দাড়া করান।

গুরুত্বপূর্ণ লক্ষ্যসমুহ

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

মোটামুটি সব ধরনের কোম্পানির জন্য নিচের লক্ষ্যগুলো প্রযোজ্যঃ

১) আপনার আইডিয়ার বাস্তবায়ন সম্ভব কিনা সেটা যাচাই করা
২) পন্যে বা সেবার পরিকল্পনা
৩) নমুনা বা প্রোটোটাইপ তৈরি
৪) মূলধন সংগ্রহ
৫) যাচাই করা যায় এমন একটি ভার্সন বাজারে ছাড়া-
৬) ক্রেতার মতামত অনুযায়ী একটি ব্যবহারযোগ্য ভার্সন বাজারে ছাড়া
৭) খরচের চেয়ে মুনাফা বেশি হওয়া (Breakeven)

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

অনুমানসমুহ

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

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

কাজের তালিকা

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

মার্কেটিং থিম- আপনার কোম্পানির অবস্থান ঠিক করুন

আপনার কোম্পানি সম্পর্কে সাধারণ মানুষ কি ভাবে সেটা ঠিক করা অত্যন্ত জরুরী। আপনি যদি সফটওয়ার কোম্পানি হন- তাহলে আপনার ক্রেতা যেন আপনাকে হার্ডওয়ার বিপননকারী না ভাবে। যদিও আপনি আপনার সফটওয়ার দালানোর উপযোগী হার্ডওয়ার সরবরাহ করেন। আসুন এখন দেখি কিভাবে আপনি আপনার অবস্থান সম্পর্কে ধারণা দিবেন-

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

এরপর আপনি ঠিক করবেন আপনার পন্য কেন ক্রেতা কিনবে। আপনার পন্য ব্যবহার করে ক্রেতা কি উপকার পাবে। কখনই অন্য কোম্পানিকে বাজার থেকে উৎখাত করতে চান এটা বলতে যাবেন না। আপনার দায়িত্ব আপনার পণ্যের থেকে কি উপকার পাওয়া যাবে সেটার উপর জোর দেয়া।

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

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

আপনার মার্কেটিং থিম যেন ব্যক্তিগত হয়। ধরুন আপনি বললেন আপনার সফটওয়ার HTTPS প্রোটোকল ব্যবহার করে। আমি বলব তাতে আমার কি! আপনাকে বলতে হবে এই সফটওয়ার ব্যবহার করলে আপনার ব্যক্তিগত তথ্য নিরাপদ থাকবে- আপনার ক্রেডিটকার্ড অন্য কেউ ব্যবহার করতে পারবে না।

আপনার পণ্যের কোন সুবিধা বা ফিচার বলার সময় নিজেকে প্রশ্ন করবেন তাতে কি লাভ। তারপর সেই প্রশ্নের উত্তর দিবেন। তাহলে আপনার ফিচারের গুরুত্ব সবাই বুঝতে পারবে। শুধু টেকনিক্যাল টার্ম ব্যবহার করে আপনার ব্যবহারকারিকে বিভ্রান্ত করবেন না।

শূন্য থেকে শুরু

আপনার পুঁজি নেই কিন্তু কোম্পানি দাড়া করাতে পান? কোন সমস্যা নেই। মাইক্রোসফট, অ্যাপল, গুগল এরাও পুঁজি সংগ্রহ করে তারপর ব্যবসা শুরু করে নাই। আস্তে আস্তে বড় হয়েছে। টাকার অভাব কোন বাধা হয়নি। আপনার বড় কিছু করার স্বপ্ন থাকতে হবে। তারপর আনি শুরু করুন শূণ্য থেকে (Bootstrapping)।

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

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

Saturday, July 16, 2011

Anything You Want

এই বইটিতে লেখক ড্রেক সিভারস তাঁর সিডিবেবি নামের কোম্পানির উদ্যেশ্য, শুরু, বেড়ে ওঠা সম্পর্কে বিস্তারিত বলেছেন।এই লেখাটি বইটার একটি মোটামুটি সারসংক্ষেপ বলা যেতে পারে।

Buy the book at Amazon.com



সঠিক লক্ষ্য ঠিক করা

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

আপনার আদর্শ জগৎ

আপনার কোম্পানি যেন আপনার আদর্শ জগতের প্রতিফলন হয়। আপনি পৃথিবীর সব কোম্পানি কেমন হলে এই পৃথিবী আপনার কাছে অনেক অনেক সুন্দর হত মনে করেন? আপনি আপনার কোম্পানি সেভাবে গড়ে তুলুন।

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

আর আপনার উদ্যেশ্য যতক্ষণ আপনার কাছে ব্যক্তিগতভাবে অর্থপ‌ূর্ণ হবে ততক্ষণ আপনি আপাত দৃষ্টিতে বিরক্তিকর কাজের মধ্যেও আনন্দ পাবেন। প্রিয় মানুষের সাথে দেখা করতে যেতে যদি ১০ মাইল হাটতেও হয় সেটা কি আপনার কাছে বিরক্তিকর মনে হবে?

নিজের নয় অপরের জন্য

ড্রেক সিভারস একজন সংগীত শিল্পী। তিনি যখন বড় বড় মিউজিক ডিস্ট্রিবিউটরদের মাধ্যমে তার সিডি বিতরনের চেষ্টা করলেন তারা তাকে সাফ মানা করে দিল। তিনি চিন্তা করলেন তিনি নিজেই অনলাইনে বিক্রি করবেন। তার ওয়েব সাইটে ছিল শুধু  HTML পেজ। তিনি সেখানে খুব সামান্য পি.এইচ.পি কোডের মাধ্যমে অনলাইনে কেনার ব্যবস্থা করলেন। সেটা দেখে তার একজন শিল্পী বন্ধু অনুরোধ করলেন তার সিডিও বিক্রির ব্যবস্থা করে দিতে। তারপর আরেক বন্ধু- তারপর বন্ধুর বন্ধু- এভাবে প্রায় ৫০ জন পরিচিত অপরিচিত শিল্পীর সিডি তার অনলাইন শপে যোগ হল। এটা ছিল তার নিজের প্রয়োজন মিটিয়ে এবং অন্যদের সাহায্য করার একটা মাধ্যম। এর মাধ্যমে তার নিজের এবং অন্যদের প্রয়োজন মেটার সাথে সাথে ছয় মাসের মধ্যে হয়ে গেল একটা ব্যাবসা প্রতিষ্ঠান।

মিশন ষ্টেটমেন্ট

আপনি যদি আপনার ব্যবসার জন্য জমকালো মিশন স্টেটমেন্ট ঠিক করে থাকেন- তাহলে সেটা ভুলে গিয়ে সহজ একটা মিশন ষ্টেটমেন্ট ঠিক করুন। সিডিবেবি এর মিশন ষ্টেটমেন্ট ছিল এরকমঃ
১) সংগীত শিল্পী তার সিডি বিক্রির টাকা প্রতি সপ্তাহে পাবে
২) সিডি ক্রেতার সব তথ্য সংগীত শিল্পীকে চাইলে দেয়া হবে-
৩) বিক্রি যত কমই হোক কাউকে বাদ দেয়া হবে না সাইট থেকে
৪) সব সংগীত শিল্পী সআন সুযোগ পাবে। টাকার বিনিময়ে কাউকে বেশি সুযোগ দেয়া হবে না

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

বিজনেস প্লান/ মডেল

আপনি কি ৬০ পৃষ্ঠা বিজনেস প্লানের কথা ভাবছেন? সেটার কথা পুরোপুরি ভুলে যান। ৫ বছরের প্রজেকশন সহ বিসনেস প্লান যদি আপনার বানানোর পরিকল্পনা করে থাকেন তাহলে স্টিভ ব্লাংকের কথাটি আপনাকে মনে করিয়ে দিতে চাই-

No Plan Survives First Contact With Customers

সিডিবেবির বিজনেস মডেল ছিল মাত্র ২ লাইনের।
১) সংগীত শিল্পী নিজের সিডির দাম ঠিক করবে আর প্রতি বিক্রিত সিডির থেকে ৪ ডলার রেখে বাকিটা প্রতি সপ্তাহে শিল্পীকে দেয়া হবে-
২) সিডিপ্রতি ৩৫ ডলার সেটাপ ফি নেয়া হবে-

১৫ কোটি টাকার কোম্পানি যদি এই দুই লাইনের বিজনেস মডেলে চলতে পারি কোম্পানি শুরু করার আগে বিশাল বিসনেস প্লান ত্যরি কি হাস্যকর নয়?

কেউ যদি ব্যাংক লোন বা ভেন্চার ক্যাপিটালের দ্বারস্থ হন তাহলে বিসনেস প্লান একটা লাগবে- কিন্তু সেটা ভিন্ন প্রসংগ- ভেন্চার ক্যাপিটালের সাকসেস রেট ১০% এর কাছাকাছি। সুতরাং মনে রাখতে হবে ভেন্চার ক্যাপিটালের থেকে পুঁজি সংগ্রহ করতে পারলেও বিফল হওয়ার সম্ভবনা ৯০%। কিন্তু ক্রেতার উপকার হয় এরকম পন্য উৎপাদন করে এরকম কোম্পানির সফল না হওয়ার সম্ভবনা খুব কম।

নিরন্তর চেষ্টা / বিভিন্ন ভাবে চেষ্টা

সফল হওয়ার একমাত্র পন্থা নিরন্তর চেষ্টা করা- ঠিক? ভুল। একবার না পারলে শতবার চেষ্টা করার কথা কবিতায় লেখা আছে- কথাটার মধ্যে বড় একটা ফাঁক আছে। শতবার একইভাবে চেষ্টা করলে ফলাফল একই হবে।

সফল উদ্যোক্তা মাত্রই স্বীকার করবেন সফল হতে হলে কঠোর পরিশ্রম দরকার। কিন্তু সেটা হতে হবে প্রতিনিয়ত পদ্ধতির উন্নয়ন বা অন্য ভাবে চেষ্টা করা। একই কাজ একইভাবে শতবার চেষ্টা করার দরকার নেই।

কঠোর পরিশ্রম করার উৎসাহ ধরে রাখা খুব কঠিন। সেই কারণেই এটা খুবই গুরুত্বপ‌ূর্ণ যে ক্ষেত্রে আপনার ব্যবসা দাড়া করাতে চান সেটা যেন আপনি করে আন্দ পান।

পুঁজি

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

আসলে মানুষকে সাহায্য করা যদি হয় কোম্পানির উদ্যেশ্য হয় (আমরা আগেই দেখেছি সেটার লাভজনক হতে বাধা নেই) তাহলে টাকা কি ।ত গুরুত্বপূর্ণ মনে হচ্ছে?

সবাইকে খুশি করা সম্ভব নয়

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

আপনি যদি এমন কোন পন্য উৎপাদন করেন যা ১% মানুষের পছন্দ হয় আর ৯৯% মানুষ সেটা পছন্দ না করে তাহলে ওই ১% আপনার পণ্যের ভক্তে পরিনত হবে। ৯০% মানুষের জন্য সাধারন মানের পন্য তৈরির চেয়ে ১% মানুষের জন্য চোখ ফেরানো যায় না এমন পন্য তৈরি করা অনেক ভাল।


আপনার কোম্পানি আপনাকে ছাড়া চলবে কি?

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

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


সঠিক পথে চলা

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

মানুষ কি আপনার কোম্পানি থেকে উপকার পাচ্ছে? আপনার কাজ কি আপনাকে আনন্দ দিচ্ছে? আপনার কোম্পানি কি লাভজনক? সবগুলি প্রশ্নের উত্তর যদি হ্যা হয় তাহলে আপনি ঠিক পথেই আছেন।

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

<<<< লেখাটি ড্রাফট- পরিবর্ধন পরিমার্জন দরকার আছে >>>>>>