# فريق البرمجة

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

## وصف

يتألف فريق البرمجة من أشخاص يقومون بتطوير برامج الكمبيوتر أو صيانتها .

## برمجة فرق العمل

ويمكن تنظيم فرق البرمجة بطرق عديدة، ولكن فريقالبرمجة egoless (إقولس) و رئيس فريق مبرمج نوعان من الهياكل المشتركة التي تستخدم عادة. تتضمن المحددات الرئيسية عند اختيار هيكل فريق البرمجة عادةً: الصعوبة والحجم والمدة والنمطية والموثوقية والوقت والتواصل الاجتماعي.

### برمجة Egoless

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

### رئيس فريق المبرمجين

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

### فرق محطة العمل المشتركة

تقنية تطوير حيث يعمل مبرمجان معًا في محطة عمل واحدة.

#### برمجة الغوغاء

نهج تطوير البرمجيات حيث يعمل الفريق بأكمله على نفس الشيء وفي نفس الوقت وفي نفس المكان وعلى نفس الكمبيوتر.

## نماذج البرمجة

تتيح نماذج البرمجة لفرق تطوير البرمجيات تطوير ونشر واختبار المشاريع باستخدام هذه المنهجيات المختلفة.

### نموذج الشلال

يعتبر نموذج الشلال، الذي يُشار إليه على أنه النهج التقليدي ، نموذجًا خطيًا للإنتاج. فيما يلي تسلسل أحداث هذه المنهجية:
* جمع وتوثيق المتطلبات
* التصميم
* اختبار الكود والوحدة
* قم بإجراء اختبار النظام
* إجراء اختبار قبول المستخدم (UAT)
* أصلح أي مشاكل
* تسليم المنتج النهائي
تختلف كل مرحلة أثناء عملية تطوير البرنامج، وتنتهي كل مرحلة بشكل عام قبل أن تبدأ المرحلة التالية.
تستطيع فرق البرمجة التي تستخدم هذا النموذج تصميم المشروع في وقت مبكر في عملية التطوير مما يسمح للفرق بالتركيز على الترميز والاختبار أثناء معظم العمل بدلاً من تكرار التصميم باستمرار. يسمح هذا أيضًا للفرق بالتصميم بالكامل وبعناية أكبر بحيث يمكن للفرق الحصول على فهم كامل لجميع مخرجات البرامج.
إن نموذج التطوير الرشيق هو نهج تنمية قائم على الفريق أكثر من نموذج الشلال السابق. تعمل الفرق في التسليم / النشر السريع الذي يقسم العمل إلى مراحل تسمى «العدو السريع». عادة ما يتم تعريف Sprints (سبرينت) على أنها أسبوعان من مخرجات البرامج المخططة المقدمة لكل فريق / عضو في الفريق.
بعد كل sprint (سبرينت) ، يتم إعادة ترتيب أولويات العمل ويتم استخدام المعلومات المستفادة من العدو السابق لتخطيط العدو في المستقبل. مع اكتمال عمل العدو، يمكن مراجعته وتقييمه من قبل فريق البرمجة وإرساله مرة أخرى لتكرار آخر (أي الركض التالي) أو إغلاقه إذا اكتمل.
المبادئ العامة للبيان الرشيق هي كما يلي:
* إرضاء العميل وتطوير البرامج باستمرار.
* يتم احتضان متطلبات التغيير من أجل الميزة التنافسية للعميل.
* ركز على تقديم برامج العمل بشكل متكرر. سيتم وضع تفضيل التسليم في أقصر فترة زمنية ممكنة.
* يجب على المطورين ورجال الأعمال العمل معًا طوال المشروع بأكمله.
* يجب أن تستند المشاريع إلى الأشخاص الذين لديهم الحافز. وفر لهم البيئة المناسبة والدعم الذي يحتاجون إليه. يجب الوثوق بهم لإنجاز وظائفهم.
* التواصل وجهًا لوجه هو أفضل طريقة لنقل المعلومات من وإلى الفريق.
* برنامج العمل هو المقياس الأساسي للتقدم.
* العمليات الرشيقة ستعزز التنمية المستدامة. يجب أن يتمكن الرعاة والمطورون والمستخدمون من الحفاظ على وتيرة غير محددة وثابتة.
* الاهتمام المستمر بالتميز التقني والتصميم الجيد سيعزز خفة الحركة.
* تعتبر البساطة فن تعظيم العمل الذي لم يتم، وهو ضروري.
* عادة ما تصنع الفرق ذاتية التنظيم أفضل التصاميم.
* على فترات منتظمة، سينظر الفريق في كيفية أن يصبح أكثر فعالية، وسوف يضبطون سلوكهم ويعدلونه وفقًا لذلك.

## انظر أيضا

* فريق متداخل الوظائف
* سكروم (تطوير البرمجيات)
* عملية تطوير البرمجيات
* عملية برمجيات الفريق