الدرس 7: البرمجة القصوى (XP) والتطوير المُوجَّه بالاختبارات (TDD)
البرمجة القصوى (XP) هي واحدة من أكثر الطرق الرشيقة شهرةً واكتمالاً، ابتكرها كينت بيك (Kent Beck) عام 1996 — حتى قبل أن يُصاغ مصطلح 'Agile'. في هذا الدرس نتعرّف على قيم XP الأساسية الأربع (البساطة والتواصل والتغذية الراجعة والشجاعة) وعلى الممارسات الاثنتي عشرة في صياغتها الأصلية لدى بيك — لعبة التخطي
باختصار: يقول XP 'خذ الأشياء الجيدة التي نفعلها وضاعِفها' — التواصل والبساطة والتغذية الراجعة والشجاعة. ويقول TDD: اكتب أولاً اختباراً يفشل، ثم اكتب ما يكفي فقط من الكود لتجعله ينجح — ثم توقّف.
- البرمجة القصوى (XP)
- طريقة تطوير رشيقة ابتكرها كينت بيك (Kent Beck) عام 1996، من أكثر الطرق اكتمالاً وشهرةً؛ تقوم على أربع قيم (البساطة والتواصل والتغذية الراجعة والشجاعة) و12 ممارسة هندسية، وعلى فكرة 'خذ ما ينجح وضاعِفه'.
- التطوير المُوجَّه بالاختبارات (TDD)
- طريقة تكتب فيها أولاً اختبار وحدة يجب أن يعمل ويفشل، ثم تكتب الكود حتى ينجح الاختبار، وتتوقّف لحظة نجاحه — دون إضافة وظائف؛ ولا يجوز أن يفشل أي اختبار كان ناجحاً من قبل.
- لعبة التخطيط (Planning Game)
- ممارسة تخطيط في XP تفصل بين قرارات جهة العمل وقرارات المطوّرين: تعرض جهة العمل قصص المستخدم وترتّب أولوياتها، ويقدّر المطوّرون الجهد، وتكون التكرارات قصيرة (1-2 أسبوع) ولا تتجاوز الوقت المخصّص لها أبداً.
- قصة المستخدم (User Story)
- بطاقة قصيرة (اسم + وصف) لميزة تقدّم قيمة للعميل، يكتبها العميل ويقدّرها المطوّرون؛ تحلّ محلّ مستندات المتطلبات الكبيرة، وتشبه في غرضها حالة الاستخدام (Use Case).
- البرمجة الثنائية (Pair Programming)
- يُكتب كل الكود بشكل ثنائي على محطة واحدة: أحدهما يكتب والآخر يفكّر في ما إذا كان سيعمل، وفي طرق أفضل، وفي سيناريوهات الاختبار؛ يتبادلان الدور كل ساعتين تقريباً وتتناوب الأزواج — بما يدعم الملكية الجماعية والمراجعة غير الرسمية.
- إعادة الهيكلة (Refactoring)
- تحسين بنية الكود القائم دون تغيير سلوكه، للحفاظ على بساطة التصميم؛ نشاط مستمر وليس لمرة واحدة، تضمن فيه الاختبارات أن السلوك لم ينكسر.
- التكامل المستمر (CI)
- بناء واختبار النظام بأكمله عدة مرات في اليوم (مع التكامل مرة واحدة يومياً على الأقل)، باختبارات مؤتمتة؛ ويجب أن تنجح اختبارات الوحدة بنسبة 100% قبل التكامل وبعده.
- الوتيرة المستدامة (أسبوع 40 ساعة)
- 'البرمجة سباق ماراثون لا سباق سرعة': يعمل الفريق حتى 40 ساعة في الأسبوع؛ فالأشخاص المتعبون ليسوا منتجين؛ وفي الأزمات يُسمح بأسبوع واحد من العمل الإضافي كحدّ أقصى، لكن الأسابيع المتتالية إشارة إلى وجود خلل ما.