জেফ টাইরি ও আর্ট আকারম্যানের সিদ্ধান্ত রেকর্ড টেমপ্লেট
এটি "Architecture Decisions: Demystifying Architecture" by Jeff Tyree and Art Akerman, Capital One Financial-এ প্রকাশিত আর্কিটেকচার সিদ্ধান্ত বর্ণনার টেমপ্লেট।
বিষয় (Issue): আপনি যে আর্কিটেকচারগত নকশা-সমস্যা সমাধান করছেন তা বর্ণনা করুন, এবং এই সমস্যা কেন এখন সমাধান করছেন সে সম্পর্কে কোনো প্রশ্ন বাকি রাখবেন না। ন্যূনতম পদ্ধতি অনুসরণ করে জীবনচক্রের বিভিন্ন পর্যায়ে কেবল যেসব সমস্যার সমাধান প্রয়োজন সেগুলোই সম্বোধন ও নথিভুক্ত করুন।
সিদ্ধান্ত (Decision): আর্কিটেকচারের দিকনির্দেশ, অর্থাৎ আপনার বেছে নেওয়া অবস্থান, স্পষ্টভাবে লিখুন।
অবস্থা (Status): সিদ্ধান্তের অবস্থা, যেমন pending, decided বা approved।
গোষ্ঠী (Group): সিদ্ধান্তের সংকলন সাজাতে আপনি সহজ গোষ্ঠীবিভাগ ব্যবহার করতে পারেন, যেমন ইন্টিগ্রেশন, প্রেজেন্টেশন, ডেটা ইত্যাদি। এছাড়া আরও পরিশীলিত আর্কিটেকচার অন্টোলজিও ব্যবহার করতে পারেন, যেমন John Kyaruzi ও Jan van Katwijk-এর অন্টোলজি, যাতে ইভেন্ট, ক্যালেন্ডার ও অবস্থানের মতো আরও বিমূর্ত শ্রেণি আছে। উদাহরণস্বরূপ, এই অন্টোলজি ব্যবহার করলে যেসব সিদ্ধান্ত এমন ঘটনা নিয়ে, যেখানে সিস্টেমের তথ্য প্রয়োজন, সেগুলো আপনি ইভেন্টের অধীনে গোষ্ঠীবদ্ধ করবেন।
অনুমান (Assumptions): আপনি যে পরিবেশে সিদ্ধান্ত নিচ্ছেন, তার অন্তর্নিহিত অনুমানগুলো স্পষ্টভাবে বর্ণনা করুন - খরচ, সময়সূচি, প্রযুক্তি ইত্যাদি। লক্ষ্য করুন, পরিবেশগত সীমাবদ্ধতা (যেমন গৃহীত প্রযুক্তি মান, এন্টারপ্রাইজ আর্কিটেকচার, প্রচলিত প্যাটার্ন ইত্যাদি) আপনার বিবেচিত বিকল্পগুলোকে সীমিত করতে পারে।
সীমাবদ্ধতা (Constraints): নির্বাচিত বিকল্প (সিদ্ধান্ত) পরিবেশের ওপর যে অতিরিক্ত সীমাবদ্ধতা চাপাতে পারে তা লিপিবদ্ধ করুন।
অবস্থানসমূহ (Positions): আপনার বিবেচিত অবস্থানগুলোর (সম্ভাব্য বিকল্প) তালিকা দিন। এগুলোর জন্য প্রায়ই দীর্ঘ ব্যাখ্যা, কখনো মডেল ও ডায়াগ্রামও প্রয়োজন হয়। এটি সম্পূর্ণ তালিকা নয়। তবে চূড়ান্ত পর্যালোচনায় আপনি “আপনি কি এটা ভেবে দেখেছেন...?” প্রশ্নটি শুনতে চান না; এতে বিশ্বাসযোগ্যতা নষ্ট হয় এবং অন্যান্য আর্কিটেকচার সিদ্ধান্ত নিয়েও প্রশ্ন ওঠে। এই অংশ নিশ্চিত করতেও সাহায্য করে যে আপনি অন্যদের মতামত শুনেছেন; অন্য মতামত স্পষ্টভাবে উল্লেখ করলে তার সমর্থকরা আপনার সিদ্ধান্তে যুক্ত হন।
যুক্তি (Argument): আপনি কেন একটি অবস্থান বেছে নিয়েছেন তার রূপরেখা দিন, যার মধ্যে থাকবে বাস্তবায়নের খরচ, মালিকানার মোট খরচ, বাজারে আসার সময় এবং প্রয়োজনীয় উন্নয়ন সম্পদের প্রাপ্যতা। এটি সম্ভবত সিদ্ধান্তের মতোই গুরুত্বপূর্ণ।
প্রভাব (Implications): REMAP মেটামডেল যেমন নির্দেশ করে, একটি সিদ্ধান্ত অনেক প্রভাব নিয়ে আসে। উদাহরণস্বরূপ, একটি সিদ্ধান্ত অন্য সিদ্ধান্ত নেওয়ার প্রয়োজন তৈরি করতে পারে, নতুন প্রয়োজনীয়তা সৃষ্টি করতে বা বিদ্যমান প্রয়োজনীয়তা বদলাতে পারে; পরিবেশের ওপর অতিরিক্ত সীমাবদ্ধতা চাপাতে পারে; গ্রাহকদের সঙ্গে পরিধি বা সময়সূচি পুনরায় আলোচনা করতে বাধ্য করতে পারে; অথবা অতিরিক্ত কর্মী প্রশিক্ষণ দাবি করতে পারে। আপনার সিদ্ধান্তের প্রভাব স্পষ্টভাবে বোঝা ও বলা সমর্থন আদায়ে এবং আর্কিটেকচার বাস্তবায়নের রোডম্যাপ তৈরিতে অত্যন্ত কার্যকর হতে পারে।
সম্পর্কিত সিদ্ধান্ত (Related decisions): এটা স্পষ্ট যে অনেক সিদ্ধান্ত পরস্পর সম্পর্কিত; আপনি সেগুলো এখানে তালিকাভুক্ত করতে পারেন। তবে আমরা দেখেছি, বাস্তবে ট্রেসেবিলিটি ম্যাট্রিক্স, সিদ্ধান্ত বৃক্ষ বা মেটামডেল বেশি কার্যকর। জটিল সম্পর্ক ডায়াগ্রামের মাধ্যমে দেখাতে মেটামডেল কার্যকর (যেমন Rose মডেল)।
সম্পর্কিত প্রয়োজনীয়তা (Related requirements): সিদ্ধান্ত হওয়া উচিত ব্যবসা-চালিত। দায়বদ্ধতা দেখাতে আপনার সিদ্ধান্তগুলোকে উদ্দেশ্য বা প্রয়োজনীয়তার সঙ্গে স্পষ্টভাবে সংযুক্ত করুন। সম্পর্কিত প্রয়োজনীয়তাগুলো আপনি এখানে গণনা করতে পারেন, তবে আমরা ট্রেসেবিলিটি ম্যাট্রিক্সের উল্লেখ করা বেশি সুবিধাজনক পেয়েছি। প্রতিটি প্রয়োজনীয়তা পূরণে প্রতিটি আর্কিটেকচার সিদ্ধান্তের অবদান আপনি মূল্যায়ন করতে পারেন, এবং তারপর সব সিদ্ধান্ত মিলিয়ে প্রয়োজনীয়তাটি কতটা পূরণ হয়েছে তা মূল্যায়ন করতে পারেন। কোনো সিদ্ধান্ত যদি কোনো প্রয়োজনীয়তা পূরণে অবদান না রাখে, তাহলে সেই সিদ্ধান্ত নেবেন না।
সম্পর্কিত উপকরণ (Related artifacts): এই সিদ্ধান্ত যেসব সম্পর্কিত আর্কিটেকচার, নকশা বা পরিধি নথিকে প্রভাবিত করে, সেগুলোর তালিকা দিন।
সম্পর্কিত নীতি (Related principles): এন্টারপ্রাইজের যদি সম্মত একটি নীতিমালা থাকে, তাহলে নিশ্চিত করুন যে সিদ্ধান্তটি তার এক বা একাধিকের সঙ্গে সামঞ্জস্যপূর্ণ। এটি ক্ষেত্র বা সিস্টেম জুড়ে সামঞ্জস্য নিশ্চিত করতে সাহায্য করে।
টীকা (Notes): সিদ্ধান্ত গ্রহণ প্রক্রিয়া সপ্তাহের পর সপ্তাহ চলতে পারে বলে, আমরা সামাজিকীকরণ প্রক্রিয়ায় দল যেসব টীকা ও সমস্যা নিয়ে আলোচনা করে তা লিপিবদ্ধ করা কার্যকর পেয়েছি।