Full transcript
0:00كيف حالكم ؟
0:04>> مساء الخير .
0:08>> لم أستطع الدخول ، لا
0:09أعرف ، كان يظهر لي خطأ
0:11حتى اللحظة . لا أعرف ما
0:13الذي كان يحدث ، لكنني
0:16تمكنت من الدخول الآن .
0:18لو لم أفعل ، كنت سأطلب
0:19منكم الانضمام من مكان
0:21آخر ، لكن حسناً ، انتهى
0:23الأمر . لقد تمكنت من
0:25الدخول . حسناً ، هل كل
0:26شيء بخير ؟ هل لديكم أي
0:28استفسار ؟ بينما يأتي
0:30البقية ، كل شيء هادئ .
0:35هل كنتم تراجعون ؟
0:40>> كل شيء جيد حتى الآن .
0:44>> حسناً ، هذا أفضل . هل
0:52هناك أي شكوك حول ما
0:59قمتم بمراجعته ؟ إذا
1:01كنتم قد راجعتم . لدي
1:12سؤال ، ولكن بخصوص
1:14الامتحان .
1:15>> حسناً ، تفضل ، اسأل .
1:18>> هل سيكون مقالياً أم
1:19اختياراً من متعدد ؟
1:23سيكون هناك جزء عملي
1:25وستكون هناك أسئلة
1:29>> عملية مثل اختبارات
1:31الصندوق الأسود
1:32واختبارات الوحدات
1:34وهكذا ،
1:35>> أليس كذلك ؟ لأننا لم
1:37نرَ شيئاً من ذلك بعد .
1:38ولن نراه حتى الامتحان
1:40الجزئي الأول .
1:42>> بل حتى الثاني في
1:43الواقع .
1:44>> حتى الثاني . رائع .
1:47>> بالضبط . ما تبقى اليوم .
1:49سنتناول القليل من
1:50المنهجية . ونموذج WW .
1:54الأسبوع القادم ما
1:56تبقى هو عملية
1:57الاختبار ، التخطيط ،
1:59المتابعة ، التحكم
2:01والتحليل . أه ، وبعد
2:07ذلك في الأسبوع التالي
2:13تتبقى العملية ، أي
2:15الأسبوع السابع ، وهي
2:17عملية تصميم
2:18الاختبارات ، تنفيذ
2:19الاختبارات ، وسنقوم
2:21أيضاً بالربط ، أريد أن
2:23أتقدم قليلاً ، حتى نرى
2:26الأسبوع القادم كيف
2:27يمكننا القيام بذلك .
2:32وهو التمرين العملي
2:34للواجب الثاني . جيد ،
2:37لنربط الأمور ببعضها .
2:41أه ، وحتى ذلك الأسبوع
2:51سيكون الامتحان ، أي
2:52حتى الأسبوع السابع .
2:54سيشمل حتى الأسبوع
2:55السابع . جيد ، شكراً . هل
3:29تسمعونني ؟
3:32>> الآن نعم .
3:33>> حسناً ، أهون من لا شيء .
3:38حسناً ، إلى أين وصلتم
3:40في سماعي ؟
3:42>> كنت قد انتهيت للتو من
3:44قول أنك تريد الوصول
3:45إلى عملي الأسبوع
3:47السابع . جيد ، إذاً هذا
3:49جيد . هذا جيد . موضوع
3:55عملي الأسبوع السابع .
3:58أريد أن أتقدم قليلاً ،
4:00حتى أعطيكم بعض الوقت
4:02للقيام بالواجب
4:04الثاني . جيد ، الواجب
4:06الثاني أطول قليلاً من
4:08الواجب الأول ،
4:09والواجب الثالث كذلك ،
4:11أكثر كثافة من الثاني .
4:13جيد ، الأمر كأنه يتوسع
4:15تدريجياً . حسناً .
4:17وفكرة أسبوع 28 سبتمبر
4:24هي أن نقوم يوم
4:25الاثنين بمراجعة
4:27للنظري ، ويوم 30 هو
4:32الامتحان الجزئي
4:33الأول ، تذكروا ، سيكون
4:35حضورياً . جيد ، ممتاز .
4:37هل هناك أسئلة حتى
4:39الآن ؟ هل لديكم أي
4:40استفسار ؟
4:42>> لا ، أعني حتى الوحدة
4:44السابعة شاملة . حتى
4:45الوحدة السابعة .
4:47بالضبط . كما هي . جيد .
4:51>> ممتاز .
4:54>> سأعيد ذلك مرة أخرى .
4:58لذا سنرى الأمر
5:00أسبوعاً بعد أسبوع . ما
5:04أود منكم هو مراجعة كل
5:06ما تحدثت عنه في
5:07الجانب النظري . حسناً ،
5:12هذا مهم ليوم الأربعاء
5:14. حاولوا المراجعة
5:16والاطلاع على كل شيء ،
5:18لأن الأمور تتراكم
5:20لاحقاً ، وإذا أردتم
5:22تذكرها في الأسبوع
5:23الأخير ، فلن تتذكروا
5:25الكثير . جيد .
5:27>> حسناً .
5:28>> حسناً ، هل هناك أي
5:30سؤال آخر ؟ هل هناك أي
5:37سؤال آخر تودون طرحه ؟
5:40إذا لم يكن هناك ،
5:41سأبدأ . حسناً ، جيد .
5:44اليوم كما أخبرتكم ،
5:46سنرى قليلاً عن
5:47المنهجيات الرشيقة .
5:49نستمر فيما كنا فيه ،
5:51ونتعمق أكثر في
5:53الاختبار ، ونموذج B و W.
5:58آه ، آه ، إذاً ،
6:10المنهجيات الرشيقة
6:12ظهرت ، كما كنت أخبركم ،
6:14كبديل عندما يتم
6:16تنفيذها بشكل جيد .
6:18هناك ستحل العديد من
6:20صعوبات النماذج
6:22السابقة ، كما كنت
6:23أخبركم ، مثل نموذج
6:25الشلال . جيد ، والنموذج
6:28الحلزوني الذي كنت
6:29أتحدث عنه . آه ،
6:36انتظروا وصول المزيد .
6:39آه ، إذاً ، ما هو مهم
6:44معرفته هو بعض المبادئ
6:46، وما هي عقلية هذه
6:48المنهجية . جيد ،
6:54سأخبركم هنا قليلاً عن
6:56المنهجية الرشيقة ( Agile )
6:58. في عام 2001 اجتمع 17
7:01ناقداً لنموذج تطوير
7:04البرمجيات التقليدي
7:06لأنه لم يكن موجوداً
7:08من قبل . اجتمعوا
7:11للحديث قليلاً عن
7:13بدائل لهذه النماذج .
7:16آه ، إذاً هو لقاء دعا
7:23إليه كين بيك ، الذي
7:25كان أحد مبتكري منهجية
7:28XP و TDD . ربما البعض يعرف
7:31عما أتحدث ، والبعض
7:33الآخر لا . إنها
7:34منهجيات وممارسات .
7:36لاحقاً سنتحدث قليلاً
7:39عن TDD و BDD في جانب
7:40الأتمتة . إذاً ، في هذا
7:45الاجتماع حددوا ما
7:47ستكون عليه القيم التي
7:49سيتم اتباعها من الآن
7:50فصاعداً في هذا التوجه
7:52الجديد لتطوير
7:54البرمجيات ، هذا
7:55التوجه الجديد لتطوير
7:57هذه المنهجية ، والتي
8:03كما قلت لكم تظهر
8:05كمعارضة لكل النماذج
8:06التقليدية الموجودة .
8:12حتى تلك اللحظة . إذاً
8:16سيتم طرح الأمر بهذه
8:17الطريقة ، سيتم طرح كيف
8:20سنقدر شيئاً على حساب
8:22آخر ، حيث الشيء الأول
8:24هو الجديد والآخر هو
8:25ما كان يتم فعله . إذاً ،
8:31كما أعرض لكم في
8:32النقطة الأولى ، ما
8:34يقوله هو إعطاء
8:35الأولوية للأفراد
8:37والتفاعلات على
8:38العمليات والأدوات .
8:42ماذا يعني ذلك ؟ على
8:46الرغم من أن العمليات
8:48تتجاوز مجرد العمل ،
8:50وأن الأدوات ستسمح لنا
8:52بإنجاز العمل بطريقة
8:54أكثر كفاءة ، إلا أن
8:55الأشخاص ، نحن ، هم من
8:57سيحدثون تلك
8:58التغييرات بالمعرفة
9:00التقنية والسلوكيات
9:02المناسبة . حسناً ، هذا
9:07شيء ظننت في البداية
9:10أن الأمر سيكون كذلك ،
9:13لكنه لا يزال صحيحاً .
9:15أي أن الأشخاص هم من
9:16يغيرون مسار تطوير
9:18البرمجيات . حسناً ،
9:20إذاً التطوير يتمحور
9:22حول الأشخاص . نعم ،
9:25عندما أشير إلى
9:26التطوير ، فأنا أقصد
9:27التطوير والاختبار .
9:32بمعنى أن التطوير يجمع
9:34كل شيء تحت مظلة واحدة
9:36، لأن المشاركين في
9:38تطوير البرمجيات
9:40يشكلون أجزاءً مختلفة
9:42، لكننا جميعاً ،
9:43مطورين ومختبرين ،
9:45نساهم في هذا التطوير ؛
9:47أنا أتحدث هنا عن فريق
9:49التطوير . فريق التطوير
9:54يتكون من المطورين
9:55والمختبرين . لكنني
9:58أتحدث عن منهجية "
9:59أجايل " ، حيث يوجد ضمن
10:01هذه المجموعة " سكرم
10:03ماستر " ( Scrum Master ) ،
10:05ومسؤول الأعمال ،
10:06والعديد من الأشخاص
10:08الآخرين ، والمستخدمون
10:10النهائيون ، ويمكنني
10:12الاستمرار في ذكر
10:14الأشخاص المعنيين ،
10:16حيث تصبح الدائرة أكبر
10:18فأكبر . في النقطة
10:24التالية ، النقطة
10:26الثانية ، نجد
10:27البرمجيات العاملة
10:29مقابل التوثيق الشامل
10:31؛ من وجهة نظر العميل ،
10:32من المفيد جداً الحصول
10:34على برنامج يعمل
10:36بالفعل بدلاً من
10:37الحصول على مواصفات
10:39مفصلة جداً لما سيفعله
10:41النظام في المتطلبات .
10:48حسناً ، تخيلوا أنفسكم
10:50كعملاء ، إذا سُئلتم
10:52عما تفضلونه ، هل
10:53تفضلون الحصول على كل
10:55تفاصيل عمل النظام أم
10:57أن يكون النظام يعمل
10:59بالفعل ؟ من الواضح
11:03أنني سأفضل أن يكون
11:04النظام يعمل . حسناً ،
11:08إذاً ذلك البرنامج
11:09الذي يعمل سيسمح لنا
11:11بالحصول على عمليات
11:13التحقق والملاحظات
11:14بشكل أسرع مما لو
11:16اكتفينا بكتابة
11:17المواصفات . هذا لا
11:21يعني أن المنهجيات لا
11:23تتطلب التوثيق . حسناً ،
11:27هناك سوء فهم شائع
11:29بأننا لا نوثق لأننا
11:31نعمل بمنهجيات " أجايل "
11:33، لكن الأمر ليس كذلك .
11:36ببساطة ، لا تُعطى
11:38الأولوية لهذا النشاط
11:40، لكنه لا يعني أنه لا
11:42يتم ، بل يتم بالفعل .
11:45التوثيق أمر بالغ
11:47الأهمية . تخيلوا لو
11:48كان عليكم اختبار شيء
11:50ما ولم يخبروكم بوضوح
11:52بما يجب اختباره ،
11:54فماذا ستفعلون
11:55لاختباره ؟ حسناً ، من
11:57الشائع جداً في " أجايل "
11:59أن يفتقر العمل
12:01للتوثيق . حسناً ، هذا
12:02أمر لطالما أخبرتكم
12:04أنه موثق بشكل كبير ،
12:06لكن في بعض الأحيان لن
12:08تجدوا هذا التوثيق .
12:10حسناً ، سيكون
12:11الاعتماد على الكلام
12:12الشفهي . حسناً . تخيلوا
12:15أنني جئت اليوم
12:16لأخبركم بأنني طورت
12:18نظاماً ويجب إطلاقه
12:20للإنتاج يوم الجمعة ،
12:22وعليكم اختباره ،
12:23فستتساءلون : حسناً ، ما
12:25هي معايير القبول ؟
12:27بمعنى أنه لا توجد
12:28وثائق يا شباب . أي ،
12:30اختبروه ولنرى ما
12:32سيحدث . حسناً ، هذا خطر .
12:36حسناً . ستبدأ أيديكم
12:40بالتأكيد بالارتجاف
12:41على لوحة المفاتيح .
12:44تخيلوا أن لديكم نظام
12:46تحصيل ويبدأ بخصم أي
12:48شيء . لذا ، الأمر يكون
12:50حرجاً جداً في بعض
12:52الأحيان . حسناً ، لكن
12:53يتم مناقشة كل هذا ضمن
12:55الفريق . ما الذي يحدث ؟
12:58حسناً . لكن كما
13:00أخبرتكم ، من الشائع
13:01جداً أن تفتقر
13:02المشاريع للوثائق .
13:04حسناً ، النقطة
13:07الثالثة . إيه ، وهنا
13:13يكمن الجانب المهم ،
13:14التواصل أهم بكثير في
13:16بعض الأحيان ، اعذروني
13:18على هذا الاستطراد .
13:23سيتعين علينا
13:24المشاركة في تلك
13:26الاجتماعات ، وطرح
13:27الكثير من الأسئلة ،
13:29لكن هذا لا يعني أن
13:31الأمر سيوثق . حسناً ،
13:33في كثير من الأحيان ،
13:35كما قلت لكم ، ما يحدث
13:37هو سوء فهم لهذا الأمر
13:39، لكن في الواقع لا
13:41يعني عدم وجود توثيق .
13:43حسناً ، النقطة
13:46الثالثة . من ناحية
13:49أخرى ، لدينا التعاون
13:51مع العميل مقابل
13:52التفاوض على العقود .
14:00أي أنه على الرغم من
14:02ضرورة وجود إطار ينظم
14:04العلاقة بين الشركات ،
14:06وهذا الإطار سيكون
14:07العقد . حسناً ، العقد
14:13بحد ذاته لن يضيف قيمة
14:15للمنتج الذي نبنيه .
14:20حسناً ، هو مجرد إجراء
14:22رسمي يحدد الخطوط
14:24الفاصلة بين
14:25المسؤوليات ويضع
14:27المراجع للنزاعات
14:28التعاقدية المحتملة ،
14:30لكنه ليس الأولوية .
14:36هناك علاقة قائمة على
14:38العقد في التطوير ، لكن
14:41العميل هو عضو إضافي
14:42في فريق العمل ، يندمج
14:45ويتعاون ويشارك مثل أي
14:47عضو آخر ، وهذا أحياناً
14:49يكون تغييراً جذرياً
14:51وملفتاً للانتباه . أي
14:56أن العميل جزء من
14:57فريقي . العقود عادة لا
15:05تقيدنا ، لكنها تجعل
15:07العلاقات أكثر جموداً
15:09بعض الشيء . حسناً ، في
15:15المقابل ، في المنهجية
15:17الرشيقة ، يُساء فهم
15:18كلمة " رشيقة " أحياناً
15:20لأنها تُفهم على أنها
15:22سرعة إنجاز الأمور ،
15:23أليس كذلك ؟ لا يعني
15:25ذلك القيام بالأمور
15:26بسرعة ، بل القيام بها
15:28بمرونة ، والقدرة على
15:29التكيف مع التغييرات .
15:31هذا مهم ، مفهوم
15:33المرونة ، والسرعة (
15:35أجايل ) ، والأخير ،
15:37حسناً ، ما سيُقال هناك
15:39. النقطة الرابعة .
15:43الاستجابة للتغيير
15:47على اتباع خطة . آه ،
15:52التغيير حتمي ، يحدث
15:54ويحدث طوال الوقت ،
15:56وأكثر في منهجيات "
15:58أجايل " ، حيث نكون
16:00منفتحين على ما قد
16:02يحدث . في المنهجيات
16:06التقليدية يحدث أيضاً
16:08، لكننا نحاول إخفاءه
16:10لأنه يأتي بنتائج
16:12عكسية . حسناً ، إذاً ،
16:17لنرَ ، مثال : إذا أصدر
16:25البنك المركزي لائحة
16:27تنظيمية ، وأنتم بنك ،
16:29فلن يهتم إذا كنا
16:31نستخدم منهجية " أجايل "
16:33أو تقليدية ؛ سيطالب
16:35بتنفيذ تلك اللائحة
16:37ببساطة . إذاً ،
16:43باستخدام منهجية "
16:45أجايل " ، سيكون من
16:46الأسهل علينا التكيف
16:48مع التغيير الذي يطلبه
16:50البنك المركزي . تطوير "
16:56أجايل " مفيد بشكل
16:58أساسي في الأعمال التي
17:00تتغير باستمرار ،
17:02فتطوير " أجايل " يهدف
17:06إلى أن نكون مرنين
17:08تجاه هذه التغييرات
17:10ويسمح لنا بالتكيف .
17:13هذا لا يعني ، لأنه قد
17:15يُساء فهمه كما في
17:16الحالة الثانية ، أنه
17:18لا توجد خطة . بالطبع ،
17:23هناك خطة ، لأنه بدون
17:25خطة لا يمكننا اكتشاف
17:27متى سيحدث تغيير .
17:30وبناءً على هذه الخطة ،
17:32إذا كانت هناك خطط في
17:34منهجية " أجايل " ،
17:35فسنكون قادرين على
17:37القيام بذلك . من المهم
17:42أيضاً ، بالإضافة إلى
17:44توضيح المبادئ
17:45الأربعة التي أذكرها
17:47لكم ، أن يتضح أيضاً
17:49أنه لا يتم القيام بما
17:51في اليسار فقط ، بل يتم
17:53إعطاء الأولوية
17:54لليسار على اليمين .
18:01حسناً ، لا يعني ذلك
18:03التركيز على الأفراد
18:05والتفاعلات ونسيان
18:06العمليات والأدوات ،
18:08بل إننا نقدّر الأفراد
18:10والتفاعلات أكثر من
18:18العمليات ، أليس كذلك ؟
18:22والأدوات ، حيث لا يلغي
18:24أحدهما الآخر . آه ،
18:34دعونا ننتقل إلى
18:35التالي . في اجتماع
18:39عقده هؤلاء الأشخاص
18:40الذين أحدثكم عنهم ،
18:42قاموا بتحديد المبادئ
18:44الاثني عشر للمرونة (
18:46أجايل ) . المبادئ هي
18:51التالية التي ترونها
18:53أمامكم . حسناً . الأول ،
18:55الأولوية هي إرضاء
18:57العميل من خلال
18:58التسليم المبكر
19:00والمستمر للبرمجيات
19:01ذات القيمة . آه الهدف
19:10هو تحقيق رضا العميل ،
19:12من خلال منحه الحل
19:14الذي يريده ، وما نريد
19:16بناءه يجب أن يكون
19:17أقرب ما يمكن لما
19:19يرغبون به . يجب أن نكون
19:23مرنين ، ونتكيف مع
19:25التغيير ، والقيام ،
19:27كما كنت أقول لكم ،
19:29بعمليات تسليم مبكرة
19:31ومستمرة . النقطة
19:33الثانية ، آه ، النقطة
19:40الأخرى هنا تقول : " نرحب
19:42بتغيير المتطلبات ،
19:44حتى في مراحل التطوير
19:46المتأخرة ، فالتغيير
19:47يوفر ميزة تنافسية
19:49للعميل " . إذن ، نحن
19:53منفتحون على التغيير
19:55لأن أي تغيير سيجعلنا
19:57نقترب أكثر قليلاً مما
19:59يريده العميل . حسناً ،
20:04النقطة الثالثة ، نحن
20:06نسلم برمجيات وظيفية
20:09بشكل متكرر وفي أقصر
20:11فترة زمنية ممكنة . هذا
20:14يوضح أن النماذج
20:16تكرارية . كما ذكرت لكم
20:21سابقاً ، هنا يكون
20:22للعميل اتصال مبكر
20:24ومستمر وسيقدم لنا
20:26ملاحظات دائمة . حسناً ،
20:30بالإضافة إلى كونه
20:32مبكراً ، فسيكون أيضاً
20:34دائماً . والنقطة
20:36الرابعة ، يعمل مسؤولو
20:38الأعمال والمطورون
20:40معاً بشكل يومي طوال
20:42المشروع . ما نعنيه
20:45بمسؤولي الأعمال هم
20:47العملاء ، حسناً ،
20:49وفريق التطوير أيضاً ؛
20:51وبطبيعة الحال ، فريق
20:53العمل بأكمله . ليس
20:55الأمر أن ضمان الجودة (
20:57QA ) مستبعدون ؛ كما كنت
20:59أقول لكم ، إنهم
21:01مشمولون ضمن ما يُشار
21:03إليه بالمطورين ، وهذا
21:05العمل يتم بشكل يومي .
21:09النقطة الخامسة ،
21:11تُنفذ المشاريع من قبل
21:13أفراد متحمسين في بيئة
21:15مناسبة . كما كنت أقول
21:18لكم ، يجب توفير بيئة
21:20الدعم التي يحتاجونها .
21:23إن تحفيز الأشخاص
21:24الذين يعملون في مشروع
21:26ما في بيئة مناسبة
21:28يعتمد على فريق متعدد
21:30الوظائف وذاتي
21:31التنظيم يدير نفسه
21:33ويجد طريقه الخاص ،
21:35حسناً ، بدلاً من تلقي
21:37أوامر حول كيفية
21:38القيام بالأشياء ،
21:40حسناً ، يجب أن يكون
21:42فريقاً ذاتي الإدارة .
21:46تلك هي مهمة سكرام
21:48ماستر ( Scrum Master ) أو مدير
21:50التسليم لا أكثر ولا
21:52أقل . حسناً ، رؤية ما
21:55يحتاجونه ، تحفيزهم ،
21:57أي دفعهم للأمام كفريق
21:59. حسناً ، النقطة
22:04السادسة ، الطريقة
22:05الأكثر فعالية
22:06للتواصل هي المحادثة
22:08وجهاً لوجه . لقد كنت
22:10أقول لكم ، وقلت لكم
22:12منذ اليوم الأول في
22:13الفصل ، كلمة التواصل .
22:15وهو يركز هناك على
22:17التواصل . فيما يخص
22:18التواصل هنا ، سنتحدث
22:19عن التواصل وجهاً لوجه
22:21. حسناً . يمكنني إرسال
22:23بريد إلكتروني ،
22:24يمكنني إنشاء دردشة
22:25بين عدة أشخاص لمناقشة
22:27أمر ما ، لكن الأولوية
22:29هي للتواصل
22:30والمحادثات وجهاً
22:31لوجه . الآن أصبح كل شيء
22:33رقمياً أكثر من ذي قبل .
22:36حسناً . هذا يعني أن
22:37علينا عقد اجتماعات ،
22:39ولكن في السابق كان
22:40الأمر : حسناً ، تقترب
22:42من المكتب هناك ، وربما
22:44الآن مع العمل من
22:45المنزل أصبح الأمر
22:46مختلفاً ، لذا نتحدث
22:48وانتهى الأمر . اليوم
22:50تعمل العديد من
22:51الشركات بنظام هجين .
22:54النقطة السابعة ،
22:55البرمجيات العاملة هي
22:57المقياس الرئيسي
22:59للتقدم . وهذا شيء سبق
23:01أن أخبرتكم به ، بمعنى ،
23:03كيف نعرف ما إذا كنا
23:05نسير بشكل جيد أم سيئ ،
23:07أو إذا كنا نتقدم أم لا
23:09، حسنًا ، كل القيمة
23:11التي نضيفها للمنتج
23:13ولتطوير هذا البرنامج
23:15هي ما نبنيه . حسنًا ،
23:17ومن الواضح أن هذا
23:19النظام سوف يستمر في
23:20النمو . النقطة الثامنة
23:23، العمليات الرشيقة
23:24تعزز التنمية
23:26المستدامة . يجب الحفاظ
23:27على وتيرة عمل ثابتة
23:29إلى أجل غير مسمى . أول
23:31شيء يفكر فيه المرء
23:32عندما لا نتمكن من
23:34التسليم في الموعد هو ،
23:35حسنًا ، دعونا نعمل
23:37لساعات إضافية ، أليس
23:38كذلك ؟ ما نقترحه هو
23:41الحفاظ على وتيرة عمل
23:43ثابتة في كل تكرار ،
23:45وإدراج عناصر ، كما
23:47ذكرت لكم من قائمة
23:48المهام ( Backlog ) ، حيث
23:50توجد كل القصص التي
23:52يمكننا إنجازها . حسنًا
23:54، يتم تحديد " سبرنت " ،
23:56كما أخبرتكم ، هناك
23:57اجتماع تخطيط ، تبدأ
23:59الأسبوع ، يتم اختيار
24:00قصتين أو ثلاث ، نقدر
24:02الجهد ، ثم يتدخل " سكرم
24:04ماستر " ليقول : " يا رفاق
24:06، توقفوا هنا ، لأننا
24:07لن نتمكن من فعل أكثر
24:09من ذلك " . إذن من المهم
24:11جداً معرفة ما يسمى بـ
24:13" سرعة الفريق " لنتمكن
24:15من تقدير عدد القصص
24:17التي يمكن إدراجها من
24:19قائمة المهام للسبرنت
24:21التالي . النقطة
24:27التاسعة ، الاهتمام
24:29المستمر بالتميز
24:30التقني والتصميم
24:31الجيد يعزز من الرشاقة
24:33. يجب علينا الاهتمام
24:41بالتميز التقني
24:43والتصميم الجيد لتجنب
24:45المشاكل ، مع عدم نسيان
24:47أن الهدف هو إيجاد حل
24:48جيد بما يكفي . بدلاً من
24:54البحث عن حل مثالي .
24:57النقطة العاشرة ،
24:58البساطة جوهرية . يجب
25:01أن تتم إدارة الفريق
25:03بطريقة بسيطة . التعقيد
25:06هنا لا يؤدي إلا إلى
25:08شيء أكثر صعوبة ، وأكثر
25:10عرضة للأخطاء ، وأقل
25:12تعاوناً . النقطة
25:15الحادية عشرة . الفرق
25:17ذاتية التنظيم تنتج
25:18أفضل البنيات
25:19والمتطلبات
25:20والتصميمات . إذا كانت
25:23الفرق الوظيفية تعمل
25:25بحرية أكبر ، فسيكون
25:27ذلك أفضل بكثير . حسناً
25:30، يجب أن يشعروا
25:32بالثقة في أنفسهم ،
25:33ويجب أن يثقوا ببعضهم
25:35البعض . يجب أن يثق بهم
25:39الآخرون من الخارج ،
25:42ويجب أن يروا أننا نثق
25:44بهم لنقول لهم : " انظروا
25:46، أنتم تقومون بعمل
25:48جيد ، إذن كل شيء مثالي "
25:50. النقطة الثانية عشرة
25:55، يجب على الفريق
25:56التفكير في كيفية أن
25:58يكون أكثر فعالية
26:00لتعديل سلوكيات العمل .
26:03يمكننا دائماً أن نكون
26:05في حالة تحسن . حسناً .
26:07حتى عندما نقوم
26:09بالأمور بشكل جيد ،
26:10يمكننا التحسن ، ولكن
26:12لنتمكن من ذلك يجب أن
26:14نخصص وقتاً لتقييم
26:15أدائنا في التكرار
26:17السابق . لذلك سنرى في
26:20العديد من المنهجيات
26:23شيئاً يسمى ، كما
26:24أخبرتكم ، اجتماع
26:26المراجعة ( Retrospective ) .
26:29حسناً ، لإجراء ذلك
26:30التقييم ، متى يتم عقد
26:32اجتماع المراجعة (
26:33الريتروسبكتيف ) ؟
26:35عندما ينتهي السبرنت .
26:37هناك يجتمع سكرم ماستر
26:38، ومسؤول العمل ،
26:40والمطورون ، وفريق
26:41ضمان الجودة ، ويبدأون
26:43بالقول : " يا رفاق ، ماذا
26:45فعلنا بشكل خاطئ ؟ حدث
26:47هذا وذاك ، حسناً ، يجب
26:49ألا يتكرر هذا " . " وهكذا
26:51يتفقون على كيفية منع
26:53حدوث ذلك مجدداً " . من
26:54الواضح أن هذا يعتمد
26:56أحياناً على سكرم
26:57ماستر ، فربما يجتمعون
26:59في منتصف النهار
27:01ويتناولون الغداء
27:02معاً . حسناً ، إنه
27:04اجتماع أكثر استرخاءً
27:06، أي أننا وصلنا إلى
27:07هنا في هذا السبرنت ،
27:09ويجب أن يخرج هذا إلى
27:11الإنتاج ونغلق الملف .
27:13حسناً ، لهذا السبب ، ما
27:14هي الأشياء التي قمنا
27:16بها بشكل جيد ، والأهم
27:17من ذلك ، ما هي الأشياء
27:19التي أخطأنا فيها حتى
27:20لا نرتكب نفس الخطأ
27:22مرة أخرى ؟ بيان
27:24الاختبار . إيه ، دعونا
27:29ننقل كل ما رأيناه
27:30سابقاً حول ماهية
27:32منهجيات الاختبار
27:33الرشيقة . حسناً ، ربما
27:36يتساءل الشخص الذي لم
27:38يشارك قط في مشروع ما ،
27:40كيف سيكون الاختبار في
27:42هذا العالم ؟ حسناً .
27:45حسناً ، في منهجية "
27:47أجايل " نتحدث كثيراً
27:49عما يسمى اختبار أجايل
27:52( Agile Testing ) ، ولكن ماذا
27:54يعني هذا ؟ كيف يتم
27:56تنفيذه ؟ كيف سيغير ذلك
27:58من عملي ؟ حسناً ، ربما
28:00يمكنني القول هنا أنه
28:02لدهشة الكثير منكم ،
28:04الهدف هو نفسه ولا
28:06يتغير كثيراً . ما
28:08يتغير فعلاً هو السياق
28:10. لذلك عندما نتحدث عن
28:13الاختبار في سياقات
28:15أجايل ، لا يعني ذلك أن
28:17الاختبار في حد ذاته
28:19مختلف . إذن ، كيف سيكون
28:22السياق ؟ كيف سيؤثر ذلك
28:26عليّ ؟ من ناحية ، فإن
28:28الاختبار ، حسناً ،
28:30سيتعين عليه تحمل
28:32المسؤولية تجاه
28:34الفريق . حسناً . نعم ،
28:39سيتعين عليه معرفة
28:41القيم والمبادئ جيداً
28:43، كما ذكرنا سابقاً ،
28:45ليس فقط معرفتها
28:47نظرياً ، بل تجربتها
28:49وعيشها . حسناً ، هذا
28:53مهم جداً . إيه ، لهذا
28:57السبب عندما آتي لأحكي
29:01لكم أمثلة من الحياة
29:03اليومية ، فقد تقولون : "
29:05حسناً يا رفاق ، انظروا
29:07، أجايل رائعة جداً " . "
29:09ستواجهون الكثير من
29:11الأمور كهذه يا شباب " .
29:13بمعنى ، سأكون صادقاً
29:15معكم ، لن أحكي لكم عن
29:17كل شيء قد تواجهونه
29:18لأن هناك دائماً شيئاً
29:20جديداً . حسناً . وكل عمل
29:23هو عالم بحد ذاته .
29:25حسناً . إيه ، من ناحية
29:31أخرى ، سيكون الاختبار
29:33نشاطاً كجزء من فريق
29:35التطوير يتطلب مشاركة
29:37أكبر ، وتفاعلاً أكبر ،
29:39وتكاملاً أكبر مع من
29:41يقومون بالتطوير . في
29:43نهاية المطاف ، سيتعين
29:45علينا التكيف مع أسلوب
29:47عمل جديد ، لكن ما
29:49سيتغير في الاختبار
29:50بحد ذاته هو القيم أو
29:52العقلية التي سيتوجب
29:54علينا تبنيها . لذا ،
29:56تماماً كما يوجد بيان
30:02لما يخص تطوير
30:04البرمجيات ، هناك بيان
30:06خاص بالاختبار . وماذا
30:11يقول هذا البيان ؟
30:13حسناً ، الاختبار
30:15أثناء العمل مقابل
30:17الاختبار في النهاية ،
30:19أي أنه مصاغ بنفس
30:20أسلوب " تفضيل شيء على
30:22آخر " ، حيث يُعطى
30:27للأولوية لما يظهر على
30:29اليسار مقارنة بما
30:31يظهر على اليمين ، لكن
30:32هذا لا يعني أن ما على
30:34اليمين لا يحظى بأهمية
30:36. لذا ، " أثناء " مقابل "
30:42في النهاية " ؛ ففي
30:43المشاريع التقليدية ،
30:45كانت الاختبارات
30:47تُجرى في النهاية ، كما
30:49أخبرتكم ، ننتهي من
30:51التطوير ثم نبدأ في
30:52الاختبار ، وكنا نصل
30:54إلى هنا ، وأحياناً
30:56كانت تظهر أخطاء كثيرة
30:58ونضطر للعودة إلى
31:00الوراء . لذلك ، يجب أن
31:05تكون أنشطة الاختبار
31:06أقرب ما يمكن إلى
31:08عملية التطوير . لماذا ؟
31:14لأن تكلفة حل الخلل
31:16تكون أقل ، وحتى لا
31:18تتراكم ككرة الثلج
31:19بينما نستمر في
31:21ترحيلها من إصدار إلى
31:23إصدار . حسناً ، بعد
31:29ثلاثة أشهر مثلاً ،
31:31نبلغ عن خلل كان من
31:33الممكن تصحيحه قبل 3
31:35أشهر ، وهكذا نظل نجر
31:37هذا الخطأ ومعه مجموعة
31:39من الأخطاء الأخرى .
31:45بالإضافة إلى ذلك ،
31:47يضطر المطور لتذكر ما
31:50فعله قبل 3 أشهر ليتمكن
31:52من تصحيحه . هذا أمر
31:55جنوني . النقطة الأخرى
31:59هي : الوقاية مقابل
32:00اكتشاف الأخطاء . يجب
32:03أن نقلل من أهمية عدد
32:05الأخطاء التي يكتشفها
32:07فريق الاختبار . لا يهم
32:11كم عدد العيوب التي
32:12نبلغ عنها ، المهم هو
32:14أن نتمكن من منع وصول
32:16تلك العيوب إلى هناك .
32:20عقلية قديمة جداً هي
32:22قياس الاختبار بناءً
32:24على عدد الأخطاء التي
32:26وجدها . والحقيقة أن
32:29هذا لا يضيف قيمة
32:30كبيرة . ما يضيف قيمة
32:35حقيقية ، قبل العثور
32:37على الخلل وتصحيحه من
32:39قبل المطور ، هو تجنب
32:41حدوثه من الأساس . وكيف
32:45يمكننا الوقاية ؟ من
32:48ناحية ، من خلال العمل
32:50كفريق ، والمشاركة
32:51المبكرة ، وإجراء
32:53مراجعات جماعية قبل
32:54البدء في الاختبار ،
32:56على سبيل المثال ،
32:58وأيضاً مساعدة
32:59المطورين على تحسين
33:01اختباراتهم الوحدوية .
33:03لاحقاً سنرى كيفية
33:05أتمتة حالات الاختبار .
33:07حسناً . إيه ، ولكن في
33:13العديد من الفرق هناك
33:15ما يحدث أيضاً هو أن
33:16المطورين يحصلون على
33:18حالات الاختبار التي
33:20سنقوم بتنفيذها . قد
33:23يقول قائل : " لكن مهلاً ،
33:25هذا يشبه إعطاء أسئلة
33:27الامتحان للطالب قبل
33:28الذهاب لأدائه . " نعم ،
33:31الأمر كذلك بالفعل .
33:33لكن ، ما المشكلة في
33:35ذلك ؟ على سبيل المثال ،
33:36يمكننا منع تلك العيوب
33:38؛ لا يعني الأمر أنني
33:40سأخفي الاختبارات
33:41التي سأجريها حتى أجد
33:43الكثير من الأخطاء
33:44لاحقاً وأبدو بمظهر
33:45البطل . لا ، فهذا ليس
33:48المعيار ولا الموقف
33:49الصحيح . حسناً ، نقطة
33:53أخرى ، هي فهم ما يتم
33:55اختباره بدلاً من مجرد
33:57التحقق من الوظيفة .
34:02نحن كمهندسي جودة لسنا
34:04مجرد مدققي بيانات .
34:06حسناً ، إذا قيل لنا : "
34:08عليك اختبار هذا " ،
34:10نذهب ونقوم بهذا
34:11التحقق وانتهى الأمر .
34:13هناك نقاش مثير
34:14للاهتمام حول الفرق
34:16بين الاختبار ( testing )
34:17والتدقيق ( checking ) . حسناً
34:20، هناك العديد من
34:21المؤلفين الذين
34:23يناقشون هذا الأمر .
34:26إنه موضوع مثير
34:27للاهتمام والنقاش فيه
34:29جيد ، لكننا لن ندخل في
34:31تفاصيله . حسناً ، سأقول
34:34لكم فقط إن التدقيق هو
34:35مجرد الذهاب للاختبار
34:37والاكتفاء باختبار
34:39شيء معين . بينما
34:41الاختبار ( testing ) هو
34:42نشاط أكثر ثراءً ، ولا
34:46يقتصر على الاختبار
34:48فقط ، بل هو مقارنة شيء
34:50بآخر . حسناً ، هناك
34:55نشاط فكري كامل حول
34:57السياق . بعيداً عن هذا
35:04التحقق البسيط ، يجب أن
35:07نفهم ما يريده
35:08المستخدم ، ولماذا
35:09يريده ، وكيف سيستخدمه
35:11، وكيف يتعامل هذا
35:13الشخص مع النظام
35:15السابق ، أو كيف تبدو
35:16تلك الوظيفة الجديدة
35:18التي يتم تطويرها ،
35:20وكيف تتعايش الوظائف
35:22مع النظام السابق إذا
35:24كنا نبني نظاماً
35:25جديداً . هناك الكثير
35:31من الأسئلة . حسناً ،
35:33هذا هو التحليل الذي
35:35يجب أن يكون في
35:37أذهانكم لطرح تلك
35:38الأسئلة . حسناً ، ما
35:41يجب علينا فعله هو
35:43القيام بأنشطة تضيف
35:44قيمة . وكيف نفعل ذلك ؟
35:47حسناً ، على سبيل
35:49المثال ، فهم العمل (
35:50البزنس ) هو أمر أساسي
35:52اليوم يا رفاق . عليكم
35:55فهم عمل الشركة ، وما
35:57الذي يريدون تطويره .
36:00بوضع أنفسنا مكان
36:02المستخدم النهائي ،
36:03كما قلت لكم سابقاً ،
36:05لنفترض أن عليكم
36:07اختبار سلة مهملات .
36:10حسناً ، المواصفات
36:12تقول إن سلة المهملات
36:14يجب أن يكون نصف قطرها
36:1620 سم وارتفاعها 40 سم .
36:20حسناً ، ماذا سنفعل إذا
36:22كان علينا فقط إجراء
36:26التدقيق ؟ حسناً ،
36:28سيقولون لي نصف القطر
36:30والارتفاع ، سنقول
36:32حسناً ، قياسها 20 ،
36:34وقياسها 40 ، وهذا كل
36:36شيء . ممتاز . لكن ، ما
36:39المتوقع منا في هذا
36:41السياق ؟ أن نعرف أين
36:45ستوضع سلة المهملات ،
36:47ومن سيستخدمها ، وأين
36:49سيستخدمونها . حسناً ،
36:52سيتم وضع زاوية في
36:54الركن لأنها يجب أن
36:56تكون مستديرة ، أو
36:57لأنها يجب أن تكون
36:59مربعة ، بحيث تتناسب
37:01جيداً مع الغرفة ،
37:03وهكذا . و نقطة أخرى
37:10مهمة هي بناء أفضل
37:12نظام بدلاً من كسر
37:14النظام . غالباً ما
37:20أسأل زملائي هنا ، هل
37:22يعتقدون أن الاختبار
37:24نشاط بناء أم تدميري ،
37:26أو كيفما يودون تسميته
37:28، وعموماً يثور نقاش
37:30حول هذا الموضوع .
37:34لماذا ؟ لأنهم جميعاً
37:36يخبرونني بأنه تدميري .
37:38حسناً ، هو تدميري نعم ،
37:41لكن له أهداف بناءة .
37:44إذا لم يكن كذلك ،
37:46فماذا سنفعل ؟ الذهاب
37:49لكسر الأشياء . لأننا
37:52إذا كنا نضيف قيمة
37:54لتلك التدميرات
37:55الصغيرة ، وبالإضافة
37:57إلى ذلك يجب أن يكون
37:58لدينا غرور كبير لنقول
38:00إننا نحن من نكسر
38:02النظام . وما هو أكثر من
38:06ذلك ، فهو بالأصل مكسور
38:08، وسيكون مكسوراً
38:09بالتأكيد . كل ما نفعله
38:11هو الذهاب وإظهار وجود
38:14خلل ، وتوثيقه ، وليس
38:16أننا نحن من سيكسر ذلك
38:18النظام . تهدف هذه
38:25القيمة إلى خلق مساحة
38:27عمل تعاونية حيث يمكن
38:29تحسين النظام ، وحيث
38:31نكون جزءاً من عملية
38:32البناء وليس التدمير .
38:41وأخيراً ، القيمة
38:42الأخيرة في بيان
38:43الاختبار هي أن الفريق
38:45مسؤول عن الجودة بدلاً
38:47من أن يكون مسؤول ضمان
38:49الجودة وحده هو
38:50المسؤول عنها . وقد
38:56تحدثت قليلاً عن هذا
38:58عندما طرحت مفهوم
39:02الجودة . الجميع ، لا
39:06أعرف إن كان الجميع ،
39:08لكن كل الفريق الذي
39:10يشارك في بناء ذلك
39:12النظام ، مسؤول عن
39:13الجودة . إذا ظهر خطأ ،
39:17أو ثغرة في بيئة
39:19الإنتاج ، فهذا ليس خطأ
39:21مسؤول الاختبار بين
39:23قوسين ، بل هي مسؤولية
39:25الجميع . وليست مسؤولية
39:27قسم معين بحد ذاته .
39:30حسناً ، هذا لا يحدث
39:31لأننا قمنا باختبارنا
39:33بشكل سيء . بل يحدث لأن
39:37المطور لم يره ،
39:39والمحلل لم يره ،
39:40والمستخدم النهائي لم
39:42يره . حسناً . كل الأشخاص
39:47الذين شاركوا كجزء من
39:48ذلك الفريق لم يروه .
39:50حسناً ، في منهجية
39:52أجايل ( Agile ) عندما
39:53نتحدث عن الفريق ، فنحن
39:55نقصد الجميع ، بما في
39:57ذلك العميل النهائي
39:59أيضاً . لذا لا يقتصر
40:02الأمر على وجودي هناك
40:04لإضافة قيمة من خلال
40:05تحمل المسؤولية في جزء
40:07الجودة فقط . مسؤولية
40:09الجودة ، أكررها
40:11مجدداً ، هي مسؤولية
40:13الجميع . حسناً . إذن ،
40:15المنتج والتطوير الذي
40:17ننشئه معاً ، وجودة ذلك
40:19المنتج هي مسؤوليتنا
40:21جميعاً أيضاً . من
40:23الواضح أن هذا يكون
40:24أسهل عندما يكون
40:25الفريق بأكمله على نفس
40:27الموجة ، وعندما يكون
40:29الفريق بأكمله يعتمد
40:30منهجية أجايل
40:31ومعتاداً على العمل
40:33بهذه الطريقة . لكن إذا
40:36اتخذ شخص ما موقفاً
40:38دفاعياً وظهر ذلك ، فقد
40:41ظهر لأنه ، لنقل ، قد تم
40:43تحفيز تلك الروح ،
40:44فتبدأ الأمور بالتفكك
40:47، ولن يكون الوضع كما
40:49كان . لذا ، انطلاقاً من
40:55هذا ، سنتحدث عن نموذج V
40:58ونموذج W ، وهما
41:03نموذجان يشرحان كيفية
41:05ارتباط أنشطة
41:06الاختبار بالتطوير ،
41:08بغض النظر عن نموذج
41:09دورة الحياة الذي
41:11نستخدمه . سنبدأ بنموذج
41:16V. حسناً ، هناك إصدارات
41:18مختلفة من هذا النموذج
41:20. لقد اخترت واحداً بدا
41:24لي الأبسط لأتمكن من
41:25نقله إليكم حتى
41:27تتمكنوا من فهمه . وكيف
41:30نقرأ هذا ؟ حسناً ،
41:33يُقرأ من اليسار إلى
41:34اليمين ومن الأعلى إلى
41:36الأسفل . الأنشطة على
41:44اليسار تمثل دورة حياة
41:46تطوير البرمجيات ( SDLC ) ،
41:49والأنشطة على اليمين
41:51تمثل دورة حياة
41:53الاختبار ( STLC ) . من جانب
42:00لدينا جانب التطوير
42:01هنا ، ومن الجانب الآخر
42:03لدينا جانب الاختبار .
42:09هذه المتطلبات تنزل
42:11إلى التفاصيل ، وتحدد
42:13احتياجات العمل . ثم
42:18سيكون لدينا البناء
42:20والتصميم . حسناً ،
42:22تنعكس هذه كمتطلبات ،
42:24وكقصص مستخدمين . حسناً
42:27، من الواضح للقيام
42:30بالتطوير ، نحتاج لهذه
42:32المتطلبات وقصص
42:33المستخدمين التي تعبر
42:35عن احتياجات العمل
42:36المراد تطويرها . وبعد
42:39ذلك لدينا الكود الذي
42:41يعكس التصميم الذي
42:43سيحل احتياجات العمل
42:44والمستخدم . الآن ،
42:48لننظر إلى الخط حيث
42:50لدينا أنشطة الاختبار .
42:52على مستوى الكود .
42:54سنقوم بإجراء
42:55اختبارات المكونات . في
42:57المستوى التالي سنقوم
42:59بإجراء اختبارات
43:00التكامل . وفي المستوى
43:03الذي يليه اختبارات
43:04النظام ، أي أننا
43:06سنتحقق من تلبية
43:07المتطلبات ، وفي
43:09المستوى الأول أو
43:10الأخير ، حسب كيفية
43:12نظرتكم إليه . سنرى
43:18اختبارات القبول .
43:21سنعمل على التحقق من
43:22تلبية احتياجات
43:24المستخدم . سنتناول
43:27لاحقاً يا شباب ما
43:29يدور حوله كل اختبار .
43:32لكن هذه المستويات ،
43:34حسناً ، هذه
43:35الاختبارات تُسمى
43:36وتعتبر إحدى تصنيفات
43:38الاختبارات . لاحظوا
43:40أيضاً وجود سهمين ،
43:42حسناً ، في كل مستوى
43:44يربطان بين الواحد
43:45والآخر . حسناً ، الخط
43:48الأول يشير إلى أنشطة
43:50التخطيط . على سبيل
43:53المثال ، عند الانتهاء
43:55من جمع احتياجات العمل
43:57، يمكننا البدء
43:58بالتخطيط لكيفية
44:00اختبار ذلك المستوى .
44:03على سبيل المثال ، من
44:05خلال تحديد معايير
44:06القبول وهكذا مع كل
44:08مستوى من المستويات
44:10التالية . أي ، في كل مرة
44:13تنتهي فيها نشاطات
44:15الجانب الأيسر ،
44:16يمكننا البدء
44:17بالتخطيط لنشاط
44:19الاختبار المرتبط بها .
44:23وبعد الانتهاء من
44:25البناء ، سنكون قادرين
44:26على التخطيط لكيفية
44:28بناء الكود البرمجي .
44:30سنتمكن من التخطيط
44:32لكيفية إجراء
44:33اختبارات المكونات
44:35تلك ، وهكذا دواليك .
44:38الآن ، لاحظوا السهم
44:40بالأسفل الذي يشير إلى
44:42التحقق ، أي بمجرد أن
44:44يصبح الكود جاهزاً ،
44:46سأتمكن من التحقق ،
44:48وسأتمكن من إجراء
44:49اختبارات المكونات
44:51تلك . بمجرد أن يصبح
44:54التصميم جاهزاً ،
44:56يمكنني إجراء
44:57اختبارات التكامل .
44:59سأكون قادراً على
45:00إجراء تلك التحققات .
45:03بمجرد أن تصبح
45:04المتطلبات جاهزة ،
45:06سأكون قادراً على
45:08إجراء تحقق على مستوى
45:10النظام . أمم ، لكن ،
45:20تذكروا جيداً ما هو
45:22الفرق بين التحقق
45:23والمصادقة ، وهو ما
45:25رأيناه في الدروس
45:26الأولى . كنت أخبركم
45:30سابقاً أن هناك عدداً
45:32أكبر من الاختبارات
45:33للقيام بها . حسناً .
45:36ونحن الآن نهدف لإجراء
45:38التحققات التي نعتمد
45:40فيها أحياناً على
45:41المصادقة . لماذا ؟
45:46لأننا في المستويات
45:48الدنيا ، المكونات ،
45:50التكامل ، النظام ،
45:52نهدف إلى التحقق من
45:53سلوك النظام بطريقة
45:55ديناميكية ، كما
45:57تعلمنا في تعريف
45:58الاختبار . لكن في
46:02اختبارات القبول ، ما
46:04نقوم به هو المصادقة
46:06لأننا نقارن ذلك
46:07النظام مع المستخدم .
46:10نحن نرى ما إذا كان
46:12يلبي التوقعات . إذن ،
46:18باختصار ، الجانب
46:20الأيسر يتعلق بالبناء
46:22، والجانب الأيمن يقال
46:24إنه يتعلق بالهدم أو
46:26بهدم لأغراض بناءة .
46:34حسناً ، كما أخبرتكم
46:36سابقاً ، تكمن محدودية
46:37هذا النموذج في أنه
46:39يظهر العلاقات بين
46:41التطوير والاختبار .
46:45حسناً ، لكنه لا يساعد
46:47على تسريع أي شيء ، أي
46:49أنه يوضح كيف ترتبط
46:51أنشطة التطوير
46:52بالأشخاص الذين
46:53يمكننا البدء بالعمل
46:55معهم بالتوازي
46:56واستغلال الوقت . حسناً
47:00، الآن سأجعل الأمر
47:02أكثر تعقيداً قليلاً .
47:07لاحظوا عبارة برايان
47:09مارك إي وهو أحد مؤلفي
47:16البيان ، ماذا يقول ؟ أي
47:22أن عالم الاختبار يجب
47:24أن يقوده التطوير في
47:25نهاية المطاف . حسناً ،
47:32نحن نختبر منتجات
47:34عملهم ، أي إذا لم
47:35يقدنا التطوير ، وهو
47:37المرشد وما سيتم
47:38تطويره هو ما علينا
47:40اختباره . حسناً ، عندما
47:48يكون نموذج الاختبار
47:50فكرة متأخرة ، فهو
47:52يُدار بطريقة سيئة ،
47:54حسناً . أي ، نعم من
47:57الجيد أن نكون مقادين ،
48:00حسناً ، لكن إذا وصلنا
48:02متأخرين فلا فائدة من
48:04ذلك ، حسناً ؟ أي أننا
48:09نتواصل مع فريق
48:10التطوير في الجوانب
48:12التي نجدها أسهل ، لكن
48:13هذا لا يعني أننا لا
48:15نستطيع تقديم قيمة
48:17أكبر في أماكن أخرى .
48:24هذا يلخص القليل مما
48:26كنت أقوله للتو حول
48:28نموذج B ، أي أنه من
48:30الجيد أن نتبع التطوير
48:32بأقرب وقت ممكن ، لكن
48:34إذا وصلنا متأخرين
48:36دائماً فنحن لا نقدم
48:38قيمة . وهنا يظهر ما
48:44يسمى بنموذج W ، حسناً .
48:49وقبل ذلك ، دعوني ...
48:55دعوني أؤكد على نقطة
48:56نموذج B ، وهو نموذج يتم
48:58فيه التخطيط للاختبار
49:00في نفس الوقت الذي يتم
49:02فيه بناء النظام .
49:06حسناً ، المشكلة لكي
49:10تكون واضحة هي أن
49:12العيوب يتم اكتشافها
49:14في المنتجات النهائية
49:15، لذا تكون تكلفة
49:17تصحيحها أعلى . أي أنه
49:20ليس إجراءً وقائياً ،
49:22بل هو إجراء تصحيحي .
49:25حسناً ، إذا تم إجراء
49:27الاختبارات على هذا ،
49:29حسناً ، بأسرع وقت ممكن
49:31. وهنا يقترح نموذج W أن
49:39تبدأ أنشطة الاختبار
49:41بالتزامن مع أنشطة
49:42التطوير ، بحيث لا
49:44يقتصر الأمر على
49:45التخطيط فقط ، بل يكون
49:47فريق الاختبار
49:48مشاركاً أثناء عمل
49:50فريق التطوير ليعرفوا
49:52ما يجب اختباره . لذا ،
50:02ما يتم فعله هو إدخال
50:04حرف B إضافي بحيث يصبح
50:10لدينا حرفا B متداخلان .
50:13حسناً ، وهذا يعطي
50:15انطباعاً بشكل حرف W ،
50:17حسناً . إذاً ، سنحصل
50:20على قصص المستخدمين
50:22عندما تصبح جاهزة .
50:24سنبدأ في الاختبار .
50:25تكون جاهزة عندما
50:27ينتهي فريق التطوير
50:28منها . ونحن سنقوم
50:30بإجراء الاختبار .
50:32سنقوم بالاختبار " بين
50:34قوسين " لأننا نعلم أنه
50:36لم يقل هناك ما هي قصة
50:38المستخدم ، بل كان يقصد
50:40تنفيذ البرنامج . حسناً
50:44، لكنني أعني أننا
50:45سنختبر قصص
50:46المستخدمين تلك . بمجرد
50:50توفر التصميم ، سنقوم
50:52بالتحقق من ذلك
50:54التصميم ، وهكذا مع
50:55استمرار عملية البناء .
51:00ما ترونه هنا ليس أكثر
51:02أو أقل من حرف B إضافي
51:04تمت إضافته هنا . حسناً
51:07، إذاً ماذا يعني هذا
51:09في نموذج W ؟ أننا سنعمل
51:14جنباً إلى جنب مع فريق
51:16التطوير . حسناً . لا
51:21تقلقوا فهو نفس الشيء .
51:23إذا رأيتم هذه الحروف B
51:25، حسناً ، فهي نفس
51:26الشيء لأن التطوير
51:28والاختبار مترابطان .
51:31حسناً ، مع إنتاج قصة
51:33المستخدم وتطويرها ،
51:35سيتم إجراء الاختبار
51:37أيضاً . هل لديكم شكوك
51:43أو أسئلة ؟ أنا أسمعكم
51:45يا شباب . أي أنني فهمت
51:53علاقة حرف B كجزء أيمن ،
51:55كعملية بناء ، وليس
51:57كعملية هدم ، لنقل ، أي ،
52:00>> يبني الجانب الأيسر .
52:03>> بحثاً عن التكرار
52:05للوصول إلى النتيجة .
52:07>> هذا النموذج ، كيف
52:09يرتبطان هنا ؟ وهنا
52:11يرتبطان للفهم ، ولهذا
52:13قلت لكم ، للفهم ، نموذج
52:16V ، هذا حرف V إضافي يتم
52:18عمله . ما الذي يعنيه
52:20ذلك ؟ يعني أنه يتم
52:22العمل على الاثنين
52:24معاً في نفس الوقت .
52:27حسناً ، الاختبار و ،
52:29عفواً ، التطوير
52:30والبرمجيات مطبقة
52:32عملياً . هذا ما كنت
52:35أخبركم به . في النماذج
52:37التقليدية كان يتم ذلك
52:39بشكل منفصل . أولاً يتم
52:41التطوير ، ثم الاختبار
52:43، وانتهى الأمر . الآن
52:45مع ما يسمى بنموذج
52:47أجايل ، ماذا يفعل ؟
52:48حسناً ، لنرى ، لدينا
52:50هذا ، يجب تطوير هذا
52:52الشيء . حسناً ، إذا كان
52:54هناك فريق عمل ، من
52:55سيكون موجوداً ؟ سيكون
52:57بيبي ، وخوان ، جاهز . من
52:59هم ؟ لنرى ، التطوير ،
53:00وضمان الجودة ؟ محلل
53:02الأعمال ، الذي يريد
53:04جلب متطلبات العمل
53:05لتطوير البرمجيات ،
53:06وسيكون هناك سكرام
53:08ماستر الذي سيدير كل
53:09المراسم في
53:10الاجتماعات . جاهز ؟
53:12ممتاز . تطبيق هذا
53:14عملياً يا شباب ، لكي
53:16تفهموا المفاهيم
53:17جيداً ، أنا أخبركم
53:19بالمفاهيم ، ولكن
53:20أعطيكم مثالاً .
53:22انطلاقاً من هذا ،
53:24حسناً ، لنبدأ . حسناً ،
53:26سيتم التطوير ، هناك
53:28متطلبات ، سموها قصصاً
53:29، سيتم تطويرها ،
53:31وتصميمها ، وبرمجتها .
53:33حسناً ، في نفس الوقت ،
53:34من الواضح ، سيتم إجراء
53:36الاختبارات ، حسناً ،
53:37سيتم التصميم ، حسناً ،
53:39سيتم تصميم حالات
53:40الاختبار ، وبعد ذلك
53:41سيتم إجراء أنواع
53:43مختلفة من الاختبارات
53:44، اختبار المكونات ،
53:45اختبار التكامل ،
53:47اختبار النظام ،
53:48اختبار القبول . حسناً ،
53:50تخيلوا أنه يجب تثبيت
53:52النظام . حسناً ، سيتم
53:53إجراء اختبار القبول ،
53:55سيتم إجراء اختبار
53:56بناء النظام ، حسناً ،
53:58سيتم إجراء اختبارات
53:59النظام ، سيتم بناء
54:01البرنامج ، وسيتم
54:02إجراء اختبار التكامل .
54:04حسناً ، كل شيء مرتبط
54:06بالتطوير . يذهب
54:07التطوير ، ويسلم
54:08الحزمة ، ويذهب قسم
54:10ضمان الجودة
54:11لاختبارها ، لكن ضمان
54:12الجودة كان لديه
54:13بالفعل تصميم حالة
54:15الاختبار ، وكان يعرف
54:16ما يريد فعله . حسناً ،
54:18لا يمكنه رؤية ما كان
54:19مطلوباً ، لكن دعوني
54:21أفكر ، أنا لا أفهم ذلك .
54:23لا ، هذا يعطل كل شيء .
54:25لهذا السبب يتم العمل
54:27كفريق ، يذهب الجميع
54:28معاً كفريق واحد .
54:30حسناً ، لهذا السبب
54:32يسمى فريقاً يضم فريق
54:34التطوير ، لنسمه فريق
54:36التطوير ، الذي يشمل
54:37المطور ومختبر الجودة .
54:40هل كان ذلك مفهوماً يا
54:41كيفن ؟ أعطيتك مثالاً
54:43عملياً أكثر حتى لا
54:44نغرق في الجانب النظري
54:46كما كنت أقول لكم .
54:48>> نعم ، سيكون الأمر أشبه
54:50بتطور من نموذج الشلال
54:52إلى نموذج حرف V.
54:53>> بالضبط .
54:56>> والنموذج W يأخذ
54:57الفكرة المرنة ، فمنذ
54:59الرأس الأول أنت تختبر
55:01طوال الوقت .
55:03>> بالضبط .
55:04>> حسناً .
55:05>> لا ، لا تخبرهم . لنرى ،
55:07نعم ، الاختبار . نعم ،
55:09الاختبار أمر جيد ، لكن
55:10لنرى ، ماذا يفعل
55:11التصميم في حالات
55:12الاختبار . لنقل أنني
55:14أعطيتك تطوير . حسناً .
55:16أعني ، وأنت يجب أن
55:18تقوم بـ ... يجب أن أفهم
55:20ما الذي يريده العمل ،
55:22وما الذي يريدون
55:24تطويره ، ولأي غرض .
55:26هناك الكثير من
55:27الأسئلة لطرحها في هذا
55:29الصدد . لهذا السبب يتم
55:31إعداده . الفكرة من هذا
55:33هي بناء أشياء صغيرة
55:34خلال أسبوعين ، ثم
55:35اختبارها وطرحها في
55:37مرحلة الإنتاج . يتم
55:39اختبارها وتطرح في
55:40الإنتاج ، هل هذا مفهوم
55:41؟ من هنا يأتي كل شيء .
55:43>> بالطبع . أعني أنه يكيف
55:45النموذج القديم في
55:47مكونات أو شيء أصغر
55:49ويستخدمه .
55:50>> أعني ، إنه تحسين لما
55:52سبق ، أليس كذلك ؟ أعني ،
55:55>> أه ، لنرى ، أنا أقولها
55:57دائماً ، يعني ، تخبرك
56:01النظرية بشيء ، لكن كل
56:04فريق يكيفها كما يريد ،
56:06دون الخروج عن الموضوع
56:08، أليس كذلك ؟ لكن هناك
56:11أشياء تقول عنها بعض
56:13الفرق : " يا أخي ، هذا
56:15نجح معي ، يمكننا ... " ،
56:16أعني إذا نجح ، فالفريق
56:18يبلي بلاءً حسناً .
56:21حسناً ، لنرى ، يتم
56:22تغيير بعض الأشياء
56:24الصغيرة ، حسناً ، لا
56:25أعرف الآن ، لكن على
56:27سبيل المثال ، لا أدري ،
56:29أن يبدأوا يوم الجمعة
56:31بدلاً من الاثنين ،
56:32وربما ينجح هذا مع
56:34الفريق ؛ يعجبهم البدء
56:35يوم الجمعة ، وحسناً ،
56:37يقولون إنه اليوم
56:39الأول من الأسبوع . لكن
56:41الأمر ليس كذلك يا
56:43شباب . حسناً ،
56:45>> رائع جداً .
56:48>> حسناً ، هل هناك أسئلة ؟
56:59هل لدى أي منكم أي سؤال
57:01؟ حسناً ، كيف نتابع يا
57:06شباب ؟ قوموا
57:08بالمراجعة لأن
57:09الاختبار الجزئي قادم
57:10لاحقاً ، أكررها لكم
57:12مجدداً ، هناك الكثير
57:14من المفاهيم . راجعوا
57:17جيداً الأسئلة التي
57:19لديكم . أه ، لكي أتمكن
57:23في الأسبوع القادم من
57:25إعطائكم ما يخص عملية
57:31الاختبار والتخطيط .
57:35حسناً . أه ، لكي نتمكن
57:39من المضي قدماً في ذلك
57:41الموضوع ، وربما يوم
57:43الاثنين القادم ،
57:45حسناً ، أه ، ربما
57:51سأعطيكم الآن المهمة
57:52الثانية للبدء بها .
57:54حسناً ، المهمة
57:55الثانية هي أنني يجب
57:57أن أشرح لكم ما يدور
57:59حوله النظام . جيد ،
58:02وعليكم أن تقوموا
58:03بتصميم حالات اختبار
58:05كما فعلتم في الأولى ،
58:07ولكن هذه المرة في
58:09الواقع العملي . حسناً ،
58:12وكما أخبرتكم ، هناك
58:14أسئلة تكون أحياناً
58:16غير واضحة ، وعليكم
58:17طرحها على الشخص
58:19المسؤول عن العمل لأنه
58:21لن يتم فهم القصة بدون
58:23ذلك . حسناً ، لنأخذ
58:25الأمور ببطء ، لا أريد
58:27استعجالكم ، لكي يكون
58:29لديكم الوقت و ...
58:33تنجزونها بشكل جيد .
58:36حتى أنه في الأسبوع
58:38المقبل ، ستتدربون
58:39أيضاً يا شباب ، من أجل
58:41... من أجل الاختبار
58:45الجزئي بذلك . حسناً ،
58:47هل هناك أسئلة ؟ ألا
58:54يملك أحدكم أي سؤال ؟
58:56ألا يريد أحدكم
58:57الاستفسار عن شيء ؟ آه ،
59:06سأكرر ذلك مجدداً
59:08لربما يكون البعض
59:09مشتتاً قليلاً ؛ يعني
59:11عندما أنزل في نموذج V ،
59:14أقوم بكتابة المستند ،
59:16وأعمل ، ولكن بينما
59:17أقوم بكل ذلك ، أضع
59:19الاختبارات على
59:21الجانب الأيمن ، لنقل .
59:23بالطبع ،
59:24>> عندما أصل إلى الجانب
59:26الأيمن ، ما أفعله هو
59:28التحقق والتحقق من
59:29الصحة .
59:30>> بالضبط .
59:31>> بدلاً من ذلك ، عفواً ،
59:33بدلاً من ...
59:36>> أقوم بتداخلها ،
59:38وبينما أصمم وأكتب
59:39المستند ، أقوم
59:41بالاختبار وتجربة كل
59:42شيء في نفس الوقت .
59:44>> بالضبط . لأنه عندما
59:47يقومون بالبرمجة ،
59:49ستكون أنت تقوم بتصميم
59:51حالات الاختبار .
59:53وعندما يسلمونك
59:54الحزمة ، ستكون أنت
59:56تقوم بالتنفيذ . ولكن ،
59:57إذا وجدت خطأً برمجياً
59:59، فكأنك تعود للأسفل
1:00:01وعليك البرمجة مجدداً
1:00:03، وعليك إجراء
1:00:04الاختبارات مرة أخرى ،
1:00:06هل هذا مفهوم ؟ الأمر
1:00:08أشبه بالصعود والهبوط
1:00:10، إنه مصعد ، أليس كذلك
1:00:12؟ يعني ، هو شيء مستمر .
1:00:14هذا هو ما يحدث ، يعني
1:00:15في الحياة اليومية .
1:00:17حسناً .
1:00:18>> بالطبع . لكن نموذج W هو
1:00:19الذي يصعد ويهبط .
1:00:21الآخر يذهب ، لنقل من
1:00:22خط إلى خط ، ومن جانب
1:00:24إلى جانب .
1:00:25>> نعم ، هو يتقاطع أيضاً
1:00:27ولهذا السبب . يعني ،
1:00:28هنا كما قلت لكم ، تبدأ
1:00:30الخيارات بالتوسع .
1:00:33>> حسناً ،
1:00:34>> حسناً ،
1:00:35>> حسناً . ممتاز .
1:00:38>> هل هناك شكوك ؟ لاحقاً
1:00:42على أي حال سنقوم في كل
1:00:45واحدة من هذه ، سنرى
1:00:46جيداً ... عندما الآن
1:00:53لاحقاً تبدأ الخيارات
1:00:55بالتوسع أكثر لأننا
1:00:56ندخل في عملية
1:00:58الاختبارات . من الآن
1:01:02فصاعداً سننخرط
1:01:03بالكامل في
1:01:04الاختبارات . لماذا ؟
1:01:07لأننا سنرى العملية ،
1:01:09وكيفية التخطيط ، وخطة
1:01:11الاختبار ، وسنقوم
1:01:13بالمتابعة ، والتحكم
1:01:15عند العثور على خلل في
1:01:17التحليل ، جيد ، وبعد
1:01:19ذلك ندخل في عملية
1:01:21تصميم وتنفيذ
1:01:22الاختبارات ، حسناً ؟
1:01:25وهنا سينتهي الجزء
1:01:26الأول من الاختبار .
1:01:28جيد ، مع العمل العملي
1:01:30الثاني . حسناً . إيه ، من
1:01:46يتابع الأربعاء بعد أن
1:01:52من الساعة 8:30 أم لديكم
1:01:54أي يوم للاختبارات
1:01:57الحضورية ، كيف يتم ذلك
1:01:59؟
1:01:59>> إيه ، اختباراتهن نعم ،
1:02:01هي الخاصة بورشة
1:02:02التواصل . آنا ،
1:02:04>> ومتى لديكم أنتم ؟
1:02:06>> في 23 من سبتمبر .
1:02:10>> في 23 من سبتمبر .
1:02:13>> نعم ، في الـ 23 لدينا
1:02:15الاختبار الأول .
1:02:16>> حسناً . جيد . حسناً ، لكي
1:02:24أقدم لكم العمل العملي
1:02:26الثاني . جيد ،
1:02:29>> لا توجد مشكلة . عذراً
1:02:31لقد تذكرت للتو . لا
1:02:32توجد مشكلة . إذا طلبت
1:02:34هي أن نتمكن من إجرائه
1:02:35في وقت أبكر أو إذا
1:02:37كانت هي نفس ساعاتك .
1:02:39>> إيه ،
1:02:39>> لا بأس ، إنها ساعات
1:02:41غير متزامنة ، ولكن
1:02:42للاحتياط .
1:02:43>> بالنسبة لي لا توجد
1:02:45مشكلة ، ولكن في الـ 30
1:02:46سيكون لديكم الاختبار
1:02:48معي .
1:02:49>> بالطبع ، هذا صحيح ،
1:02:51>> يجب مناقشة ذلك معها
1:02:53وإخبارها بأننا
1:02:54>> ربما نصل متأخرين إلى
1:02:56الفصل .
1:02:58>> حسناً ، أنا لا أعرف
1:03:00كيف يتفقون معها .
1:03:02وسأخبره يوم الأربعاء
1:03:04وربما تكتب لك أو
1:03:05تخبرنا بشيء .
1:03:07>> حسناً ، لقد أخبرتها
1:03:09بالفعل ، ولكن يبدو
1:03:11أنها هي من حددت
1:03:12التاريخ ، أي أنها كانت
1:03:14قد نسقت مع مادة
1:03:16التحليل ، ولكنها هي من
1:03:18وضعت التاريخ .
1:03:19>> حسناً ، رائع .
1:03:21>> حسناً ، انتهى الأمر .
1:03:23إيه ، لذا حسناً ،
1:03:25سأكتفي بهذا القدر . في
1:03:27الأسبوع القادم
1:03:28سأخبركم بالعمل
1:03:29العملي الثاني . جيد ،
1:03:31لكي تتمكنوا من القيام
1:03:33به و تنجزونه ، لا أعلم
1:03:36، يوم الإثنين أو
1:03:38الأربعاء التالي ، لا
1:03:40يزال هناك وقت ، أليس
1:03:42كذلك ؟ ويوم الإثنين 28
1:03:45قبل الاختبار سنقوم
1:03:47بمراجعة عامة . جيد . نعم
1:03:50،
1:03:51>> لكي يفيدكم ذلك
1:03:52وتكونوا مستعدين
1:03:54جيداً . جيد ،
1:03:55>> رائع .
1:03:56>> حسناً ، جيد جداً . إذا
1:03:58لم تكن هناك أسئلة
1:04:00أخرى ، سأترككم يا شباب
1:04:02. حسناً ، تصبحون على
1:04:04خير .
1:04:04>> تصبحون على خير .
1:04:06>> وداعاً . تصبح على خير
1:04:07يا أستاذ .