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