عملية سجلات قرارات البنية المعمارية في AWS
سجل قرار البنية المعمارية (ADR) وثيقة تصف خيارًا يتخذه الفريق بشأن جانب مهم من البنية المعمارية للبرمجيات التي يخطط لبنائها. يصف كل سجل ADR القرار المعماري وسياقه وعواقبه. وللسجلات ADR حالات، ولذلك تتبع دورة حياة. وللاطلاع على مثال لسجل ADR، راجع الملحق.
تُنتج عملية ADR مجموعة من سجلات قرارات البنية المعمارية. وتشكّل هذه المجموعة سجل القرارات. ويوفّر سجل القرارات سياق المشروع إضافةً إلى معلومات تفصيلية عن التنفيذ والتصميم. ويتصفح أعضاء المشروع عناوين كل سجل ADR للحصول على نظرة عامة على سياق المشروع. ويقرؤون السجلات للتعمق في تنفيذات المشروع وخيارات التصميم.
عندما يقبل الفريق سجل ADR، يصبح غير قابل للتعديل. وإذا تطلبت رؤى جديدة قرارًا مختلفًا، يقترح الفريق سجل ADR جديدًا. وعندما يقبل الفريق السجل الجديد، يحل محل السجل السابق.
نطاق عملية ADR
ينبغي لأعضاء المشروع إنشاء سجل ADR لكل قرار ذي أثر معماري يؤثر في المشروع أو المنتج البرمجي، بما في ذلك ما يلي (Richards وFord 2020):
البنية (مثل الأنماط كالخدمات المصغّرة)
المتطلبات غير الوظيفية (الأمان والتوافر العالي وتحمّل الأعطال)
الاعتماديات (اقتران المكونات)
الواجهات (الواجهات البرمجية والعقود المنشورة)
تقنيات البناء (المكتبات والأطر والأدوات والعمليات)
المتطلبات الوظيفية وغير الوظيفية هي أكثر مدخلات عملية ADR شيوعًا.
محتوى ADR
عندما يحدد الفريق حاجة إلى سجل ADR، يبدأ أحد أعضاء الفريق بكتابته استنادًا إلى قالب على مستوى المشروع. (راجع مؤسسة ADR على GitHub للاطلاع على قوالب نموذجية.) يبسّط القالب إنشاء السجل ويضمن أن يلتقط كل المعلومات ذات الصلة. وعلى الأقل، ينبغي لكل سجل ADR أن يحدد سياق القرار والقرار نفسه وعواقب القرار على المشروع ومخرجاته. (للاطلاع على أمثلة لهذه الأقسام، راجع الملحق.) ومن أقوى جوانب بنية ADR أنها تركّز على سبب القرار لا على كيفية تنفيذه. وفهم سبب اتخاذ الفريق للقرار يسهّل على بقية أعضاء الفريق تبنّيه، ويمنع المعماريين الآخرين الذين لم يشاركوا في عملية اتخاذ القرار من نقضه في المستقبل.
عملية تبنّي ADR
يستطيع كل عضو في الفريق إنشاء سجل ADR، لكن على الفريق إرساء تعريف لملكية السجل. وعلى كل مؤلف يملك سجل ADR أن يصون محتوى السجل ويبلّغه بنشاط. وللتوضيح، يشير هذا الدليل إلى مؤلفي السجلات بوصفهم مالكي السجلات في الأقسام التالية. ويمكن لأعضاء الفريق الآخرين دائمًا المساهمة في السجل. وإذا تغير محتوى السجل قبل أن يقبله الفريق، فعلى المالك أن يوافق على هذه التغييرات.
بعد أن يحدد الفريق قرارًا معماريًا ومالكه، يقدّم مالك السجل السجل في حالة مقترح (Proposed) في بداية العملية. والسجلات في حالة «مقترح» جاهزة للمراجعة.
ثم يبدأ مالك السجل عملية مراجعة السجل. والهدف من عملية المراجعة أن يقرر الفريق هل يقبل السجل أم يرى أنه يحتاج إلى إعادة عمل أم يرفضه. ويراجع فريق المشروع، بمن فيه المالك، السجل. وينبغي أن يبدأ اجتماع المراجعة بوقت مخصص لقراءة السجل. وفي المتوسط، يكفي من 10 إلى 15 دقيقة. وخلال هذا الوقت، يقرأ كل عضو في الفريق الوثيقة ويضيف تعليقات وأسئلة لتمييز المواضيع غير الواضحة. وبعد مرحلة المراجعة، يقرأ مالك السجل كل تعليق بصوت عالٍ ويناقشه مع الفريق.
وإذا وجد الفريق نقاط عمل لتحسين السجل، تبقى حالة السجل مقترح. ويصوغ مالك السجل الإجراءات، وبالتعاون مع الفريق، يعيّن مسؤولًا عن كل إجراء. ويمكن لكل عضو في الفريق المساهمة في نقاط العمل وحلّها. ومن مسؤولية مالك السجل إعادة جدولة عملية المراجعة.
ويمكن للفريق أيضًا أن يقرر رفض السجل. وفي هذه الحالة يضيف مالك السجل سبب الرفض لمنع نقاشات مستقبلية في الموضوع نفسه. ويغيّر المالك حالة السجل إلى مرفوض (Rejected).
وإذا وافق الفريق على السجل، يضيف المالك ختمًا زمنيًا وإصدارًا وقائمة بأصحاب المصلحة. ثم يحدّث المالك الحالة إلى مقبول (Accepted).
تمثّل سجلات ADR وسجل القرارات الذي تنشئه القرارات التي اتخذها الفريق وتوفر تاريخًا لكل القرارات. ويستخدم الفريق السجلات مرجعًا خلال مراجعات الشيفرة والبنية المعمارية حيثما أمكن. وإضافةً إلى إجراء مراجعات الشيفرة ومهام التصميم ومهام التنفيذ، ينبغي لأعضاء الفريق الرجوع إلى السجلات في القرارات الاستراتيجية للمنتج.
وكممارسة جيدة، ينبغي أن يخضع كل تغيير برمجي لمراجعات الأقران وأن يتطلب موافقة واحدة على الأقل. وخلال مراجعة الشيفرة، قد يجد مراجع الشيفرة تغييرات تخالف سجل ADR واحدًا أو أكثر. وفي هذه الحالة يطلب المراجع من مؤلف تغيير الشيفرة تحديثها ويشارك رابطًا إلى السجل. وعندما يحدّث المؤلف الشيفرة، يوافق عليها مراجعو الأقران وتُدمج في قاعدة الشيفرة الرئيسية.
عملية مراجعة ADR
ينبغي للفريق التعامل مع سجلات ADR بوصفها وثائق غير قابلة للتعديل بعد قبولها أو رفضها. ويتطلب تعديل سجل ADR قائم إنشاء سجل ADR جديد، وإرساء عملية مراجعة للسجل الجديد، والموافقة عليه. وإذا وافق الفريق على السجل الجديد، فعلى المالك تغيير حالة السجل القديم إلى مستبدَل (Superseded).