Tuesday, October 28, 2008

Session 06: Agile Principles 10, 11, 12

The final session about the Agile principles:


Simplicity –the art of maximizing the amount of work not done– is essential.

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



The best architectures, requirements, and designs emerge from self-organizing teams.

إن أفضل البنيات والمواصفات والتصميمات تنبثق من فرق العمل ذاتية التنظيم.



At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

على فريق العمل أن يفكر مليا، على فترات منتظمة، في كيفية رفع كفاءته وفاعليته، ثم يعدل سلوكه وفقا لذلك.


This time each team had to research to find out what is the principle the team will discuss, so they learn how and where to find more information about Agile.


Soft Skill:
Because this session took longer than the allowed time we had to postpone the soft skill to the next session.

Session 05: Agile Princilples 7, 8, 9

More with the Agile practices:


Working software is the primary measure of progress.

البرنامج الصالح للعمل هو المقياس الرئيسي للتقدم.



Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

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



Continuous attention to technical excellence and good design enhances agility.

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


The participants divided into three groups each group recived a printed principle  but with a mixed-up word they had to descramble it then discusse it and explain it to the other groups.


Soft Skill:
Dealing with conflict.
Every participant had a questionnaire to test how he usually acts in different conflict situations, the results will be discussed next session.

Saturday, October 25, 2008

Dr. Ahmed Sidky in .NetWork.org gathering.

Today I attended a great session presented by Dr. Ahmed Sidky entitled "Introduction to Agile Development" and organized by the great group .NetWork.org. I heard about Dr. Ahmed before but never met him in person, from his session I can tell he has a great personality and a lot of passion about Agile and introducing it to Egypt. I also liked the growing interest about Agile methodologies in Egypt. Here are my notes from the session:
  • Dr. Ahmed will have his book Becoming Agile published soon.
  • Agile is a new way of thinking for making software, so minds need to be reformatted first :).
  • Agile is common-sense but collected and written in a formal form.
  • I especially liked the introduction case if the customer has only enough money to pay for one day of work, what is the best thing we can do? Of course a small working product of the highest value features to the customer, not a prototype or a design document.
  • Then we discussed the differences between defined process and empirical process and why software development is considered an empirical process.
  • Another point I liked is explaining why people fight changes, simply because the more time spent doing something the more attached to it, that's why Agile encourage shorter iterations.
  • Then came the point I totally agree with Dr. Ahmed in, that is no matter what practices you are doing or what process you are following, without everyone in the team is fully understands the values and principles of Agile you will not be completely agile. I personally experienced this in my work and that's way I'm doing more Agile training to my team.
  • We are “Value Providers”.
From the after-session discussion I noticed that a lot of people need more information about Agile to start working. So here are some of the links I found useful for me while learning and I hope they be helpful for you to:
My personal advice is to first make sure everyone understands the Agile values and principals then start with Scrum because it is easier to follow in conjunction with whatever development methods you are using right now and then you can add more practices later.
Overall the day was great and I met very interesting people, I hope I see more and more progress in the Agile community in Egypt.



Tuesday, October 21, 2008

Session 04: Agile Princilples 4, 5, 6

Contioue with the rest of the principles.


Business people and developers must work together daily throughout the project.

يعمل كلاً من مسئولي الأعمال والمطورين معاً يومياً خلال فترة المشروع.



Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

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



The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

أكثر الطرق فاعلية وتأثيراً لتوصيل المعلومات إلى وبين أفراد فريق التطوير هي التخاطب وجهاً إلى وجه.


The participants divided into three group each group discussed one principle and explained it to the other groups.


Soft Skill:
Simple, complex as explained in Combining Simplicity and Complexity

Session 03: Agile Principles 1, 2, 3.

After understanding the values behinde Agile, it is time to discuss the principles, we will discuss three principle every session.



Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

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



Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

اسمح بالتغييرات على الرحب والسعة حتى في مراحل التطوير المتأخرة. فالمنظومات الرشيقة تسخر التغير لصالح الميزة التنافسية للعميل.



Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

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



Every participant had to fill in a questionnaire that includes questions about customer value, Delivery period and the effects of changes. Then we discussed the results together.

1. In your opinion, how important is customer satisfaction?
 Not important  Somehow important  Important  Very important  The most important

2. Suggest three things to guarantee customer satisfaction: 

3. How much do you think that the custom can wait before seeing a working product?
 1 to 7 days  1 to 2 weeks  2 to 4 weeks  1 to 2 months

4. What are the most important three things the customer is looking for in his product?

5. What are the most critical phases for changing the requirements during the SDLC?


Soft Skill:
How to introduce yourself to a group.

Session 02: The Agile manifesto.

By now all the team know about Agile is Scrum, but they don't know how it is all started, and why.

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.
Customer collaboration over contract negotiation.
Responding to change over following a plan.

That is, while there is value in the items on 
the right, we value the items on the left more.

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

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

ويعني ذلك أنه على الرغم من أن العناصر على الجانب الأيسر تعد ذات أهمية كبيرة،
فإننا نعطي قيمة أكبر للعناصر على الجانب الأيمن.

I divided the participant into four group each group took two value one from the left and one from the right, they try to find the relation between the two values and the which one is more valuable that the other, then every group will present there conclusion, hopefully it matches one of the Agile values.

Soft Skill:
Soft skill was how to give instruction.

Session 01: Software Development Life Cycle.

For the first session we will discuss about the famous SDLC we all know about, I noticed when people starts to introduce Agile the first thing they do is to show how bad the traditional life cycle is. I don't think they mean that literally. I think the SDLC is essential but the understanding and the application of it in real life is wrong. That's why i want everyone to know what are the phases every software project goes through and what is the best way to apply this in the projects.


Discussion Questions:
Student will be divided into small groups and discuss the following questions:
  • What are the advantages and disadvantages of the waterfall model? And what can we do to avoid the disadvantages?
  • Can a software project skip any phase of the SDLC?
  • How much of every phase is really required?
  • What is the relation between the phases?
  • Who is responsible of every phase?
  • Way it drown why it is looks like a stare? And why it is called waterfall?
  • What other models exists? And what additions they provide?
I believe this is an essential knowledge for everyone to be able to discuss the Agile methods later.

Soft Skill:
The soft skill for this session is the differences between (Teacher, Coach, Tutor, Lecturer and Facilitator)

Every line of the following will be printed in a piece of paper and everyone will take one and try to find there matches.

Instructor معلم
Someone explaining how to assemble a rifle.
شخص يبين طريقة تركيب المسدس.

Teacher مدرس
Someone preparing a class of Primary 6 children for their PSLE.
شخص يعد الاطفال لامتحان الابتدائية.

Trainer مدرب
Someone preparing a group of athletes to run a marathon.
شخص يعد الرياضيين لسباق الماراثون.

Facilitator مُيسر
Someone encouraging workers to find ways to increase their employability.
شخص يشجع الموظفين لتحسين قدراتهم الوظيفية.

Lecturer محاضر
Someone giving prepared lessons to a group of university students.
شخص يعطي دروس مجهزة لمجموعة من طلاب الجامعة.

Tutor مدرس خاص
Someone helping a student to prepare for a test.
شخص يساعد طالب للاعداد للامتحان.


Agile sessions at Majisa.

I started to facilitate a series of short sessions in my company about the Agile practices. Now after a almost two years of using Scrum there, I still feel we are not fully implementing it. So, I thought that giving the team some information about the Agile concepts will help them and start acting according to something they believe of not something they told to do. 

The sessions will be only 30 min each every Sunday and Wednesday so there will be a small topic every session and I'll try it to be based more on discussions rather than lecturing.

I'll start by the Agile manifesto the Agile principles then we will pick one practice every session and discuss how can we implement it in our company. I tried to translate as much of the subject to Arabic as possible so everyone can understand and to benefit the Arabic readers of this blog. 

I'll also try to include some soft skills in the beginning of every session. 

I'll post what we will discuss every session here with links to some resources and then post the results of the discussions so the blog readers can benefit from the posts and add more discussions through the comments.