سؤال

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

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

كيف يمكنني إقناعه أن كلا من هذه متكاملان وليس متعامد.أو أنا على خطأ ؟

هل كانت مفيدة؟

المحلول

ولست متأكدا من أن وجود عدد أكبر من الناس الذين لا يعرفون ما يفعلونه في TDD هو الذهاب الى مساعدة. أنه سوف ينزل بسرعة إلى كل واحد منكما غوغلينغ هذا الموضوع، أو كل واحد منكما الجدل حول بالضبط ما هو TDD / ليست كذلك.

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

نصائح أخرى

زوج progamming فعالة عندما تعلم ممارسة جديدة خاصة TDD

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

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

في حين أنه قد يبدو أمرا غير متوقع أن وجود المبرمجين زوج والعمل معا على تحسين الإنتاجية ، وهناك عدد من الأسباب لماذا هذا الأسلوب فعلا عمل (التفكير القديم قائلا: "اثنين من رؤساء أفضل من واحد.") هنا لماذا:

  • تحسين الجودة-الاقتران تشجع مراجعة التعليمات البرمجية.أخطاء كثيرة ننشغل كما تم كتابتها.يقترن البرمجة يعني المستمر مراجعة التعليمات البرمجية القيام به من قبل اثنين من الناس الذين هم ملتزمون نوعية رمز تعمل معا لتحديد وإصلاح الخلل في جميع الأوقات.دراسة أجرتها جامعة ولاية يوتا وجدت أن عدد نهاية العيوب الموجودة في التعليمات البرمجية بنسبة 15% في المتوسط للحصول على التعليمات البرمجية المكتوبة بواسطة أزواج.
  • قضاء وقت أقل "عالقة" -- البرمجة أمر صعب.في كثير من الأحيان للمطورين النضال من أجل إيجاد حل وقضاء وقتا أكثر مما ينبغي "عالقة".وجود شريك لتبادل الأفكار مع والموافقة على طلب المساعدة إذا لزم الأمر يقلل من كمية منتجة الوقت الذي يقضيه عالقة في محاولة لإيجاد حل.
  • قضاء وقت أقل على الانحرافات -- المطور هو أقل احتمالا قضاء بعض الوقت على الشخصية المكالمات الهاتفية أو تصفح الويب أو البريد الإلكتروني الإجازات عندما قال أنه أو أنها تعمل مع شريك.
  • منظورين يتم تطبيقها على المشكلة-اختلاف مستويات الخبرة المختلفة لحل المشكلة أنماط مختلفة من المساعدة مهارات كل زيادة فرص حل المشكلة بشكل أسرع.الدراسة التي قامت بها جامعة يوتا أيضا تحديد أفضل التصميم العام و أقصر طول رمز البرنامج مكتوبة من قبل أزواج.
  • أقل الخوف من المجهول .. عندما الاقتران مع مطور آخر هو أسهل لمعالجة مشكلة أو محاولة للحصول على التعامل مع التكنولوجيا الجديدة مما هو عليه عند العمل وحدها.فإنها تكتسب أيضا ، مع مرور الوقت ، فهم أفضل بكثير من التطبيق بالكامل.في نهاية المشروع ينتهي مع العديد من الناس فهم كل قطعة من النظام نتيجة الاقتران.
  • أقل عرضة بناء في نطاق -- في كثير من الأحيان للمطورين عن طيب خاطر إضافة وظائف لم تعالج في المتطلبات.عند العمل مع زوج ثاني المطور هو أكثر من المحتمل أن تبقى له/شريكها في العمل.
  • تحسين ديناميات الفريق بسبب يقترن نهج الناس على تعلم كيفية العمل معا.يتحدثون في كثير من الأحيان و تجربة أفضل تدفق المعلومات.ديناميات الفريق تحسين نتيجة لذلك.في الواقع ، لقد وجدنا أن أفضل فريق بناء الخبرة في جميع أنحاء تعمل معا لإنتاج برنامج العميل الخاص بك هو متحمس.الجميع يحب أن يكون جزءا من فريق ناجح.
  • القضاء على صوامع من المعرفة في مجال المعرفة, معرفة رمز أو الممارسات بسرعة نشر من خلال فريق المطور الزوج مع بعضها البعض على أساس التناوب.

وبمجرد أن فريق مريحة مع الاقتران ، ثم تأخذ على TDD.أ destription يلي:

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

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

  1. كتابة الاختبار.في تطوير اختبار يحركها كل قصة جديدة بطاقة يبدأ مع كتابة الاختبار.هذا الاختبار سوف تفشل لأنها كتبت من قبل الميزة قد تم تنفيذها.من أجل كتابة الاختبار المطور يجب أن يفهم مواصفات و متطلبات الميزة بوضوح.ويمكن تحقيق ذلك من خلال قصة البطاقات مع معايير القبول إلى تحديد المتطلبات قد تم الوفاء.هذا يمكن أن يعني أيضا ثابتة ، أو تعديل القائمة الاختبار.هذا هو ميزة تمييز من تطوير اختبار يحركها مقابل كتابة وحدة الاختبارات بعد كتابة التعليمات البرمجية:يجعل المطور التركيز على متطلبات قبل كتابة رمز خفية ولكن الفرق المهم.
  2. تشغيل جميع الاختبارات ومعرفة ما إذا كان واحد جديد يفشل.هذا يؤكد أن اختبار تسخير يعمل بشكل صحيح و أن الاختبار الجديد لا خطأ يمر من دون الحاجة إلى أي قانون جديد.الاختبار الجديد أن تفشل أيضا المتوقع السبب.هذه الخطوة الاختبارات الاختبار نفسه في السلبية:فإنه يستبعد إمكانية أن الاختبار الجديد سوف تمر دائما ، وبالتالي تكون لا قيمة لها.
  3. كتابة بعض التعليمات البرمجية.الخطوة التالية هي كتابة بعض التعليمات البرمجية التي سوف يسبب اختبار يمر.القانون الجديد مكتوب في هذه المرحلة لن تكون مثالية ويمكن ، على سبيل المثال ، في اجتياز الاختبار في غير مستساغ في الطريق.مقبول لأنه بعد خطوات من شأنها تحسين وصقل ذلك.المهم أن قانون مكتوب يهدف فقط إلى اجتياز الاختبار ؛ لا مزيد من (وبالتالي لم تختبر) وظيفة ينبغي توقع و 'يسمح' في أي مرحلة.
  4. تشغيل الاختبارات المؤتمتة و انظر لهم النجاح.إن جميع حالات الاختبار تمر الآن, مبرمج يمكن أن تكون على ثقة من أن قانون يلبي جميع متطلبات اختبار.هذا هو نقطة جيدة يمكن من خلالها البدء في الخطوة النهائية من دورة.
  5. ريفاكتور رمز.الآن رمز يمكن تنظيفها عند الضرورة.من خلال إعادة تشغيل الاختبار الحالات المطور يمكن أن تكون على ثقة من أن إعادة بيع ديون لا يضر أي الوظائف الموجودة.مفهوم إزالة الازدواجية جانبا هاما من أي برنامج تصميم.في هذه الحالة ، ومع ذلك ، فإنه ينطبق أيضا على إزالة أي ازدواج بين رمز اختبار وإنتاج البرمجية — على سبيل المثال الأرقام السحرية أو السلاسل التي تكررت في على حد سواء ، من أجل جعل تمرير اختبار في الخطوة 3.

كرر

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

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

وأنت صحيح تماما هذا الزوج البرمجة سوف يساعد كثيرا عندما تعلم شيء جديد. وأنا أتفق معك أنه يجب عليك الدفع بقوة للقيام على حد سواء.

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

وأنت لا يقنع. أقول له الأسباب التي أعتقد أن كلا العمل معا، وربما تقديم بعض البيانات التي تؤكد ذلك، والسماح له اتخاذ قرار. إذا كنت بحاجة إلى إقناع الجميع بأن انها فكرة جيدة، وأراهن أن لا أحد يذهب إلى اتخاذها لذلك بشكل جيد جدا. المعارضة Natual.

وأنا شخصيا وجدت برمجة الزوج يعمل بشكل أفضل مع واحد من ذوي الخبرة واحد عديم الخبرة.

وبمعنى آخر أود أن تهدف للفرق في المهارات / إكسب من المبرمجين بدلا من محاولة لمطابقة المهارات بالتساوي.

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

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

والاختبارات وحدة أساسية للمنظمة البحرية الدولية ... إنس، وبعض الموظفين لن يكون هناك في 2 سنوات. كيف يمكنك تغيير التعليمات البرمجية الموجودة إذا كان هناك أي شيء للتحقق من وظيفتها ضد؟

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

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

وبينما الممارسة واحد لا يحتاج إلى الآخر، هناك "متستر" وسيلة لإدخال كلا قليلا في وقت واحد.

بدء بهدف تنفيذ TDD باستخدام أحد الأطر xUnit المتاحة. العثور على متوافق زميل في العمل وأسأل ما إذا كان لمدة ساعة تقريبا يوميا انهم سيكونون على استعداد للعمل معكم. "شون، وأنا أحاول هذه الأداة الجديدة، هل مساعدتي للتأكد من أنني أفعل ذلك أليس كذلك؟" يعمل بشكل جيد حقا.

وبعد بضعة أيام مع شون، كرر مع سوزان ...

هل لأنها على أي حال. إذا كان مدير يصور لك الاقتران، ويقول الكلمات السحرية "مراجعة قانون"
الافتراض: من الواضح أن الزوج يجب أن تكون منضبطة / تركز بما فيه الكفاية وتنتج كود العمل في نهاية الدورة

وكتابة بعض الاختبارات التي تجلب الانتباه إلى الأخطاء الموجودة في قاعدة كود - ثم تبين لهم أن رئيسك في العمل، وأعتقد أنه قد يوافق فجأة TDD هو فكرة جيدة

!
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top