২০০৩ সালে আমি DCSL Software প্রতিষ্ঠা করি, যা পরে One Beyond হয়ে ওঠে। কোম্পানিটিকে আন্তর্জাতিক পর্যায়ে নিয়ে যাওয়ার এবং ৩০০ জনেরও বেশি লোকে উন্নীত করার পর ২০২৩ সালে আমি প্রস্থান করি। তারপর থেকে, আমি একটি রোবোটিক্স স্টার্ট-আপ প্রতিষ্ঠা করেছি এবং সিড ফান্ডিংয়ে £৪M এর বেশি সংগ্রহ করেছি।
আমি কখনো আশা করিনি যে আবার প্রোডাকশন সফটওয়্যার লিখব। ২০১৪ সালে আমি দৈনন্দিন কোডিং বন্ধ করে দিয়েছিলাম, এটা নয় যে আমি পারতাম না, বরং একটি কোম্পানি যখন বড় হয় তখন এটাই ঘটে। আপনি এমন লোক নিয়োগ দেন যারা নির্বাহে আপনার চেয়ে ভালো, আপনি নেতৃত্বে মনোনিবেশ করেন, এবং ধীরে ধীরে কীবোর্ড আরও দূরে চলে যায়। প্রায় এক দশক ধরে, এটি সম্পূর্ণ স্বাভাবিক মনে হয়েছিল।
আমি যা আশা করিনি তা হল, প্রায় দশ বছর পরে, আমি নিজেকে আবার ডেভেলপারের আসনে খুঁজে পাব — নস্টালজিকভাবে নয়, বরং ব্যবহারিকভাবে। নিছক চেষ্টা করা নয় বরং সত্যিকারের জটিল রোবোটিক্স প্ল্যাটফর্ম তৈরি করা। এবং প্রতিটি ফ্রেমওয়ার্ক বা ভাষা পুনরায় শেখার মাধ্যমে নয়, বরং মৌলিকভাবে ভিন্ন উপায়ে কাজ করার মাধ্যমে।
এই ব্যক্তিগত পরিবর্তনটি সবচেয়ে স্পষ্ট সংকেত যা আমি দেখেছি যে সফটওয়্যার ডেভেলপমেন্টে কাঠামোগত কিছু পরিবর্তন হয়েছে।
যখন আমি শুরু করেছিলাম, আমরা দৃঢ়ভাবে ওয়াটারফল যুগে ছিলাম। এটি আদর্শ ছিল না, এটি অর্থনীতি ছিল। সফটওয়্যার তৈরি করা ধীর এবং ব্যয়বহুল ছিল, তাই একমাত্র যুক্তিসঙ্গত পদ্ধতি ছিল শুরুতে খুব গভীরভাবে চিন্তা করা।
আমরা বিস্তারিত স্পেসিফিকেশন লিখতাম কারণ আমাদের লিখতে হতো। চুক্তিগুলি এর উপর নির্ভর করত। ডেলিভারি এর উপর নির্ভর করত। একটি ভালো স্পেক লেখা একটি বিশেষজ্ঞ দক্ষতা ছিল, এবং আমি এতে যুক্তিসঙ্গতভাবে ভালো ছিলাম। আমি কল্পনা করতে পারতাম যে চূড়ান্ত পণ্যটি অস্তিত্বের আগে কেমন দেখাতে পারে, জটিলতার ক্ষেত্রগুলি পূর্বাভাস দিতে পারতাম, এবং যথেষ্ট নির্ভুলতার সাথে আচরণ বর্ণনা করতে পারতাম যাতে একটি টিম এটির বিরুদ্ধে তৈরি করতে পারে।
এই ক্ষমতা বিরল ছিল এবং শেখানো কঠিন ছিল। অনেক লোক এটি নিয়ে সংগ্রাম করেছিল কারণ একটি জটিল সিস্টেম কল্পনা করা যা এখনো বিদ্যমান নেই তা সত্যিই কঠিন। কিন্তু এটি গুরুত্বপূর্ণ ছিল, কারণ প্রক্রিয়ার শেষের দিকে ভুল করা বেদনাদায়ক এবং ব্যয়বহুল ছিল।
সময়ের সাথে সাথে, ইন্ডাস্ট্রি Agile এর দিকে অগ্রসর হয়। প্রকাশ্যে, এটিকে পরিবর্তনের প্রতিক্রিয়া জানানোর একটি ভালো উপায় হিসাবে উপস্থাপন করা হয়েছিল। নীরবে, এটি একটি স্বীকৃতিও ছিল যে বড়, দীর্ঘমেয়াদী সিস্টেমগুলির জন্য, কোনো স্পেসিফিকেশন অক্ষত থাকে না। ব্যবসা পরিবর্তিত হয়, ব্যবহারকারীরা পরিবর্তিত হয়, প্রযুক্তি পরিবর্তিত হয়, এবং অন্যথা ভান করা প্রায়শই ভালোর চেয়ে বেশি ক্ষতি করেছিল।
Agile বাস্তববাদী ছিল, কিন্তু এটি একটি মূল্যের সাথে এসেছিল। আমরা মূলত গভীর আগাম ডিজাইন পরিত্যাগ করেছিলাম এবং এটিকে ক্রমবর্ধমান আবিষ্কার দিয়ে প্রতিস্থাপন করেছিলাম। এটি কাজ করেছিল, কিন্তু এটি একটি মানসিকতাও স্বাভাবিক করেছিল যেখানে খুব বেশি এগিয়ে চিন্তা করাকে অপ্রয়োজনীয় বা এমনকি ঝুঁকিপূর্ণ হিসাবে দেখা হতো।
আমি হ্যান্ডস-অন ডেভেলপমেন্টে ফিরে আসতে পেরেছি এর কারণ এটি নয় যে আমি হঠাৎ এক দশকের টুলিং পুনরায় শেখার সময় বা ইচ্ছা পেয়েছি। এটি কারণ AI মূলত পরীক্ষা-নিরীক্ষার খরচ পরিবর্তন করেছে।
এটি সেই অংশ যা প্রায়শই ভুল বোঝা হয়। প্রকৃত পরিবর্তন এটি নয় যে কোড দ্রুত লেখা যায়। এটি হল যে জিনিসগুলি চেষ্টা করা এখন সস্তা, দ্রুত এবং মূলত বিপরীতমুখী।
যে জিনিসগুলি একসময় ডেভেলপার-সপ্তাহ নিত তা এখন মিনিটের মধ্যে চেষ্টা করা যেতে পারে। আপনি একটি পদ্ধতি অন্বেষণ করতে পারেন, দেখতে পারেন এটি কেমন অনুভব হয়, সম্পূর্ণভাবে ত্যাগ করতে পারেন এবং খুব কম জরিমানা সহ একটি ভিন্ন দিক চেষ্টা করতে পারেন। এটি আগে সম্ভব ছিল না।
অতীতে, কোডের প্রতি একটি শক্তিশালী আবেগজনিত এবং আর্থিক সংযুক্তি ছিল। যদি কিছু তৈরি করতে দুই ডেভেলপারের তিন সপ্তাহ লাগে, তাহলে আপনি বোধগম্যভাবে এটি ফেলে দিতে অনিচ্ছুক ছিলেন। সিদ্ধান্তগুলি তাড়াতাড়ি শক্ত হয়ে গিয়েছিল, সবসময় কারণ তারা সঠিক ছিল না, বরং কারণ সেগুলি বিপরীত করা খুব ব্যয়বহুল ছিল।
এই সীমাবদ্ধতা চলে গেছে এবং এটিই আমাকে আবার টেনে এনেছে। আমি এখন যে স্তরে সবচেয়ে শক্তিশালী সেই স্তরে কাজ করতে পারি — সমস্যা বোঝা, সিস্টেম গঠন করা, জটিলতা যখন ঢুকছে তা চিহ্নিত করা — যখন AI যান্ত্রিকতা পরিচালনা করে। আমি আমার বিশের দশকে যেভাবে কোড লিখতাম সেভাবে লিখছি না। আমি এটি নির্দেশনা দিচ্ছি, পরিমার্জন করছি, সংশোধন করছি, এবং মাঝে মাঝে এটিকে সম্পূর্ণ ভুল দিকে যাওয়া থেকে থামাচ্ছি। বাস্তবে, এটি কোড লেখার চেয়ে একটি টিম নেতৃত্ব দেওয়ার অনেক কাছাকাছি মনে হয়। আপনি কার্যকরভাবে বস — দিকনির্দেশনা সেট করছেন, আউটপুট পর্যালোচনা করছেন, অলস শর্টকাট চিহ্নিত করছেন, এবং কিছু সঠিক মনে না হলে পিছনে ঠেলছেন।
এটি অনুমান করা সহজ হবে যে এই নতুন স্বাধীনতা ডিজাইনকে কম গুরুত্বপূর্ণ করে তোলে। বাস্তবে, এটি এটিকে আরও গুরুত্বপূর্ণ করে তোলে।
আপনি কী তৈরি করার চেষ্টা করছেন তার একটি স্পষ্ট, বিস্তারিত ধারণা থাকা এখনও অত্যন্ত মূল্যবান। প্রকৃতপক্ষে, এটি সক্রিয়ভাবে AI আউটপুট উন্নত করে। উদ্দেশ্য যত স্পষ্ট, ফলাফল তত ভালো। অস্পষ্ট চিন্তা কেবল আরও দ্রুত অস্পষ্ট সিস্টেম তৈরি করে। বোঝার জন্য যা গুরুত্বপূর্ণ তা হল AI একজন ব্যক্তির মতোই আচরণ করে। এটি সহায়ক হতে চায়। এটি আপনাকে একটি উত্তর দিতে চায়। যদি আপনি অস্পষ্ট হন, এটি শূন্যস্থান পূরণ করবে। যদি আপনি অসাবধান হন, এটি অনুমান করবে। যদি আপনি এটিকে চ্যালেঞ্জ না করেন, এটি আত্মবিশ্বাসের সাথে ভুল পথে চলতে থাকবে।
পার্থক্য হল যে ডিজাইন আর একটি ভঙ্গুর, এককালীন নিদর্শন নয় যা বছরের পর বছর অপরিবর্তিত থাকতে হবে। এটি পরীক্ষা-নিরীক্ষার জন্য একটি গাইড হয়ে উঠেছে বরং এটির উপর একটি সীমাবদ্ধতা নয়। আপনি যেখানে যাচ্ছেন সেখানে একটি শক্তিশালী দৃষ্টিভঙ্গি ধরে রাখতে পারেন যখন এখনও চেষ্টা করতে, ত্যাগ করতে এবং সেখানে পৌঁছানোর পথ বিকশিত করতে ইচ্ছুক।
নতুন দক্ষতা হল কখন অন্বেষণ উৎপাদনশীল এবং কখন এটি শুধু শব্দ তা জানা। AI খুশিতে কাঠামো তৈরি করতে থাকবে যতক্ষণ না এটি সরলীকরণ করা উচিত ছিল তার অনেক পরে। এটি জানে না কখন একটি ফাইল খুব বড় হয়ে গেছে, কখন একটি বিমূর্ততা লিক করছে, বা কখন কিছু যা আজ "কাজ করে" পরে ব্যথা সৃষ্টি করবে। সেই প্রবৃত্তিগুলি এখনও অভিজ্ঞতা থেকে আসে।
একবার পরীক্ষা-নিরীক্ষা সস্তা হয়ে গেলে, অনেক দীর্ঘস্থায়ী অনুমান ধরে রাখা বন্ধ হয়ে যায়। পরিকল্পনা আর আগাম সবকিছু লক করার বিষয়ে নয়। এটি উদ্দেশ্য, সীমাবদ্ধতা এবং সীমানা সেট করার বিষয়ে।
অনুমান প্রচেষ্টার পূর্বাভাস দেওয়ার বিষয়ে কম এবং আপনি যে স্থান অন্বেষণ করছেন তা বোঝার বিষয়ে বেশি হয়ে যায়।
এবং কোডের সাথে আমাদের সম্পর্ক সম্পূর্ণভাবে পরিবর্তিত হয়। নির্দিষ্ট বাস্তবায়নের প্রতি অনেক কম সংযুক্তি রয়েছে এবং আচরণ, কাঠামো এবং ফলাফলের উপর অনেক বেশি ফোকাস রয়েছে।
এই কারণেই সফটওয়্যার ডেভেলপমেন্ট ইন্ডাস্ট্রি অস্থির অনুভব করে। অনেক লোক পুরানো মানসিক মডেলগুলি নতুন টুলগুলিতে প্রয়োগ করার চেষ্টা করছে। এটি কিছুক্ষণের জন্য কাজ করে, কিন্তু এটি বিন্দুটি মিস করে।
আমি কেন আত্মবিশ্বাসী যে এই পরিবর্তন স্থায়ী তার কারণ সহজ: আমি অন্যথায় আবার তৈরি করতাম না।
এক দশক দূরে থাকার পরে আমি বিশ্বাসযোগ্যভাবে হ্যান্ডস-অন ডেভেলপমেন্টে ফিরতে পারি এর একমাত্র কারণ হল যে সীমাবদ্ধতাগুলি আমাকে প্রথম স্থানে বাইরে ঠেলে দিয়েছিল তা আর প্রযোজ্য নয়। সফটওয়্যার এখন নির্দেশিত পরীক্ষা-নিরীক্ষার মাধ্যমে বিকশিত হতে পারে এমনভাবে যা আগে সম্ভব ছিল না।
এর মানে এই নয় যে অভিজ্ঞতা কম গুরুত্বপূর্ণ। এর অর্থ এটি ভিন্নভাবে গুরুত্বপূর্ণ। মান আর সিনট্যাক্স বা ফ্রেমওয়ার্ক মনে রাখার মধ্যে নেই। এটি বিচার, কাঠামো এবং কখন থামতে হবে তা জানার মধ্যে রয়েছে।
এটি সফটওয়্যার ডেভেলপমেন্টের শেষ নয়। কিন্তু এটি পুরানো মডেলের শেষ। এবং একবার আপনি এইভাবে কাজ করলে, ফিরে যাওয়ার কোনো উপায় নেই।

