আমার README বলেছিল ৮০টি টুল। আমার কোডে ছিল ৯৬টি। সপ্তাহের পর সপ্তাহ কেউ তা খেয়াল করেনি।
আমি একটি ওপেন-সোর্স প্রজেক্ট পরিচালনা করি। এটি AI agents-এর জন্য browser automation ব্যবহার করে।
আমার README-তে লেখা ছিল যে প্রজেক্টটিতে ৮০টি টুল আছে। আমি সেই সংখ্যাটি ট্যাগলাইন, নেভিগেশন এবং সোশ্যাল মিডিয়া টেক্সটে ব্যবহার করেছিলাম।
গত সপ্তাহে আমি একটি অডিট চালিয়েছিলাম। আমি আমার README-এর সাথে আমার আসল কোড তুলনা করেছি।
কোডটিতে ৯৬টি টুল রেজিস্টার করা ছিল।
একটি ফাইলের মধ্যেই আমার কাছে তিনটি ভিন্ন সত্য ছিল:
- মার্কেটিং সংখ্যা: ৮০
- ডকুমেন্টেশনে থাকা তালিকা: ৮৩
- আসল কোড: ৯৬
তেরোটি টুল ছিল সম্পূর্ণভাবে ডকুমেন্টহীন। ব্যবহারকারীরা জানতেনই না যে সেগুলো আছে।
সবচেয়ে বিপজ্জনক অংশটি ছিল এই ব্যবধান বা গ্যাপ। সেই ডকুমেন্টহীন টুলগুলোর মধ্যে চারটি ছিল হাই-লেভেল সিস্টেম টুল। সেগুলো কিবোর্ড এবং মাউস নিয়ন্ত্রণ করার জন্য OS-level ইভেন্ট ব্যবহার করত। এটি আমার প্রজেক্টের সবচেয়ে শক্তিশালী এবং সংবেদনশীল অংশ।
এটি আমাকে ডকুমেন্টেশন ড্রিপ্ট (documentation drift) সম্পর্কে একটি কঠিন শিক্ষা দিয়েছে।
এই বিচ্যুতি বা ড্রিপ্ট এলোমেলোভাবে ঘটে না। এটি পক্ষপাতদুষ্ট। আপনি সহজ এবং বিরক্তিকর বিষয়গুলো ডকুমেন্ট করেন। কিন্তু তাড়াহুড়ো করে শিপ করা নতুন, শক্তিশালী বা সংবেদনশীল টুলগুলো ডকুমেন্ট করতে ভুলে যান।
আপনি যদি কোনো প্রজেক্টের সবচেয়ে ঝুঁকিপূর্ণ অংশটি খুঁজে পেতে চান, তবে ডকুমেন্টেশন পড়বেন না। ডকুমেন্টেশন এবং কোডের মধ্যকার ব্যবধানটি দেখুন।
আমি সংখ্যাটি ঠিক করার চেষ্টা করেছিলাম। সেটি ছিল একটি ভুল। শুধু সংখ্যাটি ঠিক করা মানে কেবল উপসর্গ বা লক্ষণটির চিকিৎসা করা।
সমস্যাটি হলো ম্যানুয়াল মেইনটেন্যান্স। যদি কোনো মানুষ কোনো তথ্য টাইপ করে, তবে সেই তথ্যটি শেষ পর্যন্ত ভুল হয়ে যাবেই।
একমাত্র প্রকৃত সমাধান হলো সংখ্যাটি ভুল হওয়ার সম্ভাবনাটি অসম্ভব করে তোলা।
আপনাকে অবশ্যই 'source of truth' থেকে তথ্য আহরণ করতে হবে।
আমার প্রজেক্টে ইতিমধ্যে একটি সমাধান ছিল: smoke test। এই টেস্টটি সার্ভারকে জিজ্ঞাসা করে তার কতটি টুল আছে এবং সেই সংখ্যাটি যাচাই করে। এটি কোনো হার্ডকোডেড (hardcoded) সংখ্যা ব্যবহার করে না। এই টেস্টটি কখনোই বিচ্যুত হতে পারে না কারণ এটি কখনোই কোনো স্ট্যাটিক সংখ্যা সংরক্ষণ করে না।
আপনার লেখার ক্ষেত্রে আরও বেশি সুশৃঙ্খল হওয়ার চেষ্টা করা বন্ধ করুন। শৃঙ্খলা অনেক সময় ব্যর্থ হয়। পরিবর্তে, আপনার তথ্যগুলোকে অটোমেট করুন:
- বিল্ড টাইমে একটি স্ক্রিপ্ট ব্যবহার করে সংখ্যা জেনারেট করুন।
- সরাসরি আপনার কোড রেজিস্ট্রি থেকে টুলের তালিকা তৈরি করুন।
- মানুষ কেবল বর্ণনা এবং ব্যাখ্যার জন্য ব্যবহার করুন।
যদি কোনো তথ্য আহরণ করা সম্ভব হয়, তবে সেটি হাতে টাইপ করবেন না। এটি কেবল একটি বিচ্যুতি বা ড্রিপ্ট যা ঘটার অপেক্ষায় আছে।
আজই আপনার নিজের প্রজেক্টে এই অডিটটি চালান:
- আপনার কোডে থাকা আসল আইটেমগুলো গণনা করুন।
- আপনার ডকুমেন্টেশন যা দাবি করছে তা গণনা করুন।
- যদি তাদের মধ্যে অমিল থাকে, তবে সেই ব্যবধানের মধ্যে কী আছে তা খুঁজে বের করুন।
এই ব্যবধানের মধ্যে থাকা আইটেমগুলো সাধারণত আপনার প্রজেক্টের সবচেয়ে গুরুত্বপূর্ণ অংশ হয়ে থাকে।
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi