Architecture Decision Record

Active theme: Light

← قوالب سجلات القرارات

قالب سجل القرار من Jeff Tyree وArt Akerman

هذا هو قالب وصف القرار المعماري المنشور في "Architecture Decisions: Demystifying Architecture" من تأليف Jeff Tyree وArt Akerman، Capital One Financial.

  • المسألة (Issue): صِف مسألة التصميم المعماري التي تعالجها، بحيث لا يبقى سؤال عن سبب معالجتها الآن. وباتباع نهج بسيط، عالج ووثّق فقط المسائل التي تحتاج إلى معالجة في نقاط مختلفة من دورة الحياة.

  • القرار (Decision): اذكر بوضوح اتجاه البنية المعمارية، أي الموقف الذي اخترته.

  • الحالة (Status): حالة القرار، مثل قيد الانتظار أو متخذ أو معتمد.

  • المجموعة (Group): يمكنك استخدام تجميع بسيط، مثل التكامل والعرض والبيانات وغيرها، للمساعدة في تنظيم مجموعة القرارات. ويمكنك أيضًا استخدام أنطولوجيا معمارية أكثر تطورًا، مثل أنطولوجيا John Kyaruzi وJan van Katwijk، التي تضم فئات أكثر تجريدًا مثل الحدث والتقويم والموقع. فمثلًا، باستخدام هذه الأنطولوجيا، ستجمع القرارات المتعلقة بوقائع يحتاج فيها النظام إلى معلومات تحت الحدث.

  • الافتراضات (Assumptions): صِف بوضوح الافتراضات الكامنة في البيئة التي تتخذ فيها القرار: التكلفة والجدول الزمني والتقنية وغيرها. لاحظ أن قيود البيئة (مثل المعايير التقنية المقبولة والبنية المعمارية المؤسسية والأنماط الشائعة الاستخدام وغيرها) قد تحدّ من البدائل التي تنظر فيها.

  • القيود (Constraints): دوّن أي قيود إضافية على البيئة قد يفرضها البديل المختار (القرار).

  • المواقف (Positions): اذكر المواقف (الخيارات أو البدائل القابلة للتطبيق) التي نظرت فيها. وغالبًا ما تحتاج إلى شروح مطولة، وأحيانًا إلى نماذج ومخططات. وهذه ليست قائمة شاملة. غير أنك لا تريد أن تسمع السؤال «هل فكرت في...؟» في مراجعة نهائية؛ لأن ذلك يؤدي إلى فقدان المصداقية والتشكيك في قرارات معمارية أخرى. ويساعد هذا القسم أيضًا على التأكد من أنك استمعت إلى آراء الآخرين؛ فذكر الآراء الأخرى صراحةً يساعد على استقطاب مناصريها إلى قرارك.

  • الحجة (Argument): لخّص سبب اختيارك موقفًا ما، بما في ذلك أمور مثل تكلفة التنفيذ وتكلفة الملكية الإجمالية والوقت اللازم للطرح في السوق وتوافر موارد التطوير المطلوبة. وربما كانت بأهمية القرار نفسه.

  • التبعات (Implications): يأتي القرار مع تبعات كثيرة، كما يشير نموذج REMAP الوصفي. فمثلًا، قد يستدعي القرار اتخاذ قرارات أخرى، أو ينشئ متطلبات جديدة أو يعدّل متطلبات قائمة، أو يفرض قيودًا إضافية على البيئة، أو يستلزم إعادة التفاوض مع العملاء على النطاق أو الجدول الزمني، أو يتطلب تدريبًا إضافيًا للموظفين. وفهم تبعات قرارك وبيانها بوضوح قد يكونان فعّالين جدًا في كسب التأييد ووضع خارطة طريق لتنفيذ البنية المعمارية.

  • القرارات ذات الصلة (Related decisions): من الواضح أن كثيرًا من القرارات مترابطة؛ ويمكنك ذكرها هنا. غير أننا وجدنا في الممارسة أن مصفوفة التتبع أو أشجار القرار أو النماذج الوصفية أكثر فائدة. والنماذج الوصفية مفيدة لإظهار العلاقات المعقدة في مخططات (مثل نماذج Rose).

  • المتطلبات ذات الصلة (Related requirements): ينبغي أن تكون القرارات مدفوعة بالأعمال. ولإظهار المساءلة، اربط قراراتك صراحةً بالأهداف أو المتطلبات. ويمكنك سرد هذه المتطلبات ذات الصلة هنا، لكننا وجدنا أن الإشارة إلى مصفوفة تتبع أكثر ملاءمة. ويمكنك تقييم إسهام كل قرار معماري في تلبية كل متطلب، ثم تقييم مدى تلبية المتطلب عبر جميع القرارات. وإذا لم يسهم قرار في تلبية أي متطلب، فلا تتخذ ذلك القرار.

  • النواتج ذات الصلة (Related artifacts): اذكر وثائق البنية المعمارية أو التصميم أو النطاق ذات الصلة التي يؤثر فيها هذا القرار.

  • المبادئ ذات الصلة (Related principles): إذا كان لدى المؤسسة مجموعة مبادئ متفق عليها، فتأكد من اتساق القرار مع واحد منها أو أكثر. فهذا يساعد على ضمان المواءمة عبر المجالات أو الأنظمة.

  • ملاحظات (Notes): لأن عملية اتخاذ القرار قد تستغرق أسابيع، وجدنا أن من المفيد تدوين الملاحظات والمسائل التي يناقشها الفريق أثناء عملية نشر القرار والتشاور حوله.