+201226238898
[email protected]
0
Login

Login with your site account

Lost your password?

MONA SHOKROF  –  Agile Coach and Trainer MONA SHOKROF  –  Agile Coach and Trainer
  • Home
  • Companies
  • Individuals
  • Online Courses
  • Practical Agile Blog
  • About me
  • Contact
  • Home
  • Companies
  • Individuals
  • Online Courses
  • Practical Agile Blog
  • About me
  • Contact
  • Home
  • القيم و المبادئ
  • القيم و المبادئ – القيم – Agile Manifesto

القيم و المبادئ

10 Apr

القيم و المبادئ – القيم – Agile Manifesto

  • By mona
  • In القيم و المبادئ
  • 11 comments

الAgile في الأساس هي طريقة تفكير بتركز جدا على قيمة ال(Software) اللي بنعمله ، و عشان كده بنتعامل مع التغييرات على أنها حاجة أساسية في الحياة و انها طريقة للتطوير ، و عشان نحافظ على ده يبقى لازم التعامل بين الفريق كله لحد العميل يتم بشكل واضح و قوي و شفاف ، و المفهوم ده هو الفرق الأساسي بين انك تشتغل (Agile )أو أنك تشتغل زي ال(Agile)
و طريقة التفكير دي مبنية علي قيم و مبادئ اتعرفت في الAgile Manifesto في سنة 2001 لما اتقابل اكتر الناس المهتمين بتطوير مجال (software development) و تطوير طرق الشغل بهدف اننا نشتغل اسرع و ب(process) خفيفة و غير معقدة

و قيم الAgile هي

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

مقياس الشغل اللي خلص من أي مشروع بيكون الجزء اللي شغال و جاهز للتسليم (Working Software) مش كود مكتوب و لسه مجربناهوش ولا (design document) ولا (wireframes) ،و كمان الجزء ده لازم يكون (scenario) بيضيف فايدة للي هيستخدم ال(software) ده.

و ده بيخلينا دايما مركزين اننا نخلص شغل جاهز و عدي بكل مراحل التسليم مش بناجل اي مرحلة زي ال(testing) أو ال (integration) في الاخر، و كده ان اللي خلص شغال و مش هيبقى فيه مفاجآت كبيرة في الاخر تخلينا نطول في الوقت أو نيجي على ال (quality).

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

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

و ده بيكون اسمه (Definition of done). و هو الاتفاق عن امتى يكون الشغل خلص، هل لما يخلص (Development)، ولا يخلص (development) و  (functional testing)  و الدنيا شغالة بس فيها (bugs) ولا لما نحل ال(bugs) ولا لما نخلص (security testing).

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

و كمان من ناحية تانية بتظبط التوقعات بالنسبة للوقت، يعني محدش هيقول للفريق انتو مسلمتوش ليه عشان فاهم انهم لسه مخلصوش (Development) في حين أنهم مش هيسلموا غير لما يحلوا ال(bugs) اللي عندهم

ممكن نضيف على ال (Definition of done) اي حاجة الفريق شايف انها لازم تتعمل قبل ما نقدر نسلم للعميل، و ساعة الاتفاق ممكن نتناقش في الحاجات دي لحساب التكلفة مقابل السرعة و حاجة العميل، المهم في الاخر نوصل كفريق لاتفاق نعرف نتعامل على أساسه و في نفس الوقت لا نوقع حاجة العميل محتاجها و مهمة في المشروع ده و لا نعمل حاجة زيادة نقدر نوفر شغلها لحاجات تانية أهم

و عشان نقدر نطلع بال(Working Software) على مراحل، لازم الفريق اللي شغال يكون فيه كل التخصصات اللي تقدر توصل بالشغل انه جاهز للتسليم، و الناس دي بتشتغل مع بعضها طول الوقت و ده اللي بنسميه ال( cross-functional team)

و دي نقطة مهمة جدا لأن من غيرها الشغل هيتعطل علي ما هيوصل لمرحلة ال(done) و بيترتب عليها اننا يكون عندنا حاجات كتير متعطلة لأن الباقيين شغالين و ال (integration) يتأخر و ال(feedback) يتأخر و واحدة واحدة بنخسر مميزات شغل ال(Agile) و نبقى شكلنا بس شغالين (Agile)

من أهم الحاجات اللي بنركز عليها و احنا بنشتغل (Agile) هي التواصل بين الفريق (Individuals and Interactions)، احنا بنقعد و نشرح و نسأل في الشغل اللي هنعمله و بعدين نكتب الكلام ده في (documents) أو (email) عشان يبقى مرجع لأن دي أفضل طريقة لتوصيل المعلومات و ان كل الفريق يبقى فاهم نفس الحاجة ،و عشان كده يفضل يكون الفريق قاعدين في نفس المكان أو متوفرلهم طرق تواصل يعتمد عليها عشان نعلي التواصل الفعال بينهم لأن هو ده

ال Agile في الأساس بيعتمد على الأفراد اكتر من المنظومة، و سهولة التعامل بينهم أساسية عشان بتضمن التطوير المستمر في الشغل و في طريقة الشغل و ان ال( Inspection and Adaption) يكون فعال، فكل ما الفريق كان متحمس و مدعوم من مديرينه و واثقين فيه كل ما كان مسئول اكتر عن الشغل و النتائج و قدر يحسن فيهم اكتر

وأهم حاجة عشان التطور المستمر هو اننا نفحص اللي وصلنا ليه و نطور فيه (Inspect and adapt )،و احنا بنعمل ده على مستوى الشغل لما بناخد بدري (feedback) من العميل و ممثله، و كمان على مستوى طريقة الشغل لما بنقعد كفريق نتاكد اننا بنشتغل بالطريقة الصح و نشوف المشاكل اللي عندنا و نقلها، و دايما ده بيحصل على فترات محددة مثلا كل أسبوعين، يعني المفروض كل أسبوعين يكون عندنا تطور ملموس في طريقة الشغل و التعامل بين الفريق و طبعا فيه إنجاز بس الشغل نفسه و معمول حساب تغييرات العميل.

طبعا من أهم الحاجات في اي مشروع هو التخطيط، بس ببيجي تغييرات من العميل أو من ظروف المشروع أو من الفريق و الخطة بتتلخبط، و مفيش مشروع من غير تغييرات، بس بدل ما نتعامل معاه انه حاجة وحشة عشان هتلخبط الخطة بالعكس احنا ممكن نظبط الخطة انها تقبل التغيير بأقل تكاليف( Responding to change)، في الاخر مصلحة الشغل أهم من الخطة نفسها

و عشان نقدر نتعامل مع التغيير بسهولة و أقل التكاليف، لازم نفكر في الشغل بطريقة مختلفة، فكرة اننا نشتغل على أجزاء صغيرة تكون تضيف فايدة للمستخدم و تكون جاهزة للتسليم و نشتغل على أهم الأجزاء في الاول، و كده بنبقي قادرين نغير في باقي المطلوب بسهولة لأننا ببساطة معملناش فيه حاجة، و ده مختلف عن اننا نبدا (Development) لكل حاجة و بعدين (integration) و (testing) في الاخر، النظام الأخير بيخلينا نرمي الشغل كل ما التغيير يتأخر.

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

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

كمان عشان نقدر نتعامل مع التغييرات بسهولة، لازم نعمل حسابنا في الشغل من الاول على أننا اكيد هنغير، نبدأ نعمل حسابنا في ال(technical design) أننا نطبق مبدأ (loosely coupled ) و منحطش (design) معقد و كبير في الاول يبقى عقبة كبيرة في الاخر و ده مبدأ ال (evolutionary design)

و مهم جدا كمان ال(unit testing) و ال(testing automation) و ده اننا نبقى عندنا ال(testing) بيشتغل (automatic )على الحاجات اللي خلصانة بحيث اني لو عدلت في حته صغيرة يبقى سهل اتأكد اني مبوظتش حاجة تانية

عشان كده ال(technical excellence) للفريق اللي شغال حاجة مهمة جدا في ال(agile) عشان بيخليهم يبقوا قادرين يشتغلوا على التغييرات بأقل تكلفة و بسرعة

من اسوء الحاجات اللي ممكن تحصل اننا نعمل (Software) محدش بيستخدمه و مش بيضيف أن قيمة للعميل، في الاخر هو كده ضيع فلوسه و كانت تجربته مع الشركة غير مرضية حتى لو الشغل اتسلم في وقته و كويس، و الاسوء بقى لو (Product) للشركة و مش بيحقق الهدف منه، أو اننا نعمل( features) كتير صعبة و معقدة و محدش فاهمها ولا بيستخدمها أو اننا نركز على (module) معين مع ان المستخدمين يهمهم حاجة تانية و احنا سايبينها قديمة و فيها (bugs) و برده مش بيستخدموها.

عشان كده ال(Customer Collaboration) و هو تعاون العميل مع فريق العمل مهم جدا سواء صاحب الشغل أو المستخدم النهائي و خصوصا اننا ناخد منه( Feedback) عن الشغل اللي خلص اول بأول و كمان ننزل ال(scenarios) اللي خلصت اول بأول للعميل حتى لو ده هينتج عنه تغييرات بس في الاخر بيضمن نجاح  اكتر للمشروع و رضا اكتر للعميل لأن العميل ممكن ميكونش متخيل الاستخدام الأمثل للحاجة في أول المشروع غير لما يشوف حاجة جاهزة و يستخدمها و يبدأ يفكر في الاحتياجات الحقيقية و يقول يا سلام لو نزود الحته دي

و ال(Customer Collaboration) مش بس انه يوافق على الشغل أو يعدل فيه، لا هو كمان بيحط أولويات لل(scenarios) الاهم اللي عايزها تخلص الأول و يرتب الباقيين ، و لما بيبقى فيه تغييرات بيشارك في قرار هل نمد الوقت ولا نغير في الأولويات ولا نقسم الشغل لمراحل ، و كمان لو الفريق عنده أسئلة في وسط الشغل بيسألوا العميل أو الممثل ليه في الشركة و المفروض الرد يكون سريع و كافي

و هنلاقي ان القيم دي كلها مرتبطة ببعض و مكملة لبعض ،يعني صعب نقدر نوصل لثقة العميل و انه يكون متحمس لل(Customer Collaboration) غير لو كنا بنقدر نوريله (Working Software) يقدر يحكم عليه و التواصل مع العميل لازم يكون مظبوط ، و صعب نقدر نلبي تغييرات العميل (Respond to Change) و في نفس الوقت نطلع ب(Working Software) من غير ما يكون الفريق متحمس و مفيش مشاكل في التواصل بينهم ولا تاخير في توصيل المعلومات (Individuals and Interactions)

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on Google+ (Opens in new window)

Related

Tags:AgileManifestoprinciplesvalues
  • Share:
Admin bar avatar
mona

    Comments

Leave A Reply Cancel reply

Your email address will not be published. Required fields are marked *

Featured Courses

Scrum Master Complete Guide

Scrum Master Complete Guide

ده كورس للناس اللي مهتمة انها تطور نفسها ك Scrum...
Free
One student enrolled
9 lessons
mona
Agile Project Management: Requirements, Planning and Tracking on Udemy

Agile Project Management: Requirements, Planning and Tracking on Udemy

What are the criteria for the success of any software...
$13.08
220 students enrolled
14 lessons
mona
Scrum Master Professional Certification, Real cases and Exam Simulation on Udemy

Scrum Master Professional Certification, Real cases and Exam Simulation on Udemy

Have you ever wondered what is the secret to deliver...
$15.00
3625 students enrolled
37 lessons
mona
Agile 101 بالعربي on Udemy

Agile 101 بالعربي on Udemy

يا تري ممكن في مجال الsoftware نسلم مشروعنا في ميعاده...
Free
750 students enrolled
13 lessons
mona
LP Courses

Get in touch

+201226238898

[email protected]

Useful Links

  • About me
  • Blo
  • Contact
  • Online Courses
  • Success Stories
  • Agile Coaching
  • The Practical Agile Blog

Social Links

  • Facebook
  • Twitter
  • Linkedin
  • Youtube

Newsletters

Subscribe to get updates right in your inbox. We promise to not send you spams.

  • Home
  • About
  • Agile Coaching
  • Events
  • Contact