Sunday, November 2, 2008

Agile manifesto and principles Arabic translation. Complete

Manifesto for Agile Software Developmentاعلان تطوير البرمجيات الرشيقة
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.
ويعني ذلك أنه على الرغم من أن العناصر على الجانب الأيسر تعد ذات أهمية كبيرة،
فإننا نعطي قيمة أكبر للعناصر على الجانب الأيمن.



Principles behind the Agile Manifesto
مبادئ البرامج الرشيقة
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.قدم برامج صالحة للعمل على فترات، من أسبوعين إلى شهرين، مع مراعاة أفضلية قصر الفترة الزمنية.
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.أكثر الطرق فاعلية وتأثيراً لتوصيل المعلومات إلى وبين أفراد فريق التطوير هي التخاطب وجهاً إلى وجه.
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.الاهتمام المستمر بالتفوق التقني وكذلك التصميم الجيد يعززان القدرة على الحركة الرشيقة.
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.
على فريق العمل أن يفكر مليا، على فترات منتظمة، في كيفية رفع كفاءته وفاعليته، ثم يعدل سلوكه وفقا لذلك.

Saturday, November 1, 2008

Session 08: Agile practices. Building the agile house.

Starting from this session we will discuss best known Agile practices and see which we are already doing, which we are not, which we are doing now but need to improve, which we need to do and which we will never do.
I started by explaining the relation between the Agile values, principles and practices as I imagine them as building a house the values are the foundations, the principles are the pillars and the practices are the bricks or the materials that fill the house and make its shape, depending of the type of materials and how much will define the type of Agile method you are using. Ofcourse this is not a very accurate or complete idea but it helps connecting the different parts.

I then listed the practices I'm aware of and gave a brief introduction about each one. Then weordered them by importance so we can start with the next session.

The are practices:
Pair Programming
Energized Work
Informative Workspace
Root-Cause Analysis
Retrospectives
Trust
Sit Together
Real Customer Involvement
Ubiquitous Language
Stand-Up Meetings
Coding Standards
Iteration Demo
Reporting
“Done Done”
No Bugs
Version Control
Ten-Minute Build
Continuous Integration
CollectiveCode Ownership
Vision
Release Planning
The Planning Game
Risk Management
Iteration Planning
Slack
Stories
Estimating
Incremental Requirements
Customer Tests
Test-Driven Development
Refactoring
Simple Design
Incremental Design and Architecture
Spike Solutions
Performance Optimization
Exploratory Testing



Session 07: Retrospective

I thought it will be for better this session to discuss what we did so far and if we need to change anything to make this sessions better. We also reviewed quickly the values and principles of Agile manifesto and I was so happy to find out that the team remembered them very well.


Soft Skill:
We reviewed the results of the questionnaire and everyone knew his style in dealing with conflicts, The five types are:
A- Ignore it.
B- Give in.
C- Win/Lose.
D- Compromise.
E- Cooperate.
It is very important to try to be cooperative as possible while dealing with a conflict, so we divided into pairs and each pair imagined afictitious conflict and try to cooperate to find a solution.