SlideShare a Scribd company logo
Agile Software
Development II: Agile
Mindset
‫المرنة‬ ‫العقلية‬
‫دعبس‬ ‫سامح‬
‫الفهرس‬
‫السابقة‬ ‫الحلقة‬ ‫ملخص‬
‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬Agile Manifesto‫المرنة‬ ‫البرمجة‬ ‫قيم‬ ‫أو‬Agile Values
‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫قيم‬
‫المرنة‬ ‫البرمجة‬ ‫مباديء‬Agile Principles
‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫مباديء‬
‫برشاقة‬ ‫التفكير‬Lean Thinking
‫الشائعة‬ ‫المرنة‬ ‫المنهجيات‬ ‫على‬ ‫نظرة‬
‫السابقة‬ ‫الحلقة‬ ‫ملخص‬...‫البرمجيات‬ ‫فشل‬ ‫أسباب‬
‫الواقعية‬ ‫غير‬ ‫أو‬ ‫الغامضة‬ ‫األهداف‬
‫المطلوبة‬ ‫الموارد‬ ‫تقدير‬ ‫في‬ ‫الخطأ‬
‫مستمر‬ ‫بشكل‬ ‫المشروع‬ ‫حالة‬ ‫متابعة‬ ‫عدم‬poor reporting of project status
‫المخاطر‬ ‫إدارة‬ ‫في‬ ‫الفشل‬
‫التواصل‬ ‫ضعف‬poor communication
‫ناضجة‬ ‫غير‬ ‫تقنيات‬ ‫على‬ ‫االعتماد‬immature technologies
‫المشروع‬ ‫تعقيدات‬ ‫إدارة‬ ‫في‬ ‫الفشل‬
‫التطوير‬ ‫في‬ ‫المتقنة‬ ‫غير‬ ‫أو‬ ‫السيئة‬ ‫الممارسات‬hacking-driven development
‫اإلداري‬ ‫الفقر‬ ‫أو‬ ‫الضعف‬
‫المصلحة‬ ‫أصحاب‬ ‫سياسات‬stakeholders‫المتعارضة‬
‫السوق‬ ‫ضغط‬
‫واحد‬ ‫لسبب‬ ‫عادة‬ ‫الفشل‬ ‫يحدث‬ ‫ال‬,‫مجتمعة‬ ‫أسباب‬ ‫لعدة‬ ‫إنما‬,‫تنظيمية‬ ‫و‬ ‫إدارية‬ ‫و‬ ‫فنية‬.
*‫المصدر‬:http://spectrum.ieee.org/computing/software/why-software-fails
‫السابقة‬ ‫الحلقة‬ ‫ملخص‬...‫للطميات‬ ‫ال‬
‫المرنة‬ ‫البرمجة‬ ‫حركة‬ ‫ظهور‬ ‫قبل‬ ‫مخدومة‬ ‫تكن‬ ‫لم‬ ‫البرمجيات‬ ‫صناعة‬ ‫أن‬ ‫االدعاء‬Agile Software
Development–‫العرض‬ ‫بداية‬ ‫في‬ ‫قدمنا‬ ‫كما‬-‫خاطيء‬ ‫لكنه‬ ‫و‬ ‫شائع‬ ‫مدخل‬!
‫حقيقية‬ ‫أزمة‬ ‫من‬ ‫تعاني‬ ‫ال‬ ‫البرمجيات‬ ‫صناعة‬ ‫أن‬ ‫تبين‬ ‫اإلحصاءات‬,‫قديم‬ ‫مشكالت‬ ‫من‬ ‫تخلو‬ ‫لم‬ ‫إن‬ ‫و‬‫جديدة‬ ‫ة‬!
‫النجاح‬ ‫أسباب‬ ‫أهم‬ ‫خالصة‬:
«‫سكر‬ ‫تاكل‬ ‫نملة‬ ‫عيش‬»!!–‫مصري‬ ‫مثل‬
‫صغير‬ ‫المشروع‬–‫صغير‬ ‫فريق‬–‫قصير‬ ‫زمن‬
Go agile!
‫بالفعل‬ ‫المرنة‬ ‫البرمجة‬ ‫حركة‬ ‫نجاح‬ ‫تبين‬ ‫اإلحصاءات‬,‫الخاطيء‬ ‫المدخل‬ ‫غير‬ ‫من‬ ‫لكن‬ ‫و‬,‫االتجا‬ ‫فهي‬‫العام‬ ‫ه‬
‫األيام‬ ‫هذه‬...
‫الفضية‬ ‫الرصاصة‬ ‫عن‬ ‫البحث‬seeking the silver
bullet!
‫سنة‬ ‫في‬2001,‫اجتمع‬17‫خفيفة‬ ‫منهجية‬ ‫عن‬ ‫للبحث‬ ‫مبرمجا‬lightweight‫البرمجيات‬ ‫لتطوير‬
‫البرمجيات‬ ‫صناعة‬ ‫في‬ ‫نجوما‬ ‫كانوا‬ ‫االجتماع‬ ‫هذا‬ ‫حضروا‬ ‫من‬,‫خبرتهم‬ ‫خالصة‬ ‫هو‬ ‫به‬ ‫خرجوا‬ ‫ما‬ ‫و‬!
‫االجتماع‬ ‫هذا‬ ‫حضروا‬ ‫ممن‬:Martin Fowler,Kent Beck,Robert Martin(Uncle Bob),Ken
Schwaber(Scrum),Andy Hunt (The Pragmatic Programmer),...‫إلخ‬
‫االجتماع‬ ‫هذا‬ ‫ناتج‬ ‫كان‬:‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬Agile Manifesto
‫األولويات‬ ‫بتغيير‬ ‫البرمجيات‬ ‫صناعة‬ ‫مشاكل‬ ‫من‬ ‫الكثير‬ ‫حل‬ ‫يمكننا‬ ‫أننا‬ ‫خالصته‬!
‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬Agile Manifesto‫أو‬
‫المرنة‬ ‫البرمجة‬ ‫قيم‬Agile Values
 We are uncovering (‫عن‬ ‫)نكشف‬ better ways of developing software by doing
it and helping others do it. Through this work, we have come to value:
 Individuals and interactions over Processes and tools
 Working software over Comprehensive ( ‫شامل‬,‫موسع‬ ) documentation
 Murphy’s law: If a program is useless, it will have to be documented!
 Customer collaboration over Contract negotiation
 Responding to change over Following a plan.
 Change is constant!
 That is, while there is definitely (‫)قطعا‬ a value in the items on the right, we
value the items on the left more.
‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫قيم‬
‫المدير‬ ‫مهام‬ ‫في‬ ‫التغير‬,‫المبرمج‬ ‫و‬,‫العميل‬ ‫و‬
‫نفسه‬ ‫للفريق‬ ‫انتقلت‬ ‫الفريق‬ ‫قائد‬ ‫أو‬ ‫المدير‬ ‫مهام‬ ‫بعض‬(‫توزيعها‬ ‫و‬ ‫المهام‬ ‫اختيار‬)
‫إيجابي‬ ‫العميل‬active‫سلبيا‬ ‫ليس‬ ‫و‬ ‫باستمرار‬ ‫يشارك‬passive‫فقط‬ ‫يتلقى‬
‫االعتقاد‬(‫الخاطيء‬)‫األولية‬ ‫الخطوات‬ ‫بأن‬ ‫المرنة‬ ‫البرمجة‬ ‫ممارسي‬ ‫بعض‬ ‫لدى‬(‫المتطلبات‬ ‫كجمع‬
requirement gathering)‫الهندسي‬ ‫التصميم‬ ‫و‬(design)‫األهمية‬ ‫قليلة‬«‫دائما‬»
‫إما‬ ‫يكون‬ ‫بالتسليم‬ ‫الوعد‬( :1)‫الخصائص‬ ‫كل‬,‫أو‬(2)‫المحدد‬ ‫الوقت‬ ‫في‬,‫كالهما‬ ‫ليس‬ ‫و‬
‫المرنة‬ ‫البرمجة‬ ‫القيم‬ ‫في‬ ‫أساس‬ ‫محور‬ ‫البرنامج‬ ‫جودة‬
‫المرنة‬ ‫البرمجة‬ ‫مباديء‬Agile Principles
‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬,‫على‬ ‫مبني‬12‫مبدأ‬..
‫إلى‬ ‫سنقسمهم‬4‫مجموعات‬
‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project delivering
‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication
‫المشروع‬ ‫بتنفيذ‬ ‫مرتبطة‬ ‫مباديء‬Project execution
‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬Improving Project and Team
‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project
delivering
 Principle #1: Our Highest Priority Is to Satisfy the Customer Through Early
and Continuous Delivery of Valuable Software.
‫الخطة‬ ‫اتباع‬ ‫أن‬ ‫تفترض‬ ‫التقليدية‬ ‫المشروعات‬ ‫إدارة‬=‫المشروع‬ ‫نجاح‬=‫العميل‬ ‫رضا‬
‫باستمرار‬ ‫تتغير‬ ‫العميل‬ ‫حاجات‬ ‫أن‬ ‫الواقع‬‫باستمرار‬ ‫العميل‬ ‫رضا‬ ‫اختبار‬ ‫من‬ ‫البد‬,‫كيف؟‬
 Release early = ‫بالتسليم‬ ‫عجل‬
‫العكسية‬ ‫التغذية‬ ‫من‬ ‫تسرع‬ ‫هذه‬feedback
‫المطلوبة‬ ‫خصائصه‬ ‫في‬ ‫شديد‬ ‫نقص‬ ‫به‬ ‫يكون‬ ‫قد‬ ‫المنتج‬ ‫المقابل‬ ‫في‬‫المعنية‬ ‫األطراف‬ ‫لو‬stakeholders‫متفهمين‬ ‫غير‬
‫النقطة‬ ‫لهذه‬,‫سلبية‬ ‫بصورة‬ ‫البرنامج‬ ‫تقييم‬ ‫في‬ ‫ذلك‬ ‫يتسبب‬ ‫قد‬!‫ا‬ ‫األطراف‬ ‫مع‬ ‫الوثيق‬ ‫االتصال‬ ‫من‬ ‫البد‬‫لمعنية‬
stakeholders
 Deliver value continuously = ‫التسليم‬ ‫من‬ ‫أكثر‬
 Satisfy customer = ‫العميل‬ ِ‫أرض‬
‫السابقتين‬ ‫للنقطتين‬ ‫مباشرة‬ ‫نتيجة‬ ‫هذه‬:‫بسرعة‬ ‫تسلم‬ ‫حين‬,‫كثيرا‬ ‫التسليم‬ ‫توالي‬ ‫و‬,‫راج‬ ‫تغذية‬ ‫يأتيك‬‫باستمرار‬ ‫عة‬,‫فتحقق‬
‫بسرعة‬ ‫العميل‬ ‫رغبات‬!
‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project
delivering
 Principle #2: Welcome Changing Requirements, Even Late In Development.
Agile Processes Harness ( ‫يستخدم‬/‫يسخر‬ ) Change for the Customer’s
Competitive Advantage (‫التنافسية‬ ‫.)الميزات‬
 Welcome change = ‫التفكير‬ ‫طريقة‬ ‫في‬ ‫تغيير‬
‫العميل‬ ‫من‬ ‫أو‬ ‫منك‬ ‫خطأ‬ ‫أنه‬ ‫على‬ ‫التغير‬ ‫مع‬ ‫التعامل‬ ‫عن‬ ‫توقف‬,‫وسعه‬ ‫في‬ ‫ما‬ ‫منكما‬ ‫كل‬ ‫بذل‬ ‫فقد‬
‫المتطلبات‬ ‫جمع‬ ‫عن‬ ‫التوقف‬ ‫يعني‬ ‫ال‬ ‫هذا‬requirement gathering
 Control Change
‫منعه‬ ‫محاولة‬ ‫من‬ ‫فعالية‬ ‫أكثر‬ ‫التغيير‬ ‫تسهيل‬!
‫التغيير‬ ‫كلفة‬ ‫من‬ ‫تقلل‬ ‫المستمرة‬ ‫الراجعة‬ ‫التغذية‬!
‫المتطلبات‬ ‫في‬ ‫التغيير‬ ‫هو‬ ‫هنا‬ ‫المقصود‬ ‫التغيير‬requirements‫مثال‬ ‫العميل‬ ‫إهمال‬ ‫عن‬ ‫الناشيء‬ ‫التغيير‬ ‫ليس‬ ‫و‬,
‫المخاطر‬ ‫إدارة‬ ‫ضمن‬ ‫يدخل‬ ‫فهذا‬risk management‫لل‬ ‫دخل‬ ‫ال‬ ‫و‬Agile‫فيه‬.
‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project
delivering
 Principle #3: Deliver Working Software Frequently, from a Couple of Weeks
to a Couple of Months, with a Preference to the Shorter Timescale.
‫فوضى‬ ‫المشروع‬ ‫لجعل‬ ‫المستمر‬ ‫التقبل‬ ‫يتحول‬ ‫ال‬ ‫لكي‬‫تنظيمه‬ ‫من‬ ‫البد‬
‫التسليم‬delivering‫دفعات‬ ‫على‬sprints‫قصيرة‬(‫لشهرين‬ ‫أسبوعين‬ ‫من‬)‫كل‬ ‫بداية‬ ‫في‬ ‫تكون‬ ‫التغييرات‬ ‫و‬‫دفعة‬,
‫العمل‬ ‫أثناء‬ ‫ليس‬ ‫و‬
‫نفسه‬ ‫يراجع‬ ‫أن‬ ‫التغيير‬ ‫يطلب‬ ‫لمن‬ ‫فرصة‬ ‫يعطي‬ ‫هذا‬,‫ينض‬ ‫حتى‬ ‫وقته‬ ‫يأخذ‬ ‫التعديل‬ ‫في‬ ‫يفكر‬ ‫أن‬ ‫و‬‫ج‬
‫التسليم‬delivering=!‫اإلطالق‬releasing
‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication
 Principle #4: The Most Efficient and Effective Method of Conveying (‫)نقل‬
Information To and Within a Development Team Is Face-To-Face
Conversation.
‫التوثيق‬documentation‫مهم‬,‫المب‬ ‫االتصال‬ ‫منه‬ ‫خير‬ ‫و‬ ‫المعلومات‬ ‫لنقل‬ ‫الوحيدة‬ ‫الوسيلة‬ ‫ليس‬ ‫لكنه‬‫اشر‬
(‫المرنة‬ ‫البرمجة‬ ‫ممارسو‬ ‫يعتقد‬ ‫كما‬,‫ذلك‬ ‫في‬ ‫قدوا‬ُ‫ت‬‫ان‬ ‫و‬)
‫فيه‬ ‫خالف‬ ‫ال‬ ‫ما‬:
‫مهم‬ ‫التوثيق‬,‫المباشر‬ ‫االتصال‬ ‫عن‬ ‫يغني‬ ‫ال‬ ‫لكنه‬
‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication
 Principle #5: Business-people and Developers Must Work Together Daily
Throughout the Project.
‫المرنة‬ ‫الفرق‬ ‫و‬ ‫التقليدية‬ ‫الفرق‬ ‫بين‬ ‫الفرق‬:
‫التقليدية‬ ‫الفرق‬ ‫في‬‫يتفاوضون‬‫العميل‬ ‫مع‬
‫المرنة‬ ‫الفرق‬ ‫في‬‫يتعاونون‬‫العميل‬ ‫مع‬
‫المستمر‬ ‫االتصال‬ ‫أهمية‬ ‫على‬ ‫للداللة‬ ‫اليومي‬ ‫االتصال‬,‫الحرفي‬ ‫لاللتزام‬ ‫ليس‬ ‫و‬(‫أف‬ ‫ذلك‬ ‫كان‬ ‫إن‬ ‫و‬‫بال‬ ‫ضل‬
‫شك‬)
‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication
 Principle #6: Build Projects Around Motivated Individuals. Give Them the
Environment and Support They Need, and Trust Them to Get the Job
Done.
‫المبدأ‬ ‫هذا‬ ‫تخالف‬ ‫عملية‬ ‫أمثلة‬:
‫البرمجية‬ ‫األخطاء‬ ‫عدد‬ ‫على‬ ‫المبرمج‬ ‫تقييم‬bugs‫عنه‬ ‫الصادرة‬(‫غير‬ ‫عن‬ ‫صادرة‬ ‫األخطاء‬ ‫كانت‬ ‫إذا‬ ‫خاصة‬
‫إهمال‬)‫الحقيقية‬ ‫المشكالت‬ ‫عنك‬ ‫سيخفي‬
‫األنظمة‬ ‫مختبري‬ ‫مكافأة‬testers‫يكتشفوها‬ ‫التي‬ ‫األخطاء‬ ‫عدد‬ ‫على‬‫الكيف‬ ‫دون‬ ‫بالكم‬ ‫سيهتم‬
‫على‬ ‫بناء‬ ‫المحللين‬ ‫تقييم‬«‫كم‬»‫ينتجونها‬ ‫التي‬ ‫الوثائق‬‫الصفحات‬ ‫كثيرة‬ ‫وثائق‬ ‫سيخرجون‬,‫ق‬‫الفائدة‬ ‫ليلة‬
‫ثقافة‬ ‫فيها‬ ‫تنتشر‬ ‫الريبة‬ ‫على‬ ‫المبنية‬ ‫الفاسدة‬ ‫البيئة‬«‫نفسك‬ ‫ن‬ِ‫أم‬»!
‫ثقافة‬ ‫فيها‬ ‫تنتشر‬ ‫الثقة‬ ‫على‬ ‫المبنية‬ ‫الصحية‬ ‫البئية‬«‫بالمسئولية‬ ‫اإلحساس‬»‫الم‬ ‫نجاح‬ ‫عن‬‫شروع‬.
‫المشروع‬ ‫بتنفيذ‬ ‫مرتبطة‬ ‫مباديء‬Project
execution
 Principle #7: Working Software Is the Primary Measure of Progress.
‫الحالة‬ ‫تقارير‬status reports‫كافية‬ ‫ليست‬
‫المستمر‬ ‫التسليم‬ ‫ميزة‬continuous delivery‫مؤشرات‬ ‫تعطيني‬ ‫أنها‬,‫اإلطالق‬ ‫عند‬ ‫النهائي‬ ‫للهدف‬ ‫سأصل‬ ‫هل‬
releasing‫ال؟‬ ‫أم‬
‫المشروع‬ ‫بتنفيذ‬ ‫مرتبطة‬ ‫مباديء‬Project
execution
 Principle #8: Agile Processes Promote Sustainable (‫لالستمرار‬ ‫)قابل‬
Development. The Sponsors, Developers, and Users Should Be Able to
Maintain a Constant Pace (‫ثابتة‬ ‫)وتيرة‬ Indefinitely (‫مسمى‬ ‫غير‬ ‫أجل‬ ‫.)إلى‬
‫الحماسة‬ ‫فقد‬ُ‫ي‬ ‫و‬ ‫اإلنتاجية‬ ‫يقلل‬ ‫طويلة‬ ‫لساعات‬ ‫العمل‬motivation‫للعمل‬
‫الموت‬ ‫مسيرات‬ ‫تجنب‬death marches
‫األسبوع‬ ‫في‬ ‫ثابتة‬ ‫عمل‬ ‫ساعات‬ ‫عدد‬ ‫على‬ ‫المحافظة‬(40‫ساعة‬(
‫سياسة‬20%‫قوقل‬ ‫في‬ ‫يشاء‬ ‫كما‬ ‫يقضيه‬ ‫الموظف‬ ‫وقت‬ ‫من‬Google(‫منذ‬2013‫السياسة‬ ‫هذه‬ ‫إيقاف‬ ‫تحاول‬)!!
‫عمليا‬,‫من‬ ‫أكثر‬ ‫العمل‬ ‫تجنب‬ ‫يمكن‬ ‫ال‬40‫األسبوع‬ ‫في‬ ‫ساعة‬,‫و‬ ‫االستثناء‬ ‫هو‬ ‫ذلك‬ ‫جعل‬ ‫هو‬ ‫عمله‬ ‫يمكن‬ ‫ما‬ ‫أقصى‬ ‫و‬
‫األصل‬ ‫ليس‬.
 Principle #9: Continuous Attention to Technical Excellence and Good
Design Enhances Agility.
‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬
Improving Project and Team
 Principle #10: Simplicity—the Art of Maximizing the Amount of Work Not
Done—Is Essential.
 Simplicity
 Keep It Simple Stupid (KISS)
‫البرمجة‬ ‫مستوى‬ ‫على‬ ‫هذه‬development‫المنهجية‬ ‫و‬process
 Work-less
 You Ain’t Gonna Need It (YAGNI)
20%‫تستخدم‬ ‫الخصائص‬ ‫من‬80%‫الوقت‬ ‫من‬‫فالمهم‬ ‫األهم‬ ‫على‬ ‫ركز‬
‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬
Improving Project and Team
 Principle #11: The Best Architectures, Requirements, and Designs Emerge
(‫)تنبثق‬ from Self-Organizing Teams.
‫التقليدية‬ ‫الفرق‬:‫األوامر‬ ‫تنفذ‬
‫المرنة‬ ‫الفرق‬:‫بنفسها‬ ‫قراراتها‬ ‫تأخذ‬self-organized teams
‫التخطيط‬ ‫في‬ ‫واحد‬ ‫شخص‬ ‫على‬ ‫يعتمد‬ ‫ال‬ ‫يخطط‬ ‫الفريق‬
‫عليهم‬ ‫تفرض‬ ‫ال‬ ‫بأنفسهم‬ ‫مهامهم‬ ‫يختارون‬ ‫الفريق‬ ‫أعضاء‬
‫فقط‬ ‫المشروع‬ ‫مدير‬ ‫أو‬ ‫قائد‬ ‫ليس‬ ‫و‬ ‫كله‬ ‫الفرق‬ ‫مسئولية‬ ‫المشروع‬
‫نقد‬:‫األحوال‬ ‫لكل‬ ‫و‬ ‫الفرق‬ ‫لكل‬ ‫يصلح‬ ‫ال‬ ‫الفكرة‬ ‫هذه‬ ‫تعميم‬,‫الحسبان‬ ‫في‬ ‫باألخذ‬ ‫جديرة‬ ‫لكنها‬
‫حديث‬:«‫أحدكم‬ ‫فأمروا‬ ‫ثالثة‬ ‫كنتم‬ ‫إذا‬»
‫للفريق‬ ‫قائد‬ ‫وجود‬ ‫األصل‬,‫االستثناء‬ ‫هو‬ ‫العكس‬
‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬
Improving Project and Team
 Principle #12: At Regular Intervals, the Team Reflects on How to Become
More Effective, Then Tunes and Adjusts Its Behavior Accordingly.
‫باستمرار‬ ‫البرامج‬ ‫إنتاج‬ ‫في‬ ‫طريقته‬ ‫بتحسين‬ ‫يقوم‬ ‫حتى‬ ‫مرنا‬ ‫الفريق‬ ‫يكون‬ ‫ال‬,‫الم‬ ‫طريق‬ ‫عن‬ ‫ذلك‬ ‫و‬‫و‬ ‫راجعة‬
‫المستمر‬ ‫التصحيح‬.
‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫مباديء‬
‫المرنة‬ ‫األساليب‬ ‫كل‬ ‫في‬ ‫خاصا‬ ‫اهتماما‬ ‫ى‬َ‫ل‬‫يو‬ ‫اختبارها‬ ‫و‬ ‫البرامج‬ ‫بجودة‬ ‫االهتمام‬ ‫أن‬ ‫من‬ ‫الرغم‬ ‫على‬,‫ب‬‫هذا‬ ‫ل‬
‫المرنة‬ ‫البرمجة‬ ‫لحركة‬ ‫األساسية‬ ‫اإلضافات‬ ‫من‬ ‫االهتمام‬,‫المبا‬ ‫من‬ ‫أي‬ ‫في‬ ‫مذكور‬ ‫غير‬ ‫االهتمام‬ ‫هذا‬ ‫أن‬ ‫إال‬‫ديء‬
‫الذكر‬ ‫سالفة‬.
‫السابقة‬ ‫المتطلبات‬ ‫مشكالت‬ ‫حل‬ ‫من‬ ‫تفرغ‬ ‫حتى‬ ‫جديدة‬ ‫متطلبات‬ ‫تطوير‬ ‫في‬ ‫تبدأ‬ ‫ال‬
‫االختبار‬ ‫اكتب‬unit test‫نفسه‬ ‫الكود‬ ‫كتابة‬ ‫قبل‬TDD
‫الدفعة‬ ‫انتهاء‬ ‫حتى‬ ‫التعديالت‬ ‫تجميد‬sprint
‫الثالث‬ ‫المبدأ‬ ‫في‬:‫لشهرين‬ ‫أسبوعين‬ ‫من‬ ‫دفعات‬ ‫على‬ ‫المستمر‬ ‫التسليم‬
‫المبدأ‬ ‫هذا‬ ‫تكملة‬:‫دفعة‬ ‫كل‬ ‫بداية‬ ‫عند‬ ‫عتبر‬ُ‫ت‬ ‫التعديالت‬,‫ك‬ ‫تأجيل‬ ‫يتم‬ ‫الدفعة‬ ‫في‬ ‫العمل‬ ‫بدأ‬ ‫إذا‬ ‫لكن‬‫التعديالت‬ ‫ل‬‫قبلنا‬
‫قليال‬ ‫أجلناه‬ ‫لكن‬ ‫التغيير‬!
‫سيناريو‬ ‫صورة‬ ‫في‬ ‫تكتب‬ ‫المتطلبات‬,‫موسع‬ ‫إما‬use case‫مقتضب‬ ‫أو‬user story
‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫مباديء‬
‫متغيرة‬ ‫و‬ ‫جديدة‬ ‫أدوار‬
‫جديد‬:‫المنتج‬ ‫صاحب‬product owner
‫جديد‬:‫المنهجية‬ ‫مسئول‬agile coach/master
‫متغير‬:‫المدير‬ ‫مهام‬ ‫تقليل‬
‫الفريق‬ ‫صفات‬:
‫ذاتي‬ ‫تنظيم‬ ‫ذو‬self-organized:‫بنفسه‬ ‫قراراته‬ ‫يأخذ‬
‫المهام‬ ‫متعدد‬cross-functional:‫التخصصات‬ ‫كل‬ ‫يضم‬ ‫الفريق‬(‫المختبرين‬ ‫فيهم‬ ‫بما‬testers)
‫برشاقة‬ ‫التفكير‬Lean Thinking
‫اإلنتاج‬ ‫في‬ ‫نظامها‬ ‫و‬ ‫تويوتا‬ ‫شركة‬ ‫من‬ ‫البداية‬Toyota Production System‫عند‬ ‫اإلنتاج‬ ‫اسم‬ ‫تحت‬
‫الحاجة‬just-in-time production,‫السم‬ ‫الحقا‬ ‫تطور‬ ‫الذي‬:Lean Manufacturing
‫الهدف‬:‫المخزون‬ ‫تقليل‬
‫الهدر‬ ‫تقليل‬ ‫محور‬ ‫حول‬ ‫تدور‬ ‫تفكير‬ ‫طريقة‬ ‫و‬ ‫فلسفة‬ ‫هي‬reduce or eliminate waste
‫جدا‬ ‫ملهمة‬‫البرمجات‬ ‫صناعة‬ ‫بها‬ ‫تأثرت‬Lean Software Development‫األعمال‬ ‫عالم‬ ‫و‬
Lean Startups
‫الرشيق‬ ‫التفكير‬ ‫مباديء‬Lean Principles
‫التعهدات‬ ‫تأجيل‬Defer commitment
‫جيدة‬ ‫برامج‬build quality in
‫الكلي‬ ‫التحسين‬Optimize the whole
‫األفراد‬ ‫تقدير‬Respect people
‫سريعا‬ ‫التسليم‬Deliver fast–‫قبل‬ ‫من‬ ‫عنها‬ ‫تحدثنا‬
‫الخبرات‬ ‫تعظيم‬Create Knowledge
‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste
‫التعهدات‬ ‫تأجيل‬Defer commitment
‫الالزمة‬ ‫المعلومات‬ ‫جميع‬ ‫لك‬ ‫تتاح‬ ‫حتى‬ ‫قراراتك‬ ‫أجل‬
‫بالفعل‬ ‫تحتاجه‬ ‫أنك‬ ‫تتأكد‬ ‫حتى‬ ‫القرار‬ ‫أجل‬
‫فاألقل‬ ‫أهمية‬ ‫األكثر‬ ‫المتطلبات‬ ‫نفذ‬
‫جيدة‬ ‫برامج‬build quality in
‫للمستخدم‬ ‫يظهر‬ ‫فيما‬ ‫جيد‬Perceived Integrity
‫األكمل‬ ‫الوجه‬ ‫على‬ ‫المستخدم‬ ‫احتياجات‬ ‫يحقق‬
‫جيد‬‫نفسه‬ ‫في‬Conceptual Integrity=
Unit testing + refactoring
‫المشكالت‬ ‫حدوث‬ ‫منع‬ ‫حاول‬
‫ممكن‬ ‫وقت‬ ‫أسرع‬ ‫في‬ ‫المشكلة‬ ‫حل‬
‫س‬ ‫العكسية‬ ‫التغذية‬ ‫لتأتيك‬ ‫كثيرا‬ ‫و‬ ‫سريعا‬ ‫سلم‬‫كثيرا‬ ‫و‬ ‫ريعا‬
‫حللتها‬ ‫و‬ ‫مشكلة‬ ‫وجدت‬ ‫لو‬,‫ثاني‬ ‫تتكرر‬ ‫لن‬ ‫أنها‬ ‫تأكد‬‫ة‬
‫الكلي‬ ‫التحسين‬Optimize the whole
‫الكلية‬ ‫الصورة‬ ‫على‬ ‫الصغيرة‬ ‫قراراتك‬ ‫أثر‬ ‫من‬ ‫تأكد‬
‫شيء‬ ‫لكل‬ ‫مستمرة‬ ‫قياسات‬ ‫ضع‬
‫أعراضها‬ ‫ليس‬ ‫و‬ ‫جذرها‬ ‫حللت�� ‫أنك‬ ‫تأكد‬ ‫مشكلة‬ ‫حدوث‬ ‫عند‬
Root cause analysis
Five whys
‫األفراد‬ ‫تقدير‬Respect people
‫اإلعذار‬ ‫و‬ ‫التقدير‬ ‫و‬ ‫الدعم‬ ‫و‬ ‫الثقة‬=‫الفريق‬ ‫نجاح‬ ‫خلطة‬
‫الخبرات‬ ‫تعظيم‬Create Knowledge
‫قصيرة‬ ‫دفعات‬ ‫على‬ ‫سلم‬‫سريعا‬ ‫راجعة‬ ‫تغذية‬ ‫على‬ ‫تحصل‬‫بسرعة‬ ‫تتعلم‬
‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste
‫فقط‬ ‫للعميل‬ ‫مضافة‬ ‫قيمة‬ ‫يمثل‬ ‫ما‬ ‫اعمل‬,‫بسرعة‬ ‫اعمله‬ ‫و‬
‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste
 Inventory (‫)مخزون‬ < -- > Partially done work
 Incomplete features, Unchecked-in work, untested code, commented-out code…etc.
 Overproduction < -- > Extra Features/Code/Functionality
 Extra processing < -- > Relearning / Reworking
 Transportation < -- > Handoffs without proper knowledge
‫آخر‬ ‫لمبرمج‬ ‫الكود‬ ‫نقل‬
‫آخر‬ ‫لفريق‬ ‫البرنامج‬ ‫نقل‬:‫الجودة‬–‫التشغيل‬–‫العميل‬
 Waiting < -- > Delays
‫اإلدارة‬ ‫موافقة‬ ‫انتظار‬–‫موارد‬ ‫توفر‬ ‫انتظار‬–‫آخر‬ ‫فريق‬ ‫عمل‬ ‫على‬ ‫االعتماد‬...‫إلخ‬
 Defects < -- > Defects
‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste
 Motion < -- > Task switching  Relearning
•‫الـ‬ ‫وظائف‬ ‫من‬Scrum Master
‫األساسية‬:‫ال‬ ‫بين‬ ‫التنقل‬ ‫تقليل‬‫مهام‬
•‫من‬ ‫المبرمج‬ ‫يحتاج‬15‫إلى‬45‫دقيقة‬
‫اإلنتا‬ ‫و‬ ‫التركيز‬ ‫حالة‬ ‫في‬ ‫ليدخل‬‫جية‬
‫المرنة؟‬ ‫البرمجة‬ ‫أساليب‬ ‫شيوع‬ ‫مدى‬ ‫ما‬
‫فورستر‬ ‫مؤسسة‬ ‫نشرتها‬ ‫دراسة‬ ‫في‬Forrester‫سنة‬2011‫بعنوان‬:
Water-Scrum-Fall Is The Reality Of Agile For Most Organizations Today
‫الخالصة‬:
‫شائعة‬ ‫المرنة‬ ‫البرمجة‬ ‫أساليب‬,‫خالصة‬ ‫ليست‬ ‫لكنها‬Agile Is Popular But Not Pure
‫الدراسة‬ ‫عليه‬ ‫أطلقت‬ ‫ما‬ ‫هو‬ ‫شيوعا‬ ‫المناهج‬ ‫أكثر‬:Water-scrum-fall‫و‬ ‫التقليدية‬ ‫األساليب‬ ‫من‬ ‫هجين‬ ‫هي‬ ‫و‬
‫سقرام‬ ‫أسلوب‬scrum‫سيئا‬ ‫أو‬ ‫حسنا‬ ‫ليس‬ ‫هذا‬ ‫و‬
‫المرنة‬ ‫المنهجيات‬ ‫على‬ ‫نظرة‬‫الشائعة‬
‫المصدر‬:https://www.versionone.com/pdf/state-of-agile-development-survey-ninth.pdf

More Related Content

Agile mindset (Arabic)

  • 1. Agile Software Development II: Agile Mindset ‫المرنة‬ ‫العقلية‬ ‫دعبس‬ ‫سامح‬
  • 2. ‫الفهرس‬ ‫السابقة‬ ‫الحلقة‬ ‫ملخص‬ ‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬Agile Manifesto‫المرنة‬ ‫البرمجة‬ ‫قيم‬ ‫أو‬Agile Values ‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫قيم‬ ‫المرنة‬ ‫البرمجة‬ ‫مباديء‬Agile Principles ‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫مباديء‬ ‫برشاقة‬ ‫التفكير‬Lean Thinking ‫الشائعة‬ ‫المرنة‬ ‫المنهجيات‬ ‫على‬ ‫نظرة‬
  • 3. ‫السابقة‬ ‫الحلقة‬ ‫ملخص‬...‫البرمجيات‬ ‫فشل‬ ‫أسباب‬ ‫الواقعية‬ ‫غير‬ ‫أو‬ ‫الغامضة‬ ‫األهداف‬ ‫المطلوبة‬ ‫الموارد‬ ‫تقدير‬ ‫في‬ ‫الخطأ‬ ‫مستمر‬ ‫بشكل‬ ‫المشروع‬ ‫حالة‬ ‫متابعة‬ ‫عدم‬poor reporting of project status ‫المخاطر‬ ‫إدارة‬ ‫في‬ ‫الفشل‬ ‫التواصل‬ ‫ضعف‬poor communication ‫ناضجة‬ ‫غير‬ ‫تقنيات‬ ‫على‬ ‫االعتماد‬immature technologies ‫المشروع‬ ‫تعقيدات‬ ‫إدارة‬ ‫في‬ ‫الفشل‬ ‫التطوير‬ ‫في‬ ‫المتقنة‬ ‫غير‬ ‫أو‬ ‫السيئة‬ ‫الممارسات‬hacking-driven development ‫اإلداري‬ ‫الفقر‬ ‫أو‬ ‫الضعف‬ ‫المصلحة‬ ‫أصحاب‬ ‫سياسات‬stakeholders‫المتعارضة‬ ‫السوق‬ ‫ضغط‬ ‫واحد‬ ‫لسبب‬ ‫عادة‬ ‫الفشل‬ ‫يحدث‬ ‫ال‬,‫مجتمعة‬ ‫أسباب‬ ‫لعدة‬ ‫إنما‬,‫تنظيمية‬ ‫و‬ ‫إدارية‬ ‫و‬ ‫فنية‬. *‫المصدر‬:http://spectrum.ieee.org/computing/software/why-software-fails
  • 4. ‫السابقة‬ ‫الحلقة‬ ‫ملخص‬...‫للطميات‬ ‫ال‬ ‫المرنة‬ ‫البرمجة‬ ‫حركة‬ ‫ظهور‬ ‫قبل‬ ‫مخدومة‬ ‫تكن‬ ‫لم‬ ‫البرمجيات‬ ‫صناعة‬ ‫أن‬ ‫االدعاء‬Agile Software Development–‫العرض‬ ‫بداية‬ ‫في‬ ‫قدمنا‬ ‫كما‬-‫خاطيء‬ ‫لكنه‬ ‫و‬ ‫شائع‬ ‫مدخل‬! ‫حقيقية‬ ‫أزمة‬ ‫من‬ ‫تعاني‬ ‫ال‬ ‫البرمجيات‬ ‫صناعة‬ ‫أن‬ ‫تبين‬ ‫اإلحصاءات‬,‫قديم‬ ‫مشكالت‬ ‫من‬ ‫تخلو‬ ‫لم‬ ‫إن‬ ‫و‬‫جديدة‬ ‫ة‬! ‫النجاح‬ ‫أسباب‬ ‫أهم‬ ‫خالصة‬: «‫سكر‬ ‫تاكل‬ ‫نملة‬ ‫عيش‬»!!–‫مصري‬ ‫مثل‬ ‫صغير‬ ‫المشروع‬–‫صغير‬ ‫فريق‬–‫قصير‬ ‫زمن‬ Go agile! ‫بالفعل‬ ‫المرنة‬ ‫البرمجة‬ ‫حركة‬ ‫نجاح‬ ‫تبين‬ ‫اإلحصاءات‬,‫الخاطيء‬ ‫المدخل‬ ‫غير‬ ‫من‬ ‫لكن‬ ‫و‬,‫االتجا‬ ‫فهي‬‫العام‬ ‫ه‬ ‫األيام‬ ‫هذه‬...
  • 5. ‫الفضية‬ ‫الرصاصة‬ ‫عن‬ ‫البحث‬seeking the silver bullet! ‫سنة‬ ‫في‬2001,‫اجتمع‬17‫خفيفة‬ ‫منهجية‬ ‫عن‬ ‫للبحث‬ ‫مبرمجا‬lightweight‫البرمجيات‬ ‫لتطوير‬ ‫البرمجيات‬ ‫صناعة‬ ‫في‬ ‫نجوما‬ ‫كانوا‬ ‫االجتماع‬ ‫هذا‬ ‫حضروا‬ ‫من‬,‫خبرتهم‬ ‫خالصة‬ ‫هو‬ ‫به‬ ‫خرجوا‬ ‫ما‬ ‫و‬! ‫االجتماع‬ ‫هذا‬ ‫حضروا‬ ‫ممن‬:Martin Fowler,Kent Beck,Robert Martin(Uncle Bob),Ken Schwaber(Scrum),Andy Hunt (The Pragmatic Programmer),...‫إلخ‬ ‫االجتماع‬ ‫هذا‬ ‫ناتج‬ ‫كان‬:‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬Agile Manifesto ‫األولويات‬ ‫بتغيير‬ ‫البرمجيات‬ ‫صناعة‬ ‫مشاكل‬ ‫من‬ ‫الكثير‬ ‫حل‬ ‫يمكننا‬ ‫أننا‬ ‫خالصته‬!
  • 6. ‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬Agile Manifesto‫أو‬ ‫المرنة‬ ‫البرمجة‬ ‫قيم‬Agile Values  We are uncovering (‫عن‬ ‫)نكشف‬ better ways of developing software by doing it and helping others do it. Through this work, we have come to value:  Individuals and interactions over Processes and tools  Working software over Comprehensive ( ‫شامل‬,‫موسع‬ ) documentation  Murphy’s law: If a program is useless, it will have to be documented!  Customer collaboration over Contract negotiation  Responding to change over Following a plan.  Change is constant!  That is, while there is definitely (‫)قطعا‬ a value in the items on the right, we value the items on the left more.
  • 7. ‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫قيم‬ ‫المدير‬ ‫مهام‬ ‫في‬ ‫التغير‬,‫المبرمج‬ ‫و‬,‫العميل‬ ‫و‬ ‫نفسه‬ ‫للفريق‬ ‫انتقلت‬ ‫الفريق‬ ‫قائد‬ ‫أو‬ ‫المدير‬ ‫مهام‬ ‫بعض‬(‫توزيعها‬ ‫و‬ ‫المهام‬ ‫اختيار‬) ‫إيجابي‬ ‫العميل‬active‫سلبيا‬ ‫ليس‬ ‫و‬ ‫باستمرار‬ ‫يشارك‬passive‫فقط‬ ‫يتلقى‬ ‫االعتقاد‬(‫الخاطيء‬)‫األولية‬ ‫الخطوات‬ ‫بأن‬ ‫المرنة‬ ‫البرمجة‬ ‫ممارسي‬ ‫بعض‬ ‫لدى‬(‫المتطلبات‬ ‫كجمع‬ requirement gathering)‫الهندسي‬ ‫التصميم‬ ‫و‬(design)‫األهمية‬ ‫قليلة‬«‫دائما‬» ‫إما‬ ‫يكون‬ ‫بالتسليم‬ ‫الوعد‬( :1)‫الخصائص‬ ‫كل‬,‫أو‬(2)‫المحدد‬ ‫الوقت‬ ‫في‬,‫كالهما‬ ‫ليس‬ ‫و‬ ‫المرنة‬ ‫البرمجة‬ ‫القيم‬ ‫في‬ ‫أساس‬ ‫محور‬ ‫البرنامج‬ ‫جودة‬
  • 8. ‫المرنة‬ ‫البرمجة‬ ‫مباديء‬Agile Principles ‫المرنة‬ ‫للبرمجة‬ ‫الرسمي‬ ‫البيان‬,‫على‬ ‫مبني‬12‫مبدأ‬.. ‫إلى‬ ‫سنقسمهم‬4‫مجموعات‬ ‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project delivering ‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication ‫المشروع‬ ‫بتنفيذ‬ ‫مرتبطة‬ ‫مباديء‬Project execution ‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬Improving Project and Team
  • 9. ‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project delivering  Principle #1: Our Highest Priority Is to Satisfy the Customer Through Early and Continuous Delivery of Valuable Software. ‫الخطة‬ ‫اتباع‬ ‫أن‬ ‫تفترض‬ ‫التقليدية‬ ‫المشروعات‬ ‫إدارة‬=‫المشروع‬ ‫نجاح‬=‫العميل‬ ‫رضا‬ ‫باستمرار‬ ‫تتغير‬ ‫العميل‬ ‫حاجات‬ ‫أن‬ ‫الواقع‬‫باستمرار‬ ‫العميل‬ ‫رضا‬ ‫اختبار‬ ‫من‬ ‫البد‬,‫كيف؟‬  Release early = ‫بالتسليم‬ ‫عجل‬ ‫العكسية‬ ‫التغذية‬ ‫من‬ ‫تسرع‬ ‫هذه‬feedback ‫المطلوبة‬ ‫خصائصه‬ ‫في‬ ‫شديد‬ ‫نقص‬ ‫به‬ ‫يكون‬ ‫قد‬ ‫المنتج‬ ‫المقابل‬ ‫في‬‫المعنية‬ ‫األطراف‬ ‫لو‬stakeholders‫متفهمين‬ ‫غير‬ ‫النقطة‬ ‫لهذه‬,‫سلبية‬ ‫بصورة‬ ‫البرنامج‬ ‫تقييم‬ ‫في‬ ‫ذلك‬ ‫يتسبب‬ ‫قد‬!‫ا‬ ‫األطراف‬ ‫مع‬ ‫الوثيق‬ ‫االتصال‬ ‫من‬ ‫البد‬‫لمعنية‬ stakeholders  Deliver value continuously = ‫التسليم‬ ‫من‬ ‫أكثر‬  Satisfy customer = ‫العميل‬ ِ‫أرض‬ ‫السابقتين‬ ‫للنقطتين‬ ‫مباشرة‬ ‫نتيجة‬ ‫هذه‬:‫بسرعة‬ ‫تسلم‬ ‫حين‬,‫كثيرا‬ ‫التسليم‬ ‫توالي‬ ‫و‬,‫راج‬ ‫تغذية‬ ‫يأتيك‬‫باستمرار‬ ‫عة‬,‫فتحقق‬ ‫بسرعة‬ ‫العميل‬ ‫رغبات‬!
  • 10. ‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project delivering  Principle #2: Welcome Changing Requirements, Even Late In Development. Agile Processes Harness ( ‫يستخدم‬/‫يسخر‬ ) Change for the Customer’s Competitive Advantage (‫التنافسية‬ ‫.)الميزات‬  Welcome change = ‫التفكير‬ ‫طريقة‬ ‫في‬ ‫تغيير‬ ‫العميل‬ ‫من‬ ‫أو‬ ‫منك‬ ‫خطأ‬ ‫أنه‬ ‫على‬ ‫التغير‬ ‫مع‬ ‫التعامل‬ ‫عن‬ ‫توقف‬,‫وسعه‬ ‫في‬ ‫ما‬ ‫منكما‬ ‫كل‬ ‫بذل‬ ‫فقد‬ ‫المتطلبات‬ ‫جمع‬ ‫عن‬ ‫التوقف‬ ‫يعني‬ ‫ال‬ ‫هذا‬requirement gathering  Control Change ‫منعه‬ ‫محاولة‬ ‫من‬ ‫فعالية‬ ‫أكثر‬ ‫التغيير‬ ‫تسهيل‬! ‫التغيير‬ ‫كلفة‬ ‫من‬ ‫تقلل‬ ‫المستمرة‬ ‫الراجعة‬ ‫التغذية‬! ‫المتطلبات‬ ‫في‬ ‫التغيير‬ ‫هو‬ ‫هنا‬ ‫المقصود‬ ‫التغيير‬requirements‫مثال‬ ‫العميل‬ ‫إهمال‬ ‫عن‬ ‫الناشيء‬ ‫التغيير‬ ‫ليس‬ ‫و‬, ‫المخاطر‬ ‫إدارة‬ ‫ضمن‬ ‫يدخل‬ ‫فهذا‬risk management‫لل‬ ‫دخل‬ ‫ال‬ ‫و‬Agile‫فيه‬.
  • 11. ‫المشروع‬ ‫بتسليم‬ ‫مرتبطة‬ ‫مباديء‬Project delivering  Principle #3: Deliver Working Software Frequently, from a Couple of Weeks to a Couple of Months, with a Preference to the Shorter Timescale. ‫فوضى‬ ‫المشروع‬ ‫لجعل‬ ‫المستمر‬ ‫التقبل‬ ‫يتحول‬ ‫ال‬ ‫لكي‬‫تنظيمه‬ ‫من‬ ‫البد‬ ‫التسليم‬delivering‫دفعات‬ ‫على‬sprints‫قصيرة‬(‫لشهرين‬ ‫أسبوعين‬ ‫من‬)‫كل‬ ‫بداية‬ ‫في‬ ‫تكون‬ ‫التغييرات‬ ‫و‬‫دفعة‬, ‫العمل‬ ‫أثناء‬ ‫ليس‬ ‫و‬ ‫نفسه‬ ‫يراجع‬ ‫أن‬ ‫التغيير‬ ‫يطلب‬ ‫لمن‬ ‫فرصة‬ ‫يعطي‬ ‫هذا‬,‫ينض‬ ‫حتى‬ ‫وقته‬ ‫يأخذ‬ ‫التعديل‬ ‫في‬ ‫يفكر‬ ‫أن‬ ‫و‬‫ج‬ ‫التسليم‬delivering=!‫اإلطالق‬releasing
  • 12. ‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication  Principle #4: The Most Efficient and Effective Method of Conveying (‫)نقل‬ Information To and Within a Development Team Is Face-To-Face Conversation. ‫التوثيق‬documentation‫مهم‬,‫المب‬ ‫االتصال‬ ‫منه‬ ‫خير‬ ‫و‬ ‫المعلومات‬ ‫لنقل‬ ‫الوحيدة‬ ‫الوسيلة‬ ‫ليس‬ ‫لكنه‬‫اشر‬ (‫المرنة‬ ‫البرمجة‬ ‫ممارسو‬ ‫يعتقد‬ ‫كما‬,‫ذلك‬ ‫في‬ ‫قدوا‬ُ‫ت‬‫ان‬ ‫و‬) ‫فيه‬ ‫خالف‬ ‫ال‬ ‫ما‬: ‫مهم‬ ‫التوثيق‬,‫المباشر‬ ‫االتصال‬ ‫عن‬ ‫يغني‬ ‫ال‬ ‫لكنه‬
  • 13. ‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication  Principle #5: Business-people and Developers Must Work Together Daily Throughout the Project. ‫المرنة‬ ‫الفرق‬ ‫و‬ ‫التقليدية‬ ‫الفرق‬ ‫بين‬ ‫الفرق‬: ‫التقليدية‬ ‫الفرق‬ ‫في‬‫يتفاوضون‬‫العميل‬ ‫مع‬ ‫المرنة‬ ‫الفرق‬ ‫في‬‫يتعاونون‬‫العميل‬ ‫مع‬ ‫المستمر‬ ‫االتصال‬ ‫أهمية‬ ‫على‬ ‫للداللة‬ ‫اليومي‬ ‫االتصال‬,‫الحرفي‬ ‫لاللتزام‬ ‫ليس‬ ‫و‬(‫أف‬ ‫ذلك‬ ‫كان‬ ‫إن‬ ‫و‬‫بال‬ ‫ضل‬ ‫شك‬)
  • 14. ‫بالتواصل‬ ‫مرتبطة‬ ‫مباديء‬Communication  Principle #6: Build Projects Around Motivated Individuals. Give Them the Environment and Support They Need, and Trust Them to Get the Job Done. ‫المبدأ‬ ‫هذا‬ ‫تخالف‬ ‫عملية‬ ‫أمثلة‬: ‫البرمجية‬ ‫األخطاء‬ ‫عدد‬ ‫على‬ ‫المبرمج‬ ‫تقييم‬bugs‫عنه‬ ‫الصادرة‬(‫غير‬ ‫عن‬ ‫صادرة‬ ‫األخطاء‬ ‫كانت‬ ‫إذا‬ ‫خاصة‬ ‫إهمال‬)‫الحقيقية‬ ‫المشكالت‬ ‫عنك‬ ‫سيخفي‬ ‫األنظمة‬ ‫مختبري‬ ‫مكافأة‬testers‫يكتشفوها‬ ‫التي‬ ‫األخطاء‬ ‫عدد‬ ‫على‬‫الكيف‬ ‫دون‬ ‫بالكم‬ ‫سيهتم‬ ‫على‬ ‫بناء‬ ‫المحللين‬ ‫تقييم‬«‫كم‬»‫ينتجونها‬ ‫التي‬ ‫الوثائق‬‫الصفحات‬ ‫كثيرة‬ ‫وثائق‬ ‫سيخرجون‬,‫ق‬‫الفائدة‬ ‫ليلة‬ ‫ثقافة‬ ‫فيها‬ ‫تنتشر‬ ‫الريبة‬ ‫على‬ ‫المبنية‬ ‫الفاسدة‬ ‫البيئة‬«‫نفسك‬ ‫ن‬ِ‫أم‬»! ‫ثقافة‬ ‫فيها‬ ‫تنتشر‬ ‫الثقة‬ ‫على‬ ‫المبنية‬ ‫الصحية‬ ‫البئية‬«‫بالمسئولية‬ ‫اإلحساس‬»‫الم‬ ‫نجاح‬ ‫عن‬‫شروع‬.
  • 15. ‫المشروع‬ ‫بتنفيذ‬ ‫مرتبطة‬ ‫مباديء‬Project execution  Principle #7: Working Software Is the Primary Measure of Progress. ‫الحالة‬ ‫تقارير‬status reports‫كافية‬ ‫ليست‬ ‫المستمر‬ ‫التسليم‬ ‫ميزة‬continuous delivery‫مؤشرات‬ ‫تعطيني‬ ‫أنها‬,‫اإلطالق‬ ‫عند‬ ‫النهائي‬ ‫للهدف‬ ‫سأصل‬ ‫هل‬ releasing‫ال؟‬ ‫أم‬
  • 16. ‫المشروع‬ ‫بتنفيذ‬ ‫مرتبطة‬ ‫مباديء‬Project execution  Principle #8: Agile Processes Promote Sustainable (‫لالستمرار‬ ‫)قابل‬ Development. The Sponsors, Developers, and Users Should Be Able to Maintain a Constant Pace (‫ثابتة‬ ‫)وتيرة‬ Indefinitely (‫مسمى‬ ‫غير‬ ‫أجل‬ ‫.)إلى‬ ‫الحماسة‬ ‫فقد‬ُ‫ي‬ ‫و‬ ‫اإلنتاجية‬ ‫يقلل‬ ‫طويلة‬ ‫لساعات‬ ‫العمل‬motivation‫للعمل‬ ‫الموت‬ ‫مسيرات‬ ‫تجنب‬death marches ‫األسبوع‬ ‫في‬ ‫ثابتة‬ ‫عمل‬ ‫ساعات‬ ‫عدد‬ ‫على‬ ‫المحافظة‬(40‫ساعة‬( ‫سياسة‬20%‫قوقل‬ ‫في‬ ‫يشاء‬ ‫كما‬ ‫يقضيه‬ ‫الموظف‬ ‫وقت‬ ‫من‬Google(‫منذ‬2013‫السياسة‬ ‫هذه‬ ‫إيقاف‬ ‫تحاول‬)!! ‫عمليا‬,‫من‬ ‫أكثر‬ ‫العمل‬ ‫تجنب‬ ‫يمكن‬ ‫ال‬40‫األسبوع‬ ‫في‬ ‫ساعة‬,‫و‬ ‫االستثناء‬ ‫هو‬ ‫ذلك‬ ‫جعل‬ ‫هو‬ ‫عمله‬ ‫يمكن‬ ‫ما‬ ‫أقصى‬ ‫و‬ ‫األصل‬ ‫ليس‬.  Principle #9: Continuous Attention to Technical Excellence and Good Design Enhances Agility.
  • 17. ‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬ Improving Project and Team  Principle #10: Simplicity—the Art of Maximizing the Amount of Work Not Done—Is Essential.  Simplicity  Keep It Simple Stupid (KISS) ‫البرمجة‬ ‫مستوى‬ ‫على‬ ‫هذه‬development‫المنهجية‬ ‫و‬process  Work-less  You Ain’t Gonna Need It (YAGNI) 20%‫تستخدم‬ ‫الخصائص‬ ‫من‬80%‫الوقت‬ ‫من‬‫فالمهم‬ ‫األهم‬ ‫على‬ ‫ركز‬
  • 18. ‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬ Improving Project and Team  Principle #11: The Best Architectures, Requirements, and Designs Emerge (‫)تنبثق‬ from Self-Organizing Teams. ‫التقليدية‬ ‫الفرق‬:‫األوامر‬ ‫تنفذ‬ ‫المرنة‬ ‫الفرق‬:‫بنفسها‬ ‫قراراتها‬ ‫تأخذ‬self-organized teams ‫التخطيط‬ ‫في‬ ‫واحد‬ ‫شخص‬ ‫على‬ ‫يعتمد‬ ‫ال‬ ‫يخطط‬ ‫الفريق‬ ‫عليهم‬ ‫تفرض‬ ‫ال‬ ‫بأنفسهم‬ ‫مهامهم‬ ‫يختارون‬ ‫الفريق‬ ‫أعضاء‬ ‫فقط‬ ‫المشروع‬ ‫مدير‬ ‫أو‬ ‫قائد‬ ‫ليس‬ ‫و‬ ‫كله‬ ‫الفرق‬ ‫مسئولية‬ ‫المشروع‬ ‫نقد‬:‫األحوال‬ ‫لكل‬ ‫و‬ ‫الفرق‬ ‫لكل‬ ‫يصلح‬ ‫ال‬ ‫الفكرة‬ ‫هذه‬ ‫تعميم‬,‫الحسبان‬ ‫في‬ ‫باألخذ‬ ‫جديرة‬ ‫لكنها‬ ‫حديث‬:«‫أحدكم‬ ‫فأمروا‬ ‫ثالثة‬ ‫كنتم‬ ‫إذا‬» ‫للفريق‬ ‫قائد‬ ‫وجود‬ ‫األصل‬,‫االستثناء‬ ‫هو‬ ‫العكس‬
  • 19. ‫الفريق‬ ‫و‬ ‫المشروع‬ ‫بتطوير‬ ‫مرتبطة‬ ‫مباديء‬ Improving Project and Team  Principle #12: At Regular Intervals, the Team Reflects on How to Become More Effective, Then Tunes and Adjusts Its Behavior Accordingly. ‫باستمرار‬ ‫البرامج‬ ‫إنتاج‬ ‫في‬ ‫طريقته‬ ‫بتحسين‬ ‫يقوم‬ ‫حتى‬ ‫مرنا‬ ‫الفريق‬ ‫يكون‬ ‫ال‬,‫الم‬ ‫طريق‬ ‫عن‬ ‫ذلك‬ ‫و‬‫و‬ ‫راجعة‬ ‫المستمر‬ ‫التصحيح‬.
  • 20. ‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫مباديء‬ ‫المرنة‬ ‫األساليب‬ ‫كل‬ ‫في‬ ‫خاصا‬ ‫اهتماما‬ ‫ى‬َ‫ل‬‫يو‬ ‫اختبارها‬ ‫و‬ ‫البرامج‬ ‫بجودة‬ ‫االهتمام‬ ‫أن‬ ‫من‬ ‫الرغم‬ ‫على‬,‫ب‬‫هذا‬ ‫ل‬ ‫المرنة‬ ‫البرمجة‬ ‫لحركة‬ ‫األساسية‬ ‫اإلضافات‬ ‫من‬ ‫االهتمام‬,‫المبا‬ ‫من‬ ‫أي‬ ‫في‬ ‫مذكور‬ ‫غير‬ ‫االهتمام‬ ‫هذا‬ ‫أن‬ ‫إال‬‫ديء‬ ‫الذكر‬ ‫سالفة‬. ‫السابقة‬ ‫المتطلبات‬ ‫مشكالت‬ ‫حل‬ ‫من‬ ‫تفرغ‬ ‫حتى‬ ‫جديدة‬ ‫متطلبات‬ ‫تطوير‬ ‫في‬ ‫تبدأ‬ ‫ال‬ ‫االختبار‬ ‫اكتب‬unit test‫نفسه‬ ‫الكود‬ ‫كتابة‬ ‫قبل‬TDD ‫الدفعة‬ ‫انتهاء‬ ‫حتى‬ ‫التعديالت‬ ‫تجميد‬sprint ‫الثالث‬ ‫المبدأ‬ ‫في‬:‫لشهرين‬ ‫أسبوعين‬ ‫من‬ ‫دفعات‬ ‫على‬ ‫المستمر‬ ‫التسليم‬ ‫المبدأ‬ ‫هذا‬ ‫تكملة‬:‫دفعة‬ ‫كل‬ ‫بداية‬ ‫عند‬ ‫عتبر‬ُ‫ت‬ ‫التعديالت‬,‫ك‬ ‫تأجيل‬ ‫يتم‬ ‫الدفعة‬ ‫في‬ ‫العمل‬ ‫بدأ‬ ‫إذا‬ ‫لكن‬‫التعديالت‬ ‫ل‬‫قبلنا‬ ‫قليال‬ ‫أجلناه‬ ‫لكن‬ ‫التغيير‬! ‫سيناريو‬ ‫صورة‬ ‫في‬ ‫تكتب‬ ‫المتطلبات‬,‫موسع‬ ‫إما‬use case‫مقتضب‬ ‫أو‬user story
  • 21. ‫مكتوبة‬ ‫غير‬ ‫أخرى‬ ‫مباديء‬ ‫متغيرة‬ ‫و‬ ‫جديدة‬ ‫أدوار‬ ‫جديد‬:‫المنتج‬ ‫صاحب‬product owner ‫جديد‬:‫المنهجية‬ ‫مسئول‬agile coach/master ‫متغير‬:‫المدير‬ ‫مهام‬ ‫تقليل‬ ‫الفريق‬ ‫صفات‬: ‫ذاتي‬ ‫تنظيم‬ ‫ذو‬self-organized:‫بنفسه‬ ‫قراراته‬ ‫يأخذ‬ ‫المهام‬ ‫متعدد‬cross-functional:‫التخصصات‬ ‫كل‬ ‫يضم‬ ‫الفريق‬(‫المختبرين‬ ‫فيهم‬ ‫بما‬testers)
  • 22. ‫برشاقة‬ ‫التفكير‬Lean Thinking ‫اإلنتاج‬ ‫في‬ ‫نظامها‬ ‫و‬ ‫تويوتا‬ ‫شركة‬ ‫من‬ ‫البداية‬Toyota Production System‫عند‬ ‫اإلنتاج‬ ‫اسم‬ ‫تحت‬ ‫الحاجة‬just-in-time production,‫السم‬ ‫الحقا‬ ‫تطور‬ ‫الذي‬:Lean Manufacturing ‫الهدف‬:‫المخزون‬ ‫تقليل‬ ‫الهدر‬ ‫تقليل‬ ‫محور‬ ‫حول‬ ‫تدور‬ ‫تفكير‬ ‫طريقة‬ ‫و‬ ‫فلسفة‬ ‫هي‬reduce or eliminate waste ‫جدا‬ ‫ملهمة‬‫البرمجات‬ ‫صناعة‬ ‫بها‬ ‫تأثرت‬Lean Software Development‫األعمال‬ ‫عالم‬ ‫و‬ Lean Startups
  • 23. ‫الرشيق‬ ‫التفكير‬ ‫مباديء‬Lean Principles ‫التعهدات‬ ‫تأجيل‬Defer commitment ‫جيدة‬ ‫برامج‬build quality in ‫الكلي‬ ‫التحسين‬Optimize the whole ‫األفراد‬ ‫تقدير‬Respect people ‫سريعا‬ ‫التسليم‬Deliver fast–‫قبل‬ ‫من‬ ‫عنها‬ ‫تحدثنا‬ ‫الخبرات‬ ‫تعظيم‬Create Knowledge ‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste
  • 24. ‫التعهدات‬ ‫تأجيل‬Defer commitment ‫الالزمة‬ ‫المعلومات‬ ‫جميع‬ ‫لك‬ ‫تتاح‬ ‫حتى‬ ‫قراراتك‬ ‫أجل‬ ‫بالفعل‬ ‫تحتاجه‬ ‫أنك‬ ‫تتأكد‬ ‫حتى‬ ‫القرار‬ ‫أجل‬ ‫فاألقل‬ ‫أهمية‬ ‫األكثر‬ ‫المتطلبات‬ ‫نفذ‬
  • 25. ‫جيدة‬ ‫برامج‬build quality in ‫للمستخدم‬ ‫يظهر‬ ‫فيما‬ ‫جيد‬Perceived Integrity ‫األكمل‬ ‫الوجه‬ ‫على‬ ‫المستخدم‬ ‫احتياجات‬ ‫يحقق‬ ‫جيد‬‫نفسه‬ ‫في‬Conceptual Integrity= Unit testing + refactoring ‫المشكالت‬ ‫حدوث‬ ‫منع‬ ‫حاول‬ ‫ممكن‬ ‫وقت‬ ‫أسرع‬ ‫في‬ ‫المشكلة‬ ‫حل‬ ‫س‬ ‫العكسية‬ ‫التغذية‬ ‫لتأتيك‬ ‫كثيرا‬ ‫و‬ ‫سريعا‬ ‫سلم‬‫كثيرا‬ ‫و‬ ‫ريعا‬ ‫حللتها‬ ‫و‬ ‫مشكلة‬ ‫وجدت‬ ‫لو‬,‫ثاني‬ ‫تتكرر‬ ‫لن‬ ‫أنها‬ ‫تأكد‬‫ة‬
  • 26. ‫الكلي‬ ‫التحسين‬Optimize the whole ‫الكلية‬ ‫الصورة‬ ‫على‬ ‫الصغيرة‬ ‫قراراتك‬ ‫أثر‬ ‫من‬ ‫تأكد‬ ‫شيء‬ ‫لكل‬ ‫مستمرة‬ ‫قياسات‬ ‫ضع‬ ‫أعراضها‬ ‫ليس‬ ‫و‬ ‫جذرها‬ ‫حللت‬ ‫أنك‬ ‫تأكد‬ ‫مشكلة‬ ‫حدوث‬ ‫عند‬ Root cause analysis Five whys
  • 27. ‫األفراد‬ ‫تقدير‬Respect people ‫اإلعذار‬ ‫و‬ ‫التقدير‬ ‫و‬ ‫الدعم‬ ‫و‬ ‫الثقة‬=‫الفريق‬ ‫نجاح‬ ‫خلطة‬
  • 28. ‫الخبرات‬ ‫تعظيم‬Create Knowledge ‫قصيرة‬ ‫دفعات‬ ‫على‬ ‫سلم‬‫سريعا‬ ‫راجعة‬ ‫تغذية‬ ‫على‬ ‫تحصل‬‫بسرعة‬ ‫تتعلم‬
  • 29. ‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste ‫فقط‬ ‫للعميل‬ ‫مضافة‬ ‫قيمة‬ ‫يمثل‬ ‫ما‬ ‫اعمل‬,‫بسرعة‬ ‫اعمله‬ ‫و‬
  • 30. ‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste  Inventory (‫)مخزون‬ < -- > Partially done work  Incomplete features, Unchecked-in work, untested code, commented-out code…etc.  Overproduction < -- > Extra Features/Code/Functionality  Extra processing < -- > Relearning / Reworking  Transportation < -- > Handoffs without proper knowledge ‫آخر‬ ‫لمبرمج‬ ‫الكود‬ ‫نقل‬ ‫آخر‬ ‫لفريق‬ ‫البرنامج‬ ‫نقل‬:‫الجودة‬–‫التشغيل‬–‫العميل‬  Waiting < -- > Delays ‫اإلدارة‬ ‫موافقة‬ ‫انتظار‬–‫موارد‬ ‫توفر‬ ‫انتظار‬–‫آخر‬ ‫فريق‬ ‫عمل‬ ‫على‬ ‫االعتماد‬...‫إلخ‬  Defects < -- > Defects
  • 31. ‫الهدر‬ ‫إزالة‬ ‫و‬ ‫تقليل‬Eliminate waste  Motion < -- > Task switching  Relearning •‫الـ‬ ‫وظائف‬ ‫من‬Scrum Master ‫األساسية‬:‫ال‬ ‫بين‬ ‫التنقل‬ ‫تقليل‬‫مهام‬ •‫من‬ ‫المبرمج‬ ‫يحتاج‬15‫إلى‬45‫دقيقة‬ ‫اإلنتا‬ ‫و‬ ‫التركيز‬ ‫حالة‬ ‫في‬ ‫ليدخل‬‫جية‬
  • 32. ‫المرنة؟‬ ‫البرمجة‬ ‫أساليب‬ ‫شيوع‬ ‫مدى‬ ‫ما‬ ‫فورستر‬ ‫مؤسسة‬ ‫نشرتها‬ ‫دراسة‬ ‫في‬Forrester‫سنة‬2011‫بعنوان‬: Water-Scrum-Fall Is The Reality Of Agile For Most Organizations Today ‫الخالصة‬: ‫شائعة‬ ‫المرنة‬ ‫البرمجة‬ ‫أساليب‬,‫خالصة‬ ‫ليست‬ ‫لكنها‬Agile Is Popular But Not Pure ‫الدراسة‬ ‫عليه‬ ‫أطلقت‬ ‫ما‬ ‫هو‬ ‫شيوعا‬ ‫المناهج‬ ‫أكثر‬:Water-scrum-fall‫و‬ ‫التقليدية‬ ‫األساليب‬ ‫من‬ ‫هجين‬ ‫هي‬ ‫و‬ ‫سقرام‬ ‫أسلوب‬scrum‫سيئا‬ ‫أو‬ ‫حسنا‬ ‫ليس‬ ‫هذا‬ ‫و‬
  • 33. ‫المرنة‬ ‫المنهجيات‬ ‫على‬ ‫نظرة‬‫الشائعة‬ ‫المصدر‬:https://www.versionone.com/pdf/state-of-agile-development-survey-ninth.pdf