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

উইকেন্ড বিল্ড ডায়েরি: ৪৮ ঘণ্টায় আমার বোনের ডগ-ওয়াকিং অ্যাপ শিপ করা

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

উইকেন্ড বিল্ড ডায়েরি: ৪৮ ঘণ্টায় আমার বোনের ডগ-ওয়াকিং অ্যাপ শিপ করা

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

শুক্রবার, রাত ৮:৪০ — প্রম্পট

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

শুক্রবার, রাত ৯:০৫ — পরিকল্পনা ফিরে এলো

পরিকল্পনায় তিনটি জিনিস ছিল যা আমি চাইনি কিন্তু ভুলেই যেতাম:

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

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

শুক্রবার, রাত ৯:৪০ — প্রথম রান

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

শুক্রবার, রাত ১০:৩০ — প্রথম বিরতি

SMS অংশটার জন্য কিছু আসল পাঠানোর আগে একটা লাইভ প্রোভাইডার কী দরকার ছিল, যা সঠিক আচরণ, কোনো বাগ নয়, কিন্তু আমি ভুলে গিয়েছিলাম যে সেটা সেট আপ করিনি। বাকি সবকিছু কাজ করে যাচ্ছিল — অ্যাপটা শুধু লগ করছিল সে কী পাঠাতো, আসলে পাঠায়নি, যার মানে শুক্রবার রাত সাড়ে ১০টায় Twilio সাইনআপে আটকে না গিয়ে আমি বানিয়ে যেতে পারছিলাম। ঘুমাতে গেলাম।

শনিবার, সকাল ৮:০০ — আসল সমস্যা

এটাই আসল সময় খেয়ে ফেলেছিল। আমি চেয়েছিলাম রিমাইন্ডার "হাঁটার দিন সকালে" যাক, আর প্রথম সংস্করণটা এটাকে প্রতিটা ক্লায়েন্টের জন্য একটা নির্দিষ্ট সকাল ৭টার পাঠানো হিসেবে ব্যাখ্যা করেছিল, হাঁটার সময় নির্বিশেষে। সকাল ৯টার হাঁটার জন্য ঠিক ছিল, বিকাল ৪টারটার জন্য অকেজো। চ্যাটে ফিরে গিয়ে সরাসরি বললাম:

রিমাইন্ডার একটা নির্দিষ্ট ঘড়ির সময়ে নয়, বরং প্রতিটা হাঁটার নিজস্ব নির্ধারিত সময়ের আগে একটা নির্দিষ্ট ঘণ্টা সংখ্যায় বাজবে।

এই ঠিক করতে একটা বিনিময়ই যথেষ্ট ছিল। শিক্ষাটা টুল নিয়ে ছিল না, ছিল আমার নিজের প্রম্পট নিয়ে: "হাঁটার দিন সকাল" এমন একটা বাক্যাংশ যা বলা ব্যক্তির কাছে নির্দিষ্ট মনে হয় আর বাকি সবার কাছে, এমনকি বারো ঘণ্টা পরে আমার নিজের কাছেও, সম্পূর্ণ অস্পষ্ট।

শনিবার, সকাল ১১:১৫ — ভেরিফিকেশন রেকর্ড পড়া

আর কিছু ধরার আগে আমি দেখলাম বিল্ডটা নিজেকে কীসের বিরুদ্ধে যাচাই করেছিল:

  • ক্লায়েন্ট ফর্ম সঠিকভাবে সেভ হচ্ছে
  • রিমাইন্ডার জব একটা টেস্ট দিনের অ্যাপয়েন্টমেন্টের বিরুদ্ধে চলছে
  • অপ্ট-আউট লিঙ্ক আসলেই একটা টেস্ট নম্বর আনসাবস্ক্রাইব করছে

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

শনিবার, দুপুর ২:০০ — এবার সত্যিকারের SMS

প্রোভাইডার অ্যাকাউন্ট সেট আপ করলাম, কী বসিয়ে দিলাম, নিজেকে একটা টেস্ট রিমাইন্ডার পাঠালাম।

৯ সেকেন্ড — একটা টেস্ট হাঁটা চিহ্নিত করা থেকে রিমাইন্ডার আমার ফোনে আসা পর্যন্ত

ছোট ব্যাপার, কিন্তু এটাই সেই মুহূর্ত যখন একটা প্রজেক্ট ডেমো থেকে বাস্তবে অস্তিত্বশীল কিছুতে পরিণত হয়।

শনিবার, বিকাল ৪:২০ — ডোমেইনের অপেক্ষা

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

রবিবার, সকাল ৯:০০ — যে অংশটা প্রায় বাড়িয়ে ফেলেছিলাম

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

রবিবার, দুপুর ১:১০ — তাকে লিঙ্ক পাঠালাম

সে একটা পার্কিং লটে দাঁড়িয়ে তার ফোন থেকে একজন ক্লায়েন্ট যোগ করেছিল, যেটা আসলে আমার নিজে চেক করা যেকোনো কিছুর চেয়ে বেশি গুরুত্বপূর্ণ পরীক্ষা ছিল।

১৯ সেকেন্ড — একটা পার্কিং লট থেকে লাইভ নতুন ক্লায়েন্ট যোগ করতে তার লেগেছিল

রবিবার, সন্ধ্যা ৬:৪০ — পরের বার যা বাদ দেব

পরের বার যা বাদ দেব:

  • তিনবার পরিকল্পনা নতুন করে লেখা যাতে কিছুই বদলায়নি
  • SMS প্রোভাইডার নিয়ে দুই ঘণ্টা দুশ্চিন্তা, চেষ্টা করে দেখার আগেই
  • প্রায়-নির্মিত সারাংশ ড্যাশবোর্ড — পুরো সপ্তাহান্তের দ্রুততম ত্রিশ মিনিট ছিল যখন আমি নিজের আইডিয়াকে "না" বলতে টাইপ করেছিলাম, বানানোর বদলে

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

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