اذهب إلى المحتوى

مقدمة إلى إطار التطوير الموجه بالخصائص FDD من أجايل


ريمة ضافري

تسعى فرق العمل الناشطة في مجال تطوير البرمجيات إلى تقديم برامج تتوافق تمامًا مع احتياجات العملاء، ولذلك فإن أطر العمل المطبقة في مجال إدارة المشاريع وإدارة المنتجات من هذا النوع تضع هذا المسعى نصب أهدافها، ونجد في هذا السياق أن إطار التطوير الموجه بالخصائص Feature Driven Development FDD، والمصنف كأحد أطر عمل منهجية أجايل، يمثل خيارًا ممتازًا، حيث يركز على مقاربة تتمحور حول العميل، كما أنه مصمم ليعمل بفعالية في عالم تطوير البرمجيات المعاصر.

في هذا المقال، نستكشف مبادئ وخطوات وأدوار وميزات إطار التطوير الموجه بالخصائص، لنقدم نطرةً عامةً عن إطار العمل هذا، سواءً للمهتمين عامةَ بمنهجية أجايل، أو للفضوليين الباحثين عن أطر عمل مبتكرة لتطوير البرمجيات.

تعريف إطار التطوير الموجه بالخصائص FDD

التطوير الموجه بالخصائص Feature Driven Development FDD هو أحد أطر عمل منهجية أجايل لتطوير البرمجيات، يشتهر بدورات التطوير قصيرة الأجل وبالإطلاقات المتواترة، ويركز على تصميم وبناء أنظمة البرمجيات تكراريًا وتراكميًا، مع التركيز على تحديد وتصميم وتطبيق الخصائص أو الوظائف الفريدة للنظام، ويُستخدم التطوير الموجه بالخصائص عادةً في حالة المشاريع كبيرة الحجم والمعقدة.

وكما يدل اسمه، فإن إطار التطوير الموجه بالخصائص يتمحور حول تحديد الخصائص والوظائف المكونة لنظام البرمجيات وإعطائها الأولوية وتطويرها، إذ تُعَد كل خاصية وحدة عمل قائمةً في حد ذاتها، ويظهر هذا الاهتمام منذ مرحلة التصميم، والتي تُبنى هي الأخرى على الخصائص، فتُنشئ فرق العمل تصميمًا لكل خاصية، مما يساعد على فهم المتطلبات والعلاقات بين هذه الخصائص، والتحديات الممكنة ذات الصلة بكل خاصية، ويُدار التطوير الموجه بالخصائص من خلال قائمة خصائص مرتبة حسب أولويتها، والتي تحددها أهميتها للمشروع، وتسمح هذه المقاربة بتوفير خارطة طريق واضحة لتطوير الخصائص الأهم في المراحل المبكرة من المشروع.

طُبق إطار التطوير الموجه بالخصائص لأول مرة سنة 1997 من قِبل الخبير في مجال تقنية المعلومات والمؤلف جيف دي لوكا Jeff De Luca، والذي صممه في البداية خصيصًا ليلائم احتياجات مشروع يتضمن تصميم برنامج خلال 15 شهرًا من قِبل فريق يتكون من 15 شخصًا لصالح أحد أكبر البنوك في مدينة سنغافورة، وقدم دي لوكا وصفًا مفصلًا لإطار التطوير الموجه بالخصائص لأول مرة في الفصل السادس من كتابه نمذجة جافا بالألوان باستخدام مخطط نمذجة اللغة الموحدة Java Modeling in Color with UML سنة 1999 مع زميليه بيتر كود Peter Coad وإريك ليفيبفر Eric Lefebvre. وفي سنة 2002، قدم ستيفن بالمر Stephen Palmer وماك فيلسينغ Mac Felsing كتابهما الدليل العملي للتطوير المؤطر بالخصائص A Practiccal Guide to Feature-Driven Development، والذي يحتوي على وصف أكثر عموميةً لإطار العمل بمعزل عن نمذجة جافا.

إطار التطوير الموجه بالخصائص مبني عامةَ حول أفضل ممارسات هندسة البرمجيات، بما في ذلك تحديد نموذج الكائن للنطاق domain object model، أو نطاق المشكلة التي تحتاج إلى حل، من أجل مساعدة تحديد إطار العمل لتطوير الخصائص.

توزيع الأدوار داخل فريق العمل في إطار التطوير الموجه بالخصائص FDD

توجد عدة أدوار رئيسية داخل فرق عمل إطار التطوير الموجه بالخصائص، تتقاسم المسؤوليات بهدف ضمان نجاح المشروع، وتشمل هذه الأدوار إدارة المشروع، والتصميم، والتطوير، وضمان الجودة وتكون موزعةً عمومًا كما يلي:

  1. مدير المشروع Project Manager: يراقب مدير المشروع كامل عمليات المشروع، وهو مسؤول عن مشاركة تقارير تقدم العمل مع العملاء وضمان أن المشروع يتقدم حسب الخطط الموضوعة.
اقتباس

للتعرف أكثر على دور مدير المشروع والفرق بينه وبين مدير المنتج، يمكن الاطلاع على هذا المقال.

  1. المهندس الرئيسي Chief Architect: المهندس الرئيسي مسؤول عن التصميم الكلي وعن نمذجة النظام، إذ يعمل مع المطورين ذوي المهارة خلال مرحلة التخطيط من دورة التطوير.
  2. مدير التطوير Development Manager: يقود مدير التطوير ويُرشد فريق التطوير، كما يراقب أنشطة البرمجة اليومية.
  3. المطور الرئيسي Chief Programmer: المطور الرئيسي هو المسؤول عن التنسيق داخل فريق التطوير، وضمان جودة شيفرة التطوير.
  4. مالك الفئة Class Owner: مالك الفئة مسؤول عن تطوير فئة أو مجموعة معينة من الفئات داخل المشروع.
  5. خبير النطاق Domain Expert: خبير النطاق مسؤول عن تقديم المعرفة والخبرة ذات الصلة بالنطاق لفريق التطوير.
  6. مدير النطاق Domain Manager : مدير النطاق مسؤول عن إدارة خبراء النطاق وضمان استخدام المعرفة التي يقدمونها في عملية التطوير.
  7. مدير الإطلاق Release Manager: مدير الإطلاق مسؤول عن إدارة عملية الإطلاق، وضمان تسليم المنتج في الوقت المحدد وبما يتوافق ومعايير الجودة الموضوعة.
  8. خبير اللغة Language Guru: خبير اللغة مسؤول على ضمان أن فريق التطوير يستخدم لغة البرمجة الصحيحة ويلتزم بأفضل الممارسات.
  9. مهندس البناء Build Engineer: مهندس البناء مسؤول عن إدارة عملية البناء وضمان البناء الصحيح للمنتج.
  10. صانع الأدوات Toolsmith: صانع الأدوات مسؤول عن إدارة أدوات عملية التطوير وضمان الاستخدام الصحيح لهذه الأدوات.
  11. مسؤول النظام System Administrator: مسؤول النظام هو الشخص المسؤول عن إدارة بيئة التطوير وضمان التكوين الصحيح لها.
  12. المختبرون testors: المختبرون مسؤولون عن اختبار المنتج وضمان أنه يرقى إلى معايير الجودة الموضوعة.
  13. المطورون Developers: المطورون مسؤولون عن تطوير المنتج وضمان أنه يتوافق ومعايير الجودة المطلوبة.

المبادئ الأساسية لإطار التطوير الموجه بالخصائص FDD

بصفته أحد أطر عمل منهجية أجايل، فإن إطار التطوير الموجه بالخصائص مبني على قيم ومبادئ منهجية أجايل المحددة في بيان أجايل للتطوير، غير أنه إضافةً إلى ذلك قائم على مجموعة من المبادئ الخاصة به والتي يمكن إيجازها كما يلي:

1. التمحور حول العميل

يضع إطار التطوير الموجه بالخصائص العميل في مركز عملية تطوير البرمجيات، حيث يركز على فهم وتقديم الخصائص التي تستجيب مباشرةً لاحتياجات العميل ومتطلباته، ويضمن التقارب بين جهود التطوير وأولويات العميل تقديم قيمة حقيقية لهذا الأخير.

2. دورات التطوير القصيرة والإطلاقات المتواترة

يركز إطار التطوير الموجه بالخصائص على دورات التطوير قصيرة الأجل وعلى تواتر عمليات الإطلاق، حيث تسمح هذه المقاربة بالحصول الأسرع على تعليقات وآراء العملاء والأطراف ذات الصلة، مما يسهل بدوره التحديد المبكر للمشاكل وإدخال التعديلات الضرورية؛ وبالتالي عملية تطوير أكثر مرونةَ واستجابةً، مع تقليص الزمن بين تاريخ بدء العمل على ميزة معينة وتاريخ تسليمها للمستخدمين.

3. التوجيه بالنموذج

يتضمن إطار التطوير الموجه بالخصائص أفضل ممارسات هندسة البرمجيات، والتي تشمل استخدام تقنيات النمذجة، حيث تنطلق من تحديد نموذج كائن النطاق domain object model، والذي يمثل الوحدات الجوهرية والعلاقات فيما بينها داخل نطاق المشكلة. يُستخدم هذا النموذج كإطار عمل قاعدي لتطوير الخصائص والمساعدة على ضمان أن البرنامج يتناسب والمشكل المرغوب حله.

4. الاعتماد على فريق العمل

يعتمد إطار التطوير الموجه بالخصائص على مقاربة تقوم على التعاون بين فريق العمل في عملية تطوير البرمجيات، ويتضمن ذلك مجموعةً متنوعةً من الأدوار كما أشرنا سابقًا، إذ يسمح استخدام خبراء وأعضاء فريق متنوعي الخلفية والمهارات بضمان أن تكون عملية التطوير أكثر كفاءةً وفعالية.

5. التكرار والتراكم

يتبع إطار تطوير الموجه بالخصائص عملية تطوير تكراريةً وتراكمية، حيث أن كل دورة تطوير تكون مبنيةً على الدورة التي سبقتها، مما يسمح بالتحسين المتواصل للبرنامج، ويقلل من مخاطر بناء نظام كبيرة ومعقد دون تعليقات وآراء المستخدمين، إذ يتطور المنتج في هذه الحالة استجابةَ للمتطلبات والأولويات المتغيرة.

خطوات التطوير الموجه بالخصائص FDD

يتمحور إطار التطوير الموجه بالخصائص حول مجموعة تتكون من خمس عمليات تغطي تطوير نموذج شامل ووضع قائمة الخصائص وتخطيطها وتصميمها وبنائها، وتتمثل هذه الخطوات فيما يلي:

1. تطوير النموذج الشامل

تتضمن الخطوة الأولى تحصيل فهم واضح لنطاق وسياق نظام البرنامج الذي نرغب في تطويره، وتكون الانطلاقة هنا من عملية شرح عالية المستوى يُناقش فيها الأطراف ذوي الصلة، بما في ذلك:

  • المطورين وخبراء النطاق
  • أهداف المشروع العامة ومتطلباته

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

2. بناء قائمة الخصائص

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

3. التخطيط حسب الخصائص

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

4. التصميم حسب الخصائص

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

5. البناء حسب الخصائص

تبدأ عملية التطوير الفعلية خلال هذه المرحلة اعتمادًا على مرحتلي التخطيط والتصميم، حيث يبدأ المطورون في بناء كل خاصية حسب المواصفات والتصميم المقدم، ويتضمن ذلك كتابة تعليمات التطوير، وإجراء الاختبارات، والسهر على أن كل خاصية تعمل بالصورة المطلوبة؛ وتُنفذ عملية التطوير تكراريًا، خاصيةً بعد الأخرى، للسماح بالاختبار والتحسين المتواصلين.

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

ميزات إطار التطوير الموجه بالخصائص FDD ومحدوديته

يجمع إطار التطوير الموجه بالخصائص بين التركيز على العميل، ودورات التطوير السريعة، والممارسات المتمحورة حول النماذج، ليُشكل مقاربةً ملائمةً لتقديم برمجيات عالية الجودة تستجيب لاحتياجات العميل بمرونة عالية، ويمكن تلخيص أهم ميزات التطوير الموجه بالخصائص كما يلي:

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

في المقابل، فإن التطوير الموجه بالخصائص ينطوي على مجموعة من التحديات التي تحد من منفعته رغم كل الميزات المذكورة في هذا المقال، ومن بين هذه التحديات نذكر ما يأتي:

  • يتضمن إطار التطوير الموجه بالخصائص سلسلةً من الخطوات والعمليات المحددة بدقة، والتي ينبغي اتباعها؛ وهو ما يمكن أن يجعله إطار عمل أكثر تعقيدًا مقارنةً ببعض أطر عمل منهجية أجايل الأخرى، حيث تحتاج فرق العمل إلى الالتزام الصارم بمجموعة من الممارسات التي يمكن أن تتطلب مجهودات أكبر لفهم وتطبيق إطار العمل بفعالية.
  • قد لا يلائم إطار التطوير الموجه بالخصائص المشاريع صغيرة الحجم، إذ يمكن أن يكون التحديد الدقيق لقوائم الخصائص، والنمذجة، والحفاظ على الأدوار الخاصة ضمن الفريق، أمورًا غير ضرورية لعمليات التطوير صغيرة الحجم، بل وحتى تزيد من التكلفة فقط دون زيادة الفعالية.
  • يقترح التطوير الموجه بالخصائص إطارًا مهيكلًا للتطوير، والذي يمكن أن يكون أقل مرونةَ عند الحاجة إلى الاستجابة السريعة للمتطلبات المتغيرة، إذ يركز التطوير الموجه بالخصائص على التخطيط المفصل والنمذجة القبلية، مما قد يصعب من تكيفه مع المشاريع سريعة التطور، خاصةً في بيئات العمل الحركية.
  • يعتمد إطار التطوير الموجه بالخصائص كثيرًا على وجود مطور رئيسي ماهر يؤدي عدة أدوار، بما في ذلك دور المنسق، والمصمم القائد، والمرشد؛ لذلك يمكن أن يتوقف نجاح تطبيق التطوير الموجه بالخصائص على إيجاد فرد يمتلك الخبرة اللازمة لهذا الدور والحفاظ عليه، ويمكن أن يطرح غياب شخص مماثل عدة تحديات.
  • عادةً ما يكون إطار التطوير الموجه بالخصائص أكثر استهلاكًا للزمن مقارنةَ بأطر عمل منهجية أجايل الأخرى، ويرجع ذلك إلى الحاجة إلى إنشاء نموذج نطاق مفصل، وتخطيط الخصائص، والإعدادات الأولية؛ والتي يمكن أن تطيل من مدة المراحل الأولى للمشروع، ورغم أن هذا الإطار الدقيق يمكن أن يقود إلى نتائج أكثر جودةَ، إلا أنه ربما لا يناسب المشاريع التي تتطلب تطويرًا وإطلاقًا سريعين.

ختامًا، فإن إطار التطوير الموجه بالخصائص يبقى أحد الأطر المفضلة لدى العديد من الفرق المختصة في تطوير المشاريع، حيث يساعدها على بناء برمجيات تلبي حقًا احتياجات المستخدمين النهائيين. وعند تطبيقه بصورته الصحيحة طيلة فترة المشروع وبما يتوافق ومتطلبات العميل، يمكن أن يكون أداةَ قويةَ لتقديم برمجيات عالية الجودة ضمن بيئة عمل منظمة وصحية تعمل في تناغم متواصل.

المصادر

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...