কেন আমাদের এমনকি উন্নয়ন প্রক্রিয়ায় কোনো নথির প্রয়োজন? এই বিবৃতি সম্পর্কে কি ? কোড নথি নিজেই আসুন সবচেয়ে সাধারণ পরিস্থিতি বিবেচনা করা যাক: সিস্টেমের কোড (সেটি একটি প্রোগ্রাম, প্রকল্প বা পণ্যই হোক না কেন) দীর্ঘ সময়ের জন্য লেখা হচ্ছে, এবং এই প্রক্রিয়া চলাকালীন দলটি ধীরে ধীরে পরিবর্তিত হয়, বিকাশকারীরা চলে যাওয়ার সাথে সাথে তাদের সাথে সিস্টেম সম্পর্কে নির্দিষ্ট জ্ঞান গ্রহণ করে। এমন ক্ষেত্রে আমরা কী করতে পারি? সবচেয়ে সহজ উত্তর হল যা সমস্ত বাস্তবায়নের বিবরণ ক্যাপচার করে যাতে সিস্টেমটি মূল প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করে। একটি স্পেসিফিকেশন লেখা যাইহোক, এই ধরনের একটি নথি আগে থেকে লেখা খুব কঠিন, এবং উন্নয়ন প্রক্রিয়া চলাকালীন, কিছু বাস্তবায়ন বিবরণ পরিবর্তিত হতে পারে (বাজারের সাথে খাপ খাইয়ে নেওয়া/মেকানিক্সের জন্য নতুন অনুরোধ ইত্যাদি)। সুতরাং, উন্নত করার জন্য আমরা কি পরিকল্পনা করতে পারি? বাস ফ্যাক্টর আসুন একটি প্রবাহ অনুসরণ করার চেষ্টা করি যা উপরে উল্লিখিত সমস্যার সমাধানের সম্ভাব্য সমাধানগুলির মধ্যে একটি হতে পারে। প্রয়োজনীয়তা এবং RFC প্রথমত, আমাদের স্টেকহোল্ডারদের প্রয়োজনীয়তার ভিত্তিতে প্রাথমিক নকশা বর্ণনা করতে হবে এবং এটি নথিভুক্ত করতে হবে। এর পরে, এই নথিটি অন্যান্য দলের সাথে ভাগ করা যেতে পারে এবং তাদের প্রতিক্রিয়া অনুরোধ করা হয়েছে: নির্দিষ্ট বৈশিষ্ট্যগুলি বাস্তবায়ন করতে বলুন, প্রাথমিক নকশায় মন্তব্য করুন, একটি নির্দিষ্ট ইন্টারফেস ঠিক করুন, ইত্যাদি। এই জাতীয় নথিটিকে একটি বলা যেতে পারে। RFC , বা "মন্তব্যের জন্য অনুরোধ," হল একটি ডকুমেন্ট যা আগ্রহী পক্ষের মধ্যে বিতরণ করা হয়—যার মধ্যে ডেভেলপার, আর্কিটেক্ট এবং অন্যান্য দল রয়েছে- প্রতিক্রিয়া, মন্তব্য এবং পরামর্শ সংগ্রহ করতে। এটি একটি স্পেসিফিকেশনের চেয়ে কম বিস্তারিত এবং এতে শুধুমাত্র প্রাথমিক সমস্যা, কাজ এবং সমাধানের ডোমেন অন্তর্ভুক্ত রয়েছে। আরও নমনীয় হওয়ার কারণে, এটি নকশার পরিবর্তনগুলিকে সক্রিয়ভাবে গ্রহণ করার জন্য কাজটির গভীর উপলব্ধি নিশ্চিত করে এবং গুণমান এবং চিন্তাশীল সিদ্ধান্ত গ্রহণের সুবিধা দেয়। RFC ডিজাইন প্রতিশ্রুতি এবং ADR ঠিক আছে, আমরা করেছি এবং । এরপর কি? প্রযুক্তিগত প্রয়োজনীয়তা সংজ্ঞায়িত অন্যান্য দল থেকে প্রয়োজনীয়তা সংগ্রহ করেছি এই পর্যায়ে, করা প্রয়োজন। এই উদ্দেশ্যে, আমরা একটি লিখি। সিস্টেমের নকশা এবং এটি যে সমস্ত প্রধান কার্য সম্পাদন করবে তা চূড়ান্ত ADR , বা "আর্কিটেকচার ডিসিশন রেকর্ড," হল একটি নথি যা সফ্টওয়্যার ডেভেলপমেন্ট প্রক্রিয়া চলাকালীন গুরুত্বপূর্ণ স্থাপত্য সংক্রান্ত সিদ্ধান্তগুলি রেকর্ড করে। প্রতিটি একটি নির্দিষ্ট উচ্চ-স্তরের স্থাপত্য সিদ্ধান্ত, এর প্রেক্ষাপট, বিকল্প বিবেচনা করা, সিদ্ধান্ত নেওয়া এবং অন্যদের তুলনায় এই নির্দিষ্ট বিবরণগুলি বেছে নেওয়ার প্রেরণা বর্ণনা করে। ADR ADR এই জাতীয় নথি প্রতিটি দলের সদস্যকে (এবং অন্যান্য দলগুলিকেও) নকশার অন্তর্নিহিত নীতি এবং মানগুলি অনুমতি দেয়। যদি কোনও নতুন বিকাশকারী বছর পরে দলে যোগদান করে এবং জিজ্ঞাসা করে, "কেন আপনি এইভাবে করেছেন?", তাদের এই নথিটি দেখানো যেতে পারে, যা তাদের সমস্ত প্রশ্নের উত্তর দেবে। বোঝার স্পেসিফিকেশন এখন কোড এবং এর স্পেসিফিকেশন লেখার পালা। এই পর্যায়ে, আমরা প্রতিটি বৈশিষ্ট্যের মাধ্যমে পুঙ্খানুপুঙ্খভাবে কাজ করি, একই সাথে একটি বিশেষ নথিতে সমস্ত তথ্য এবং বাস্তবায়নের বিবরণ সংকলন করি। এই নথিটি সিস্টেমের জন্য বর্তমান নিম্ন-স্তরের প্রয়োজনীয়তাগুলিকে প্রতিফলিত করবে। : সফ্টওয়্যার জীবনচক্রের সময়, এই জাতীয় স্পেসিফিকেশন উল্লেখযোগ্যভাবে পরিবর্তিত হতে পারে এবং এটি ঠিক আছে। যাইহোক, কোডবেসটিকে নিয়ন্ত্রণের অযোগ্য কিছু হতে বাধা দেওয়ার জন্য এখনও মূল নকশা এবং আর্কিটেকচারের মধ্যে থাকা খুবই গুরুত্বপূর্ণ। একটি গুরুত্বপূর্ণ বিষয় পরীক্ষণ পরিকল্পনা এটা কেন প্রয়োজন? স্পেসিফিকেশন অনুযায়ী লেখা (আমরা এই কোডের জন্য কোড এবং পরীক্ষা লিখি যাতে তারা পাস করে) তৈরি করা একটি পরীক্ষার পরিকল্পনার জন্য গুরুত্বপূর্ণ, তবে যা সমালোচনামূলক পরিস্থিতি অন্তর্ভুক্ত করে । এটাও খুব সুবিধাজনক যে আপনি অন্যান্য দলের পর্যালোচনার জন্য এই ধরনের একটি পরীক্ষা পরিকল্পনা জমা দিতে পারেন (একীকরণের জন্য বা শুধুমাত্র অতিরিক্ত পরীক্ষার জন্য), এটি পরিষ্কার করে যে সিস্টেমটি বিভিন্ন পরিস্থিতিতে কীভাবে আচরণ করবে। কোডের ভিত্তিতে নয় এমন একটি নকশার ভিত্তিতে সঠিকভাবে প্রক্রিয়া করা আবশ্যক এটা কি অন্তর্ভুক্ত? সমস্ত সম্ভাব্য সিস্টেম অপারেশন পরিস্থিতিতে সুখের পথ বিষণ্ণ পথ ত্রুটি পরিচালনা সিস্টেম অপারেশন সময় বজায় রাখা আবশ্যক যে সব সম্ভাব্য invariants শুরুতে সিস্টেমের অবস্থা পরীক্ষা করার জন্য গ্রহণযোগ্যতা পরীক্ষা (পরিবেশ বিবেচনা করা উচিত, যেমন, নেটওয়ার্কের ডেটা) আমরা চূড়ান্ত করেছি, কোড এবং লিখেছি এবং সংকলন করেছি। ইতিমধ্যে বেশ কঠিন শোনাচ্ছে! কিন্তু আমরা আর কি যোগ করতে পারি? নকশা স্পেসিফিকেশন পরীক্ষার পরিকল্পনা স্থাপনার পরিকল্পনা এবং এমন পরিস্থিতি তৈরি করার জন্য যে কোনও দলের সদস্য সিস্টেমটি স্থাপন করতে এবং এটির অবস্থা যাচাই করতে কিছু পরিমাণে এই জাতীয় পরিকল্পনার প্রয়োজন হতে পারে। বাস ফ্যাক্টর উন্নত করতে কেন আমরা এটা ছাড়া করতে পারি না? আমরা পারি, কিন্তু বাস্তব জগতে, অনেক বড় দল যেখানে সিস্টেমের বিভিন্ন অংশের জন্য অনেক লোক দায়ী, এবং স্থাপনা প্রক্রিয়া হতে পারে। এতে সমস্যা কী, যেহেতু আমরা পরীক্ষা লিখেছি, সেগুলিকে সিআই-তে রেখেছি এবং দুর্বলতার জন্য পরীক্ষা করেছি, আমাদের কি আর কিছু দরকার? হয়তো না, কিন্তু প্রায়ই পরীক্ষাগুলি সিস্টেমের বর্তমান অবস্থা বিবেচনা করে না এবং আমরা যা চাই তা পরীক্ষা করে না। সম্পূর্ণরূপে DevOps-এ অর্পিত কি স্থাপনার পরিকল্পনা : থাকতে পারে মোতায়েন সঞ্চালনের জন্য সঞ্চালিত করা প্রয়োজন এমন ক্রিয়াগুলির একটি সম্পূর্ণ বিবরণ৷ স্থাপনার পরামিতি: পরিবেশ পরিবর্তনশীল প্রাথমিক অবস্থায় লঞ্চের জন্য পরামিতি কোনো পদক্ষেপে কিছু ভুল হলে তার জন্য একটি পরিকল্পনা একটি ব্যাকআপ পরিকল্পনা, যদি সম্ভব হয় স্থাপনা চালিয়ে যাওয়া সম্ভব না হলে প্রয়োজনীয় অবস্থা যেখানে সিস্টেমটি আনতে হবে স্থাপনার পরে সঞ্চালিত করা প্রয়োজন যে কর্ম অন্যান্য দলকে অবহিত করুন প্রয়োজনে প্রয়োজনীয় ইন্টিগ্রেশন সক্রিয় করুন কিছুই জটিল, তাই না? একটি নির্দিষ্ট আপডেটের জন্য এই জাতীয় নথি থাকা করতে পারে এবং নির্দিষ্ট ব্যক্তির উপর । আমরা কি এটাই চাই না? বাস ফ্যাক্টরকে উল্লেখযোগ্যভাবে উন্নত নির্ভরতা প্রতিরোধ করতে পারে উপসংহার সফ্টওয়্যার ডেভেলপমেন্ট প্রক্রিয়ায়, শুধুমাত্র কোড লেখাই নয়, ডকুমেন্টেশন তৈরি করাও গুরুত্বপূর্ণ যা উন্নয়নের সমস্ত ধাপ জুড়ে বোঝাপড়া এবং ধারাবাহিকতা নিশ্চিত করে। ডকুমেন্টেশন , কিন্তু অভিজ্ঞতা দেখিয়েছে যে সিস্টেমের গুণমান, স্থিতিশীলতা এবং ভবিষ্যত মাপযোগ্যতা বজায় রাখার জন্য ডকুমেন্টেশন খুবই গুরুত্বপূর্ণ, বিশেষ করে যখন দলটি বিকাশের সময় পরিবর্তিত হয়, এবং এছাড়াও যখন প্রকল্পটি বিকশিত হয় এবং নতুন প্রয়োজনীয়তার সাথে খাপ খায়। নিজেই কোড হতে পারে ডকুমেন্টেশনের মধ্যে রয়েছে (মন্তব্যের জন্য অনুরোধ), (আর্কিটেকচার রেকর্ডস), , , এবং আরও অনেক কিছু। এটি গ্যারান্টি দেবে, প্রকল্পে প্রক্রিয়াকে সহজ করবে এবং । RFC ADR স্পেসিফিকেশন টেস্ট প্ল্যান ডিপ্লয়মেন্ট প্ল্যান দলে জ্ঞান ধারণ করার নতুন কর্মচারীদের একীভূত করার সিস্টেমের সামগ্রিক নির্ভরযোগ্যতা এবং পরিবর্তনের প্রতিরোধ বাড়াবে