কনটেন্টে যান
২০ আগস্ট, ২০২৬ · বিহাইন্ড দ্য বিল্ড

লঞ্চ ডে: লাইভ হওয়ার প্রথম ২৪ ঘণ্টার একটা ডায়েরি

এই আর্টিকেলটি প্রকাশের সময়ের প্রোডাক্ট বর্ণনা করে। বর্তমান সক্ষমতার জন্য AI বিল্ডার এবং এজেন্ট টিম দেখুন।

লঞ্চ ডে: লাইভ হওয়ার প্রথম ২৪ ঘণ্টার একটা ডায়েরি

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

সকাল ৬:৫৮ — প্রকাশ

আগের রাতেই আমি ডিপ্লয় টার্গেট প্রিয়ার নিজের ডোমেইনে সেট করে রেখেছিলাম, তাই এই অংশটা নিরুত্তেজ ছিল: প্রকাশে ক্লিক করলাম, বিল্ডের ভেরিফিকেশন রেকর্ড তার চেকগুলো চালাতে দেখলাম:

  • রুট রেজলভ হচ্ছে
  • শিফট-ক্লেইম এন্ডপয়েন্ট স্টাবের বদলে একটি আসল রেসপন্স ফেরত দিচ্ছে
  • SMS নোটিফিকেশন হুক ড্রাই-রানের বদলে আসলেই কনফিগার করা

সবুজ। আমি সকাল ৬:৫৮টায় প্রিয়াকে লিংকটা টেক্সট করলাম কারণ আমি জানতাম সে ঠিক তখনই তার শিফটে ঢুকবে আর আমি চেয়েছিলাম দিন শুরু হওয়ার আগেই সে এটা লাইভ দেখুক, পরে নয়।

সকাল ৭:১৫ — প্রথম প্রকৃত ব্যবহারকারী এমন কিছু করে যা আমি টেস্ট করিনি

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

সকাল ৯:৪০ — নীরবতা, আর নীরবতা নিয়ে আমি নার্ভাস হয়ে পড়ি

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

বেলা ১১:৫২ — বাগ

জন নার্স একে অপরের ছয় সেকেন্ডের মধ্যে একই শিফট ক্লেইম করলেন

ক্লেইম এন্ডপয়েন্ট তিনটিই গ্রহণ করলো, কারণ আমি "মার্ক অ্যাজ ক্লেইমড" লজিকটা একটি সরল update-if-open চেক হিসেবে লিখেছিলাম, লক ছাড়া, আর স্বাভাবিক একক-ব্যবহারকারীর টেস্টিংয়ে এই race condition-এর ঘটার কোনো সুযোগই থাকে না। তিনটি আলাদা ফোন থেকে একই সাথে তিনটি ট্যাপে, এর প্রচুর সুযোগ থাকে। তিনজন নার্সই একটি নিশ্চিতকরণ টেক্সট পেলেন যে তারা শিফটটি কভার করেছেন। ডেনিস তাদের মধ্যে একজন ছিলেন, সেদিনের দ্বিতীয়বারের জন্য, আর এবার তিনি বিরক্ত হয়েছিলেন।

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

অ্যাপে বলছে ৩ জন একই শিফট পেয়েছে হাহা

দুপুর ১২:১০ — বিল্ড চ্যাটে

আমি সহজ ভাষায় বাগটি বর্ণনা করলাম: একই সময়ে ট্যাপ করলে একাধিক মানুষ একটি শিফট ক্লেইম করতে পারে, আর শুধু একটি ক্লেইমই টিকে থাকা উচিত। আমি প্রথমে নিজে সমাধান লেখার চেষ্টা করিনি, আংশিক কারণ আমি তখন একটা পার্কিং লটে ফোনে ছিলাম আর আংশিক কারণ ব্যর্থতাটা নিখুঁতভাবে বর্ণনা করা সাধারণত এটা নিখুঁতভাবে নির্ণয় করার চেয়ে দ্রুততর। এজেন্ট এটাকে ক্লেইম টেবিলে অনুপস্থিত row lock-এ ধরে ফেলল, একটি atomic conditional update-এ পরিবর্তনের প্রস্তাব দিল — ক্লেইম তখনই সফল হবে যখন শিফটের স্ট্যাটাস এখনো "open" থাকে, আর অপারেশনটাই নির্ধারণ করে কে জিতবে, একটি check-then-write-এর বদলে যা তিনটি রিকোয়েস্টকেই একই সময়ে "open" দেখতে দেয়। এটাই এক বাক্যে আসল বাগ, আর এটা এমন এক জিনিস যা বলার পর স্পষ্ট, কিন্তু কিছু একটা এটাকে সামনে না আনা পর্যন্ত অদৃশ্য।

দুপুর ১২:৩৪ — ফিক্স প্রকাশ হয়, আর আমি প্রিয়াকে অপেক্ষা করাই

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

দুপুর ২:০০ থেকে সন্ধ্যা ৬:০০ — একঘেয়ে, ভালো অংশ

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

আমি ফলাফল কল্পনা করার বদলে সংখ্যাগুলো দেখলাম, যা একেবারে ভিন্ন এবং অনেক বেশি শান্ত একটা কাজ।

আমি ভিন্নভাবে কী করতাম

দুটি জিনিস।

  1. লাইভে আবিষ্কার করার বদলে আমি মূল বিল্ড প্রম্পটেই একসাথে-ক্লেইম করার দৃশ্যকল্পটি বর্ণনা করতাম — "একাধিক ব্যবহারকারী, একই কাজ, একই মুহূর্ত" একটা বাক্য, কঠিন কোনো চাহিদা নয়, আমি শুধু এটা অন্তর্ভুক্ত করার কথা ভাবিনি কারণ আমার নিজের টেস্টিং স্বভাবতই ক্রমিক; আমি একবারে একটাই বোতাম চাপি।
  2. দ্বিতীয় সপ্তাহে আমি SMS নোটিফিকেশনের শব্দচয়নে বেশি বিনিয়োগ করেছিলাম — এমন একটি নিশ্চিতকরণ টেক্সটের তিনটি আলাদা রিরাইট যা নিয়ে কেউ অভিযোগ করেনি — আর ঠিক সেই ধরনের concurrency এজ কেসে কম বিনিয়োগ করেছিলাম যা বিরতিতে একসাথে ফোনের দিকে তাকিয়ে থাকা পুরো ফ্লোর নার্সদের প্রথম দিনেই হওয়ার কথা ছিল।

পরের লঞ্চে, আমি এমন কপি সাজাতে কম সময় ব্যয় করব যা নিয়ে কেউ সমালোচনা করবে না, আর বেশি সময় জিজ্ঞেস করতে ব্যয় করব "একসাথে পাঁচজন এটা করলে কী হবে," কারণ একাধিক প্রকৃত ব্যবহারকারী থাকা যেকোনো কিছুর জন্য, শেষমেশ, কেউ না কেউ এটা করবেই।

বিল্ডের পেছনের গল্প
শেয়ার করুনXLinkedInFacebookRedditQuoraWhatsAppTelegramইমেইল
← সব পোস্ট