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

কাজের ছন্দটি রুদ্ধশ্বাস

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

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

প্রোডাকশনে দক্ষতা দ্রুত বৃদ্ধি পায়

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

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

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

বাগ-এর রূঢ় বাস্তবতা

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

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

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

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