Interview Handbook by Sayed Elmahdy English

المحور 27 · أساسيات بتفرّق معاك

Software Engineering Process

SDLC، و Agile و Scrum و Kanban، و Estimation، و Requirements، و Documentation، و Tech debt، و Definition of Done.

20 سؤالJunior · 6Mid · 9Senior · 510 اختيارات

المفاهيم

هنفهم إيه؟ هنتتبع شغل feature من طلب غير واضح لقرار تصميم، implementation، مراجعة، نشر وتشغيل. مثال إلغاء order هيوضح ليه طريقة التسليم وقواعد القبول والـ feedback بتأثر على مخاطرة الشغل.

قبل ما تبدأ: افترض إن فيه مستخدم وهدف تجاري وتغيير في software. requirement تصف سلوكًا أو جودة مطلوبة؛ acceptance criterion مثال قابل للتحقق يبيّن إمتى السلوك مقبول. Scrum وKanban طريقتان لتنظيم العمل، مش أدوات برمجة. اقرأ البطاقات بالترتيب لو مصطلحات Agile و جديدة عليك.

المصطلحات اللي تحتها خط منقّط تقدر تضغط عليها لمعرفة معناها، وترجع تكمل من نفس مكانك.

#SDLC: اختار دورة تناسب المخاطرةSDLC: match the lifecycle to the risk

كتابة الكود جزء من شغل أوسع: نفهم الاحتياج، ونصمم، وننفذ، ونتحقق، وننشر، ونشغّل ونحسن. دي . المشكلة مش اختيار اسم منهج مشهور؛ المشكلة إزاي نكتشف الفرضيات الغلط بدري ونوصل قيمة يمكن تشغيلها.

النموذجبيمشي إزاييناسب إيه وحدوده
Waterfallمراحل متتابعة وتسليمات معتمدةمتطلبات مستقرة واعتمادات واضحة؛ feedback المتأخر ممكن يخلي التصحيح غالي
Iterativeنراجع ونحسن الحل في دوراتتعلم تدريجي؛ مش شرط كل دورة تضيف feature جديدة
Incrementalنسلّم أجزاء قابلة للاستخدامقيمة مبكرة؛ محتاج تقسيم رأسي يشمل الداتا والـ والـ tests
Agileتعلم وتكيّف وتسليم متكرر بالتعاونعدم يقين وتغير احتياجات؛ محتاج انضباط هندسي وتواصل

ممكن تجمع iterative وincremental، وتشتغل Agile مع متطلبات اعتماد رسمية. اعمل feedback gates مناسبة للمخاطرة بدل افتراض إن كل التغييرات محتاجة نفس الإجراءات.

#Agile manifesto بكلام عمليThe Agile manifesto in practical terms

Agile مش معناه مفيش خطة أو docs. قيمه الأربعة بتوجّه الاختيار وقت التعارض:

  1. خلّي الناس تتكلم وتحل المشكلة؛ الأداة والـ workflow يساعدوهم.
  2. اختبر قيمة software شغّال؛ الوثيقة بتشرح وتدعم، لكنها مش دليل إن الحل نافع.
  3. اشتغل مع العميل على فهم احتياجه مع الوقت؛ العقد مش بديل للحوار.
  4. عدّل الخطة لما تتعلم؛ التخطيط مستمر بدل التمسك بتوقع قديم.
لو مسار الرحلة اتقفل، تعدّل الطريق مع الحفاظ على الوجهة. التكيّف محتاج تعرف وجهتك وتقيس تقدمك، مش تغيّر الاتجاه كل ساعة.

عملياً: slice صغيرة، وdemo، وfeedback، وقياس نتيجة، وبعدها قرار. Technical excellence وtesting بيسهّلوا التغيير الآمن. كثرة الاجتماعات أو تغيير الأولويات يومياً مش دليل Agile. المرجع: Agile manifesto.

#Scrum: المسؤوليات والـ events والـ artifactsScrum accountabilities, events and artifacts

Scrum بيدي cadence للفحص والتكيّف حوالين هدف. Scrum Team فيه Product Owner مسؤول عن تعظيم القيمة وترتيب Product Backlog، وScrum Master مسؤول عن فعالية Scrum وإزالة معوقات تطبيقه، وDevelopers مسؤولين عن خطة الشغل والجودة والـ Increment. مفيش دور رسمي اسمه project manager في Scrum، حتى لو المؤسسة عندها الدور ده.

Eventالهدف
Sprintفترة ثابتة شهر أو أقل تشمل باقي الـ events
Sprint Planningليه الـ Sprint مفيد، وإيه الممكن، وإزاي نبدأ
Daily ScrumDevelopers يراجعوا التقدم ناحية Sprint Goal ويعدلوا الخطة؛ 15 دقيقة
Sprint Reviewالفريق والـ stakeholders يفحصوا النتيجة ويكيفوا الشغل القادم
Retrospectiveتحسين طريقة الشغل والجودة والفعالية
ArtifactCommitment
Product BacklogProduct Goal
Sprint BacklogSprint Goal
IncrementDefinition of Done

Refinement نشاط مستمر مش event رسمي إضافي. Review مش release gate؛ تقدر تسلّم Increment مستوفي DoD قبل نهاية Sprint. ماتحوّلش Daily لتقرير للمدير. المرجع: Scrum Guide 2020.

#Scrum و Kanban و Ready و DoneScrum, Kanban, Ready and Done

لو الفريق بيبدأ شغل أكتر من اللي بيخلصه، board لوحدها مش هتحل المشكلة. Kanban بيخلّي الـ workflow والسياسات واضحة ويضبط ، بحيث الشغل الجديد يتسحب لما فيه capacity.

البعدScrumKanban
التخطيطSprint Goal وSprint cadenceتدفق مستمر وreplenishment حسب السياسة
الأدوارAccountabilities محددةمش بيفرض نفس أدوار Scrum
الشغل الجاريممكن تضيف WIP limitsالتحكم في WIP أساسي
القياستقدم الهدف والنتيجة؛ velocity اختياريCycle time، و، وWIP، وwork item age
التغييراحمِ Sprint Goal وتفاوض على scopeاسحب التالي حسب الأولوية والـ capacity

Definition of Ready: اتفاق فريق اختياري، مش عنصر رسمي في Scrum. مثال: الهدف واضح، وأمثلة acceptance criteria موجودة، والـ dependencies معروفة. ماتخليهوش handoff gate يمنع التعلم.

Definition of Done: معيار جودة مشترك للـ Increment: tests مناسبة، وreview، وsecurity checks حسب المخاطر، وdocs وobservability وdeployment readiness. Acceptance criteria تخص سلوك item محدد؛ DoD يشمل جودة كل الشغل.

Cycle time من بداية الشغل لنهايته، وlead time ممكن يبدأ من الطلب حسب تعريف الفريق. Throughput عدد العناصر المكتملة في فترة، وwork item age عمر العنصر اللي لسه شغّال. Little's Law: متوسط WIP = معدل throughput × متوسط cycle time في نظام مستقر وبنفس الحدود والوحدات؛ مش وعد بموعد عنصر بعينه.

#Requirements و user stories و acceptance criteriaRequirements, user stories and acceptance criteria

مثال خطوة بخطوة
  1. عبارة «عايزين خصومات» لا تكفي لتقرر الكود. اسأل مين مستحق، ونسبة الخصم، وسقف المبلغ، وهل يجتمع مع خصم آخر.
  2. مثال قبول محدد: عميل مؤهل وسلة 200 وخصم 10% بلا شروط إضافية ينتج عنه خصم 20 وإجمالي 180. أضف حالة عميل غير مؤهل وحالة حدود السقف.
  3. Acceptance criteria تصف السلوك الذي يثبت الإنجاز. المثال الرقمي يكشف اختلاف الفهم قبل كتابة الكود، ثم يمكن استخدامه في اختبار واضح.

قبل ما تختار endpoint أو database، اسأل مين محتاج إيه وليه. Functional requirement بيحدد سلوك زي إلغاء order. Quality attribute بيحدد جودة قابلة للقياس زي أو availability أو accessibility؛ كلمة «سريع» لوحدها مش requirement قابلة للتحقق.

User story بتركز على المستخدم والقيمة: «كعميل، عايز ألغي order قبل الشحن، علشان ماستناش منتج مش محتاجه». مش كل مهمة محتاجة القالب ده؛ spike أو platform upgrade ممكن يتكتبوا بشكل مباشر. اقسم الشغل لشرائح قيمة صغيرة، مش database Sprint وبعدها Sprint.

Story: Customer cancels an order before dispatch.
(1) Given a paid order that has not been dispatched
    When its owner cancels it
    Then the order is cancelled and one refund request is recorded
(2) Given an order already dispatched
    When its owner requests cancellation
    Then cancellation is rejected without a refund request
(3) Quality target for this example:
    p95 cancellation API latency below 300 ms at 100 requests/second
    measured in a production-like load test, excluding refund settlement
🧾 شرح الكود
  1. (1) Given حالة البداية، وWhen فعل المستخدم، وThen نتيجة قابلة للملاحظة. تكرار طلب الإلغاء لازم ماينتجش refund تاني.
  2. (2) حالة رفض واضحة؛ ناقش كمان user مش صاحب الطلب وrace مع dispatch.
  3. (3) أرقام توضيحية لاتفاق قابل للاختبار، مش benchmark أو توصية عامة. حدد workload والحدود وطريقة القياس.

أكد الفهم بأمثلة مع product والـ QA والـ stakeholders؛ صيغة Given/When/Then مش شرط تستخدم أداة . اكتشف التعارض بين المتطلبات قبل التنفيذ.

#Estimation: حجم وعدم يقين، مش وعدEstimation: size and uncertainty, not a promise

الناس محتاجة forecasts علشان تخطط، لكن رقم دقيق قبل فهم الشغل بيخبي uncertainty. Story points مقياس نسبي متفق عليه للحجم والتعقيد وعدم اليقين، مش ساعات. T-shirt sizes زي S وM وL مناسبة للتقسيم المبكر.

  1. حدد baseline item الفريق فاهمه، وناقش assumptions والـ dependencies.
  2. في planning poker كل واحد يختار لوحده، وتتكشف التقديرات مع بعض؛ اختلافها فرصة لفهم حاجة ناقصة.
  3. قسّم الكبير، واعمل timeboxed spike لسؤال تقني محدد.
  4. قدم range مع مستوى ثقة وافتراضات، وحدث forecast مع البيانات الفعلية.
تقدير رحلة من غير معرفة حالة الطريق أوسع من تقديرها وإنت على آخر شارع. ده معنى cone of uncertainty: المعرفة ممكن تضيق النطاق مع اكتشاف منظم، مش لمجرد مرور الوقت.

ماتحوّلش points لساعات أو تقارن velocity بين فرق. Calendar time فيه انتظار وreview واعتمادات. استخدم وcycle-time distributions وتاريخ فريقك لعمل forecast احتمالي، مع توضيح إن الماضي مش ضمان، خصوصاً لو طبيعة الشغل اتغيرت.

#Design docs و ADRs: اكتب ليه اخترتDesign documents and ADRs: record the reasoning

قرار تقني مؤثر محتاج review قبل ما يبقى آلاف السطور. Design doc بيشرح المشكلة والمتطلبات والبدائل والـ data flow والمخاطر وخطة rollout. مختصر بيسجل قرار واحد وسياقه وتبعاته، علشان اللي ييجي بعدك مايعيدش نفس النقاش من غير دليل جديد.

Design doc
Problem and desired outcome:
Scope and non-goals:
Functional requirements and measurable quality attributes:
Options considered and trade-offs:
Proposed interfaces, data ownership and failure behavior:
Security, observability and operating cost:
Migration, rollout, rollback and validation:
Open questions, owner and review date:

ADR-007: Record invoice notifications in a transactional outbox
Status: Accepted
Context: A crash between database commit and send can lose a notification.
Decision: Commit the notification record with the invoice transaction.
Alternatives: Direct send; distributed transaction.
Consequences: Eventual delivery, duplicate handling and dispatcher operations.
Revisit when: Delivery requirements or transaction boundaries change.

ابدأ بأصغر doc يناسب حجم القرار. اربط القرار بالـ والـ diagrams والقياس، واذكر ليه البدائل اترفضت. لو القرار اتغير، ADR جديد يعمل supersede للقديم بدل مسح التاريخ. ماتكتبش implementation details مكررة من الكود ومش هتفضل متحدثة.

#Code review: feedback قابل للتنفيذCode review as actionable feedback

Review بيكشف مخاطر وبيشارك معرفة، لكنه مش بديل للـ automated checks أو design review. صغير بهدف واضح أسهل يتراجع كويس. الكاتب يشرح المشكلة والسلوك الجديد والـ validation والمخاطر، ويعمل self-review قبل الطلب.

  1. افهم المتطلب والحدود الأول، وشوف التغيير من منظور المستخدم.
  2. راجع correctness والـ failure paths والـ security والـ data compatibility والـ tests.
  3. افصل blocker حقيقي عن suggestion وعن nit؛ استخدم formatter للقواعد الميكانيكية.
  4. اكتب سبب قابل للفحص: «الـ retry هنا ممكن يكرر الدفع؛ نستخدم نفس key؟».
  5. اتفقوا على الحل وسجّلوا القرار، وبعدين راجع الـ diff النهائي وشغّل الـ checks المطلوبة.

لو النقاش طال، مكالمة قصيرة وبعدها تلخيص مكتوب. ماتقيّمش الشخص من الكود، وماتفرضش taste على إنه correctness. الـ review جزء من flow؛ خصصوا وقت لتفريغ الطابور بدل بدء شغل جديد طول الوقت.

#Technical debt: خليه ظاهر وقابل للمفاضلةMake technical debt visible and actionable

Technical debt تكلفة مستقبلية سببها اختيار تصميم أو تنفيذ بيسرّع حاجة دلوقتي أو معرفة ناقصة. مش كل كود مش عاجبك يبقى debt. فيه debt متعمد بحساب، أو shortcut متهور، أو debt اكتشفناه بعد ما فهمنا المجال أكتر. أنواع عملية: تصميم، وtests، وdependencies، وoperability، وdocs.

Debt item: Duplicate invoice status mapping
Evidence: Three recent changes required edits in four places.
Impact: Inconsistent paid status and additional review effort.
Principal: Centralize mapping behind one adapter and characterize behavior.
Interest: Repeated changes and reconciliation incidents.
Owner: Invoicing team
Priority trigger: Before adding another invoice provider
Success measure: One mapping boundary and verified contract examples

اربط الدين بتكلفة تغيير أو خطر فعلي، وحط owner ووقت مراجعة. سدده جنب feature محتاجاه أو في شغل مخصص متفق عليه. قارن تكلفة الإصلاح بالعائد؛ rewrite كامل ممكن يضيف مخاطرة أكتر من الدين. ماينفعش وعد «هننضفه بعدين» من غير سجل وأولوية.

#Trunk-based development و feature flagsTrunk-based development and feature flags

الفروع الطويلة بتأخر integration وتكبّر conflicts. Trunk-based development بيعتمد على دمج تغييرات صغيرة بشكل متكرر في trunk، مع سريع وtrunk قابل للنشر. مش شرط كل الناس تعمل push مباشر؛ short-lived branches و review ينفعوا.

// (1) Evaluate a server-controlled flag for this request/cohort.
bool enabled = featureFlags.IsEnabled("new-invoice-view", userId);
var view = enabled
    ? await newInvoices.GetAsync(id, ct)
    : await currentInvoices.GetAsync(id, ct); // (2)
🧾 شرح الكود
  1. (1) featureFlags واجهة توضيحية لخدمة flags بتاعتك؛ اختيار cohort ثابت بيسهّل rollout ومقارنة النتائج.
  2. (2) المسار القديم يفضل متاح لحد انتهاء rollout. اختبر المسارين والتوافق مع الداتا؛ flag مش rollback للـ أو للـ side effects اللي حصلت.

Deploy نقل النسخة للبيئة؛ release إتاحتها للمستخدمين. flag يفصل الاتنين ويسمح بcanary وkill switch. حط owner وتاريخ إزالة وdefault آمن، وماتستخدمش flag بديل لـ authorization. كثرة التركيبات بتزود عبء الاختبار؛ شيل الفروع القديمة بعد الاستقرار.

#DORA metrics: قياس النظام اللي بيسلّمDORA metrics measure the delivery system

عدد commits أو story points للفرد مش مقياس قيمة. بتقيس سرعة وسلامة delivery على مستوى application أو service، وتساعدك تعرف الاختناق. الأربع مقاييس التاريخية لسه مشهورة في الأسئلة؛ النموذج الحالي خمسة، بإضافة deployment rework rate.

Metricالمعنى
Change lead timeمن commit لحد production deployment
Deployment frequencyعدد deployments في فترة أو المدة بينهم
Failed deployment recovery timeوقت التعافي من deployment فشل ومحتاج تدخل فوري
Change fail rateنسبة deployments اللي احتاجت تدخل فوري زي rollback أو hotfix
Deployment rework rateنسبة deployments غير المخططة الناتجة عن production incidents

MTTR اسم قديم وأوسع وممكن يكون ملتبس؛ حدّد التعريف بدل خلط كل الأعطال مع deployment failures. اجمع metrics بنفس الحدود، وابص على distributions والاتجاه مع الوقت. ماتحوّلهاش لمسابقة فرق أو فرد، وماتطلبش deploys شكلية لزيادة الرقم. استخدمها مع reliability ورضا المستخدم ونتيجة المنتج. المرجع: تعريفات DORA الحالية.

#Incidents و stakeholders و docs عايشةIncidents, stakeholder alignment and living documentation

أثناء incident، الهدف الأول تقليل أثر المستخدم واستعادة الخدمة. حدد severity، وincident commander للتنسيق، وناس للتحقيق والتنفيذ، وcommunication owner. سجّل timeline وقرارات، وابعث updates منتظمة: الأثر المعروف، والتخفيف، ووقت التحديث الجاي؛ ماتخمنش ETA.

  1. Detect وtriage: اتأكد من الأثر ووسّع المساعدة بدري.
  2. Mitigate: rollback أو flag أو تقليل حمل لو آمن؛ استعادة الخدمة ممكن تسبق فهم السبب كله.
  3. Recover وverify: افحص user journeys والداتا، مش health endpoint بس.
  4. Postmortem: الأثر والـ timeline والعوامل المساهمة وفجوات الاكتشاف وما نجح، وبعدها إجراءات بowner وموعد وقياس.

Blameless معناه نفهم ليه القرار كان منطقي بالمعلومات المتاحة وقتها، ونصلّح ظروف النظام؛ مش معناه مفيش مسؤولية أو متابعة. «مهندس ضغط الزر الغلط» مش تحليل كافي.

مع product والـ stakeholders: اسأل عن النتيجة المطلوبة، واعرض اختيارات بتكلفة ومخاطرة، واتفق على scope وquality وحدود قرار واضحة. لو deadline ثابت، تفاوض على scope وrollout؛ ماتخبيش الخطر لحد آخر يوم.

Docs تفضل مفيدة لما ليها owner وقارئ وسؤال بتجاوب عليه. احفظ runbooks والـ مع الكود، وحدّثها في نفس اللي غيّر السلوك. ولّد reference من العقد، واختبر snippets والروابط في ، وجرّب runbook دورياً. ماتكتبش نفس source of truth في ثلاث أماكن.

أسئلة الانترفيو

راجع فهمك

ليه الاختيار ده مناسب؟ إمتى ممكن ماينفعش؟ وإيه اللي هيتغير لو الحمل زاد أو ظهر فشل؟

27.1What is the SDLC?Junior

فهم وتصميم وتنفيذ واختبار ونشر وتشغيل وتحسين. المراحل موجودة حتى لو بتتكرر بسرعة؛ الجودة والمسؤولية مش بينتهوا عند merge.

الإجابة النموذجية (English)

I see the software development lifecycle as the activities needed to turn a need into a useful, operated system: understanding requirements, designing, implementing, verifying, deploying and learning from production. Different models organize those activities differently. A sequential approach emphasizes phase transitions, while iterative and incremental approaches create repeated feedback and smaller deliveries. As a developer, I contribute beyond coding by clarifying acceptance criteria, considering deployment and failure behavior, and checking whether the delivered change achieved its purpose.

27.2What does Agile mean to you?Junior

تعلم وتسليم صغير وتكيّف بالتعاون. فيه خطة وdocs، بس بنعدّلهم بالدليل بدل ما نخليهم بديل للقيمة الفعلية.

الإجابة النموذجية (English)

I understand Agile as delivering useful software in small steps, collaborating closely and adapting plans as evidence changes. It does not mean avoiding documentation, design or commitments. I still want clear goals, quality expectations and realistic forecasts, but I test assumptions early rather than wait for a large final handoff. In practice, I would demonstrate a small working slice, get feedback from users or product, and use that learning to decide the next step.

27.3What are Scrum's accountabilities?Junior

Product Owner للقيمة والـ backlog، وScrum Master لفعالية Scrum، وDevelopers للخطة والتنفيذ والجودة. دي مسؤوليات مش درجات وظيفية.

الإجابة النموذجية (English)

I distinguish three Scrum accountabilities. The Product Owner is accountable for maximizing value and effective Product Backlog management. The Scrum Master is accountable for establishing Scrum and improving the team's effectiveness. Developers create and adapt the delivery plan, build the Increment and uphold quality through the Definition of Done. These are accountabilities within one Scrum Team, not a chain where one person assigns every developer's tasks. Other organizational roles may exist outside that framework.

27.4What is the purpose of the Daily Scrum?Junior

Developers يراجعوا تقدم Sprint Goal ويعدلوا الخطة. مش اجتماع status للمدير، وحل مشكلة طويل يتاخد بعده مع الناس المعنية.

الإجابة النموذجية (English)

I use the Daily Scrum to inspect progress toward the Sprint Goal and adapt the Developers' plan for the next day. It is a fifteen-minute event, not a status presentation to a manager. The team can choose a format that exposes progress, dependencies and impediments. If a detailed debugging discussion is needed, the relevant people continue afterwards. A useful Daily changes coordination or decisions; simply reciting yesterday's tasks does not achieve its purpose.

27.5How do Scrum and Kanban differ?Mid

Scrum framework بهدف وcadence ومسؤوليات محددة. Kanban بيضبط flow و وسياسات السحب. ممكن تجمعهم لو ده مفيد.

الإجابة النموذجية (English)

I describe Scrum as a framework with defined accountabilities, artifacts and a Sprint cadence focused on a goal. Kanban focuses on managing flow through an explicit workflow, controlling work in progress and pulling new work when capacity exists. It uses signals such as cycle time, and work item age. They can be combined: a Scrum team can use Kanban policies within its Sprint. I choose practices based on the team's work and constraints rather than treating the names as competing brands.

27.6Why limit work in progress?Mid

علشان نخلّص قبل ما نبدأ زيادة، ونكشف bottleneck ونقلل context switching. لو review مليان، ساعد في review بدل ما تفتح task جديدة.

الإجابة النموذجية (English)

I limit work in progress to reduce queues and context switching and to make bottlenecks visible. If review is full, starting another feature usually adds inventory rather than increasing delivery. I would help review, test or unblock existing work before pulling something new. The limit is a policy to improve flow, not a personal utilization target. I watch cycle time, aging work and to see whether the policy helps, and adjust it through team discussion.

27.7What is the difference between acceptance criteria and Definition of Done?Junior

Acceptance criteria سلوك item محدد، وDoD معيار جودة عام للـ Increment. Ready اختياري ومش رسمي في Scrum.

الإجابة النموذجية (English)

I use acceptance criteria to describe the observable behavior required for a particular backlog item, such as rejecting cancellation after dispatch. The Definition of Done is a shared quality standard for the Increment, covering the engineering work needed across items. A feature can satisfy its example scenarios but still fail Done because required checks or documentation are missing. A Definition of Ready is an optional team agreement for starting work; it is not a mandatory Scrum element.

27.8What makes a good user story?Junior

مستخدم وقيمة واضحة، وحجم قابل للتسليم، وأمثلة قبول. القالب مش كفاية لو القيمة مبهمة، ومش كل technical task لازم تتحوّل لقصة مصطنعة.

الإجابة النموذجية (English)

I want a story to explain who needs something, what outcome they need and why it matters. It should be small enough to discuss, estimate and verify, with concrete acceptance examples and known dependencies. I prefer a vertical slice that delivers observable value over separate database and stories with no usable result. The template is only a conversation starter. For a technical spike or infrastructure task, a direct goal and success criteria may be clearer than inventing a fictional user.

27.9How do you make a quality requirement testable?Mid

حوّل «سريع» لمقياس تحت workload وبيئة وحدود معروفة. اتفق على percentile وطريقة القياس بدل average لوحده.

الإجابة النموذجية (English)

I replace vague language with a measurable scenario. For performance, I would agree the operation, workload, environment, percentile and response boundary, such as whether an external settlement is included. For reliability, I would define the service objective and measurement window. I also ask what trade-offs are acceptable because lower , stronger consistency and lower cost may conflict. I record the agreed target and validation method so product, engineering and operations can assess the same evidence.

27.10What are story points, and why not use them to compare teams?Mid

تقدير نسبي محلي للفريق، مش ساعات أو productivity فردية. baseline مختلف وحجم فرق مختلف، فالمقارنة بتطلع استنتاج غلط.

الإجابة النموذجية (English)

I treat story points as a relative estimate using a team's shared reference items. They help discuss size, complexity and uncertainty, but they are not an hour conversion or an individual productivity measure. Two teams can assign different points to the same work because their references and context differ. Comparing their velocity encourages inflation without improving outcomes. For forecasting, I use the team's own history with explicit assumptions and focus on usable results and delivery flow.

27.11How do you estimate work with substantial uncertainty?Mid

اذكر المجهول، واعمل spike محدود لو يغير القرار، وقسّم الشغل. اعرض range بثقة وافتراضات وحدّثه؛ مرور الوقت لوحده مش بيقلل uncertainty.

الإجابة النموذجية (English)

I first name the unknowns and separate implementation effort from dependencies and waiting time. I may run a timeboxed spike if one question materially changes the approach, then split the work into smaller slices. I present a range with assumptions and confidence rather than a precise promise. As evidence arrives, I update the forecast and explain what changed. Independent estimates and planning poker can help expose different assumptions before the team converges on a useful forecast.

27.12How would you respond to a fixed deadline and too much scope?Senior

وضّح النتيجة الأساسية والحدود، واعرض scope أصغر أو rollout مرحلي ومخاطره. ماتقللش جودة ضرورية في السر ولا تعد بحاجة الدليل مش بيدعمها.

الإجابة النموذجية (English)

I make the constraint visible early and ask which outcome is essential by that date. I offer concrete options: a smaller vertical slice, a staged rollout, deferred optional behavior or a changed date, each with risks and dependencies. I do not silently trade away data integrity or essential safety checks. Once a choice is agreed, I document scope and acceptance criteria and track leading risks. Regular evidence-based updates give stakeholders time to change course before the deadline becomes a crisis.

27.13When would you write an ADR instead of a large design document?Mid

لقرار واحد مهم وسياقه وبدائله وتبعاته. Design doc للحل الأوسع والـ interfaces والـ rollout والأسئلة المفتوحة. اربطهم بدل تكرارهم.

الإجابة النموذجية (English)

I write an when one consequential decision needs a durable explanation, such as choosing an over a direct external call. I capture context, alternatives, the decision and consequences. A larger design document is useful when reviewers need to evaluate a whole solution, including interfaces, data ownership, failure behavior and rollout. The documents can link to each other. If a decision changes, I supersede the ADR so future readers can understand the historical constraints.

27.14How do you conduct a useful code review?Mid

افهم المطلوب، وراجع correctness والمخاطر والـ tests قبل التنسيق. اكتب سبب وميّز blocker من اقتراح. الكاتب مسؤول يقدم diff واضح ويتابع.

الإجابة النموذجية (English)

I start by understanding the problem and the expected behavior, then inspect correctness, failure paths, security, data compatibility and test coverage. I explain why a concern matters and distinguish blocking issues from suggestions or preferences. Mechanical style belongs in automated tooling where possible. As an author, I keep changes focused, provide validation evidence and review my own diff first. If discussion becomes circular, I suggest a short conversation and record the resolution for future reviewers.

27.15How do you prioritize technical debt with product work?Senior

اربطه بأثر وتكلفة تغيير أو incidents، وحدد حجم الإصلاح وowner وtrigger. سداد debt مش نشاط بلا نهاية؛ قيس هل سهّل التسليم أو قلل المخاطر.

الإجابة النموذجية (English)

I describe debt through evidence and business impact rather than aesthetic preference. I record the affected area, recurring cost or risk, repair options and an owner. Then I compare it with product work, often paying it down when a related feature would otherwise incur the same cost again. Some issues justify dedicated capacity because they threaten reliability or delivery. I define a success measure and revisit it after the change so we can see whether the investment reduced actual friction.

27.16How do feature flags support trunk-based development?Mid

تسمح بدمج أجزاء صغيرة وتعطيل الإتاحة لحد ما تجهز. محتاجة ومسارات متختبرة وowner وإزالة؛ مش بديل لـ auth أو data rollback.

الإجابة النموذجية (English)

I use to integrate small changes into trunk while controlling when users see them. That separates deployment from release and supports gradual exposure or a kill switch. It works only with fast checks, compatible data changes and testing of relevant flag states. I assign each temporary flag an owner and removal plan because stale paths add complexity. Disabling a flag does not reverse completed side effects, and it must never substitute for server-side authorization.

27.17Which DORA metrics would you track?Senior

الأربع التاريخية، ومعاهم deployment rework rate في النموذج الحالي. عرّف failed deployment recovery time بوضوح، وقيس على مستوى service مش الفرد.

الإجابة النموذجية (English)

I track change lead time, deployment frequency, failed deployment recovery time and change fail rate, plus deployment rework rate in the current five-metric model. I define each consistently at the application or service level and inspect trends and distributions over time. These signals describe the delivery system, not individual productivity. I use them to locate constraints, such as review queues or fragile releases, and pair them with reliability and product outcomes so improving a number does not replace improving the service.

27.18What do you do first during a production incident?Senior

اتأكد من الأثر ونظّم الاستجابة والتواصل. قلل الضرر بخطوة آمنة، وسجّل اللي بتعمله؛ مش لازم تعرف كل السبب قبل mitigation.

الإجابة النموذجية (English)

I establish user impact and severity, bring in the right responders and make coordination explicit. I prioritize a safe mitigation, such as rolling back a recent change or disabling a feature, while preserving useful evidence. Someone owns communication and gives factual updates with the next update time. I avoid several people making uncoordinated changes. After mitigation, I verify user journeys and data integrity, then continue diagnosis and capture the timeline for a later learning review.

27.19What makes a postmortem blameless and useful?Senior

يفهم السياق والعوامل المساهمة بدل إيقاف التحليل عند اسم شخص. وفي الآخر actions محددة قابلة للمتابعة بowner وموعد ودليل نجاح.

الإجابة النموذجية (English)

I want the review to explain how system conditions and available information shaped decisions. Blameless does not remove accountability; it makes it safer to share evidence and identify contributing factors. I include impact, a timeline, detection gaps, what helped and where defenses failed. Actions have owners, dates and observable success criteria. “Be more careful” is weak compared with a tested guardrail or better rollback capability. I also follow up, because an excellent document without completed improvements changes little.

27.20How do you keep documentation accurate?Mid

حدد القارئ والسؤال والـ owner، وحدّث docs مع تغيير السلوك في نفس . اختبر الأمثلة وجرّب runbooks، وخلي كل معلومة ليها source واضح.

الإجابة النموذجية (English)

I keep documentation close to the source it describes and update it in the same when behavior changes. Each document has an audience and purpose, such as explaining a decision or guiding incident recovery. I generate reference material from contracts where practical, validate links and executable examples, and periodically rehearse runbooks. I avoid copying the same facts into several documents. During review, I check whether commands, configuration keys and examples still match the implementation rather than just whether the prose reads well.

اختبر نفسك

إجابات الاختبار وعلامات إكمال المحاور بتتحفظ على المتصفح ده، ومش بتتنقل لأجهزة تانية.

النتيجة: 0 / 0

What does Agile imply about plans and documentation?

القيم بتحدد الأولوية وقت التعارض، مش بتلغي التخطيط أو docs.

Which is NOT a mandatory Scrum element?

Ready اتفاق اختياري؛ DoD مرتبط بالـ Increment.

The review column is at its WIP limit. What usually helps flow?

تقليل الاختناق يساعد اكتمال الشغل بدل تكبير الطابور.

Which statement is a verifiable quality requirement?

لازم مقياس وحدود وworkload وطريقة تحقق.

Why should estimates often be ranges?

اعرض assumptions وثقة، وحدّث التقدير مع التعلم.

What should an ADR preserve?

جديد ممكن يعمل supersede للقديم مع حفظ السياق التاريخي.

Which statement about trunk-based development is correct?

short-lived branches ينفعوا؛ المهم integration متكرر وtrunk سليم.

What does disabling a feature flag guarantee?

الـ side effects السابقة والـ data compatibility محتاجين خطة مستقلة.

The current five-metric DORA model adds which metric to the historical four?

بيقيس نسبة deployments غير المخططة بسبب incidents.

Which postmortem action is strongest?

action محدد وقابل للتحقق يتابع تحسين النظام.