אתר הידע למקצועני it xp programming. 2 extreme programming (xp) xp הינה...

34
עעע עעעע עעעעעעעעIT XP programming

Post on 20-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

IT אתר הידע למקצועני

XP programming

Page 2: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

2

eXtreme Programming (XP)

•XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP

• XP פותחה לראשונה על ידי Kent Beck בפרוייקט אמיתי Daimler Chryslerעבור

•XPמנתצת מספר הנחות יסוד של הנדסת תוכנה

•XPמאפשרת הפקת תוכנה איכותית תוך הגברת היצרניות

•XP is a lightweight methodology for small to medium sized teams developing software in the face of vague or rapidly

changing requirements. --Kent Beck.

Page 3: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

3

מה אומרים החכמים

XP is the most important movement in our field today.

I predict that it will be as essential to the present generation as the SEI and its Capability Maturity Model were to the last

Tom DeMarco

Page 4: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

4

XP בשבעה משפטים

מבוססת על צוותים קטנים שעובדים בזוגות עם רמת 1.תקשורת גבוהה

בדיקות התוכנה מבוצעות מיד עם התחלת הפיתוח2.

אינטגרציה של המערכת מבוצעת על בסיס יומי3.

מונחית על ידי תרחישים עסקיים טכניקות יחודיות להערכת 4.זמן ועלות

)Refactoringהתוכניות עוברות שיפור מתמיד (5.

כמות התיעוד הנדרשת נשמרת כמינימום הכרחי6.

בכל שלב נתון המערכת היא הפשוטה ביותר שיכולה לעבוד7.

Page 5: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

5

XP מה מיוחד ב

•XPמבוסס על טכניקות ידועות ויעילות במיוחד

•XP הקיצונית מחייב שימוש בטכניקות אלו בדרגה ביותר

•XP מתיימר להיות קל וגמיש

Page 6: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

6

ערכי היסוד

תקשורת בין אישית

פשטות

היזון חוזר

אומץ מקצועי / ניהולי

Page 7: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

7

XP תקשורת בין אישית בצוותי

משתמש אמיתי כחבר צוות קבוע•

תכנות בזוגות•

בעלות משותפת על הקוד•

תכנון ודיווח תדיר בשיתוף עם הלקוח•

open workspaceעבודה במרחב פתוח •

אינטגרציה רציפה של הקוד•

Page 8: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

8

Pair Programming

Page 9: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

9

זה לא תכנות בזוגות

Page 10: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

10

ערכי היסוד

תקשורת בין אישית

פשטות

היזון חוזר

אומץ מקצועי / ניהולי

Page 11: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

11

XPפשטות

תכנן ובצע את הפתרון הפשוט ביותר שיכול •לעבוד

פשט ושפר את העיצוב באופן מתמיד •refactoring

Page 12: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

12

ערכי היסוד

תקשורת בין אישית

פשטות

היזון חוזר

אומץ מקצועי / ניהולי

Page 13: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

13

היזון חוזר מהיר

כתוב מקרי ניסוי לפני קוד•

משפט המפתח הוא:אל תשאל אותי, נשאל את •המערכת

•Until the test run you are not done

•Develop in small releases–And even smaller iterations

•And even smaller tasks–and even smaller test

Page 14: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

14

ערכי היסוד

תקשורת בין אישית

פשטות

היזון חוזר

אומץ מקצועי / ניהולי

Page 15: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

15

XPאומץ מקצועי/ניהולי

לשכנע את הלקוח להקטין את טווח המהדורה•

לפתח רק את מה שהכרחי לאיטרציה הקרובה•

לבצע שינויים לשיפור מבנה הקוד•

להשליך לפח קוד פגום•

לתת ללקוח סמכות לקבל החלטות עסקיות שיש להן •השפעה על המערכת

להסתיע ככל האפשר בחברי צוות אחרים כולל •הלקוח

לא למתוח את העבודה מעבר לגבול העייפות•

לשנות ולבצע התאמות לתהליך אם הוא לא אפקטיבי•

Page 16: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

16

Overall XP process

System

New requirements

Requirements

gathering

Stories

Acceptance test scenarios

Planning Game

Start

Iteration ReleaseCode

Failed tests

Not completed acceptance testsNot completed tasksNew velocity estimate

Stories to implement

Page 17: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

17

Software production processes

Page 18: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

18

תכנוןהתכנון והבדיקות מבוססים על התרחישים שמוגדרים •

בכל איטרציה

Time box שבועות: 2-4האיטרציות בנות •

בכל איטרציה משפרים ומעדנים את הערכת קצב •ההתקדמות

בכל איטרציה מבצעים תכנון מחודש•

Stand-up Meetingבכל יום מקיימים •מהירות ההתקדמות נמדדת על פי מספר הסיפורים•

Velocity=story points

Page 19: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

19

מה מנווט את התכנון•Scope•Time•Resources•Quality

Page 20: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

20

מגילת הזכויות של מפתח

הנך רשאי לדעת מה נדרש עם הגדרת סדר •עדיפות ברורה

הנך רשאי לייצר עבודה איכותית כל הזמן•

הנך רשאי לבקש ולקבל סיוע מלקוחות , •עמיתים, מנהלים

הנך רשאי לקבוע ולעדכן את אומדני הזמן •שלך

הנך רשאי להסכים לתחומי האחריות שלך •במקום שיוטלו עליך

Page 21: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

21

מגילת הזכויות של לקוח

זכותך לקבל תוכנית עבודה, לדעת מה ניתן להשגה ,מתי •ובאיזה מחיר

זכותך לקבל את הערך המכסימלי מכל שבוע של תכנות•

זכותך לראות התקדמות במונחים של מערכת רצה ועוברת •מבחני קבלה על נתונים באחריותך

זכותך לשנות את דעתך , להחליף פונקציונליות, לשנות •עדיפויות, ללא צורך בתשלום מופרז

זכותך לקבל דיווח על שינוי לוחות זמנים, כך שיתאפשר לך •לשנות טווח ולעמוד בלוח הזמנים המקורי,

זכותך להפסיק את הפרויקט בכל עת ולהישאר עם תת •מערכת עובדת

Page 22: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

22

עקרונות עיצוב)5-95פשטות(עקרון •

• (You aren’t gotta need it!) YAGNI

לעיצוב המחלקותCRCכרטיסי •

פתרונות נקודתיים מהירים•

•Refactoringתמידי בכל זמן ובכל מקום

Page 23: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

23

תכנות

התכנות חייב להתבצע בזוגות•כל שורת קוד נכתבת על ידי שני בני הזוג•בצע אינטגרציה פעם ביום•הקוד הוא נחלת צוות הפיתוח כולו•כל צוות יכול לעדכן לפי הצורך קוד שלא נכתב על ידו•הזוגות מתחלפים בתדירות•דחה אופטימיזציה לסוף•המנע משעות עבודה נוספות•יש לשמור בקפדנות על תקני התכנות•הקוד הוא התיעוד•עזרה הדדית היא עקרון יסוד בעבודת הצוות•

Page 24: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

24

היתרונות של תכנות בזוגות

איכות משופרת-קריאת עין מבוצעת כחלק מהתהליך•

גבוי מובנה•

כתיבה לפי תקנים•

מכשיר מעולה לקידום תוכניתנים •מתחילים/מצטרפים חדשים לפרוייקט

מיקוד משופר•

שביעות רצון משופרת מהעבודה•

Page 25: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

25

בדיקותכתוב מקרי ניסוי לפני הקוד•

unit testלכל יחידת קוד צריך להיות •הכנה מוקדמת של מקרי הניסוי מחייבת חשיבה מהיבט הלקוח•הכנה מוקדמת מחייבת הפעלה נכונה של חוקים לחלוקה נכונה •

למודולים/אובייקטים ברי בדיקההעיצוב הכולל איכותי יותר•לאחר ביצוע מוצלח של הטסטים הראשונים חשוב על מקרי ניסוי •

נוספים

unit testלא ניתן לשחרר קוד לפני שעבר נהצלחה •

unit test כאשר מוצאים באג יש לבצע מחדש את ה•

מבחני קבלה מבוצעים בתדירות גבוהה והתוצאות מפורסמות•

כל הבדיקות חייבות להיות אוטומטיות!!!•לאחר שכל הטסטים עברו בהצלחה שפר את איכות התכנות ורק •

אז בצע אינטגרציה

Page 26: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

26

X-Unit

Unitתוכנה חופשית המשמשת כמסגרת לניהול והרצת •tests

XP המייסד של Kent Beckפותחה על ידי •

קימות גרסאות לרב שפות התכנות•

Page 27: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

27

XP במה מתבטאת הקיצוניות של

הוא טוב, הבה נקצין את התהליך ונבצע code inspection אם •code inspection כל הזמן

הוא חשוב נדאג לכך שנבצע זאת כל הזמן unit testingאם •ולכל שינוי

חיוני הבה נבצע זאת כל יום application testingאם •

הוא חיוני הבה נבצע זאת לפחות acceptance testingאם •בכל איטרציה

אם עיצוב נכון הוא חשוב הבה נעביר את האחריות לאיכות •העיצוב לכולם

אם לוגיקה פשוטה ומתועדת חשובים לתחזוקה, הבה נשקיע •בכל שינוי מעבר למה שנדרש בשינוי עצמו על מנת להגיע

לאופטימיזציה של המערכת

אם אנשים אוהבים להפעיל חושים טבעיים, הבה ניתן להם •להתבטא בצורה מירבית

Page 28: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

28

הפעלת החושים הטבעיים

אנשים אוהבים לנצח/להצליח•

אנשים אוהבים היזון חוזר מהיר•

אנשים אוהבים אינטראקציה עם עם אנשים אחרים•

אנשים אוהבים להיות חלק מצוות•

אנשים אוהבים תהליכים בשליטתם•

אנשים אוהבים שנותנים בהן אמון•

אנשים אוהבים לבצע משימות באיכות טובה•

אנשים אוהבים שהתוכנה שלהם עובדת•

אנשים אוהבים להינות מעבודתם•

אנשים אוהבים שינויים הדרגתיים•

•XP"יונק מהתנהגותם של אשפי תוכנה "פראיים

Page 29: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

29

היזון חוזר מהיר

הלימוד הטוב ביותר קורה כאשר הזמן בין הפעולה •והיזון החוזר קצרים ככל האפשר

ההיזו החוזר עובר תהליך מהיר של הפקת לקחים •ושילוב מידי באיטרציה הבאה

קבל היזון חוזר ל:•

איכות

לוחות זמנים

תהליכים

מורל

אחוז גמור90לא עוד סינדרום •

Page 30: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

30

עבודה איכותית

אף אחד לא אוהב עבודה רשלנית•

כל אחד אוהב עבודה איכותית ומוערכת•

10הציון היחידי שניתן לקבל עבור איכות היא •

עבודה לא איכותית גורמת לתסכול וחוסר •הנאה

עבודה לא איכותית הורסת את הפרוייקט•

B Bac

Page 31: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

31

שינויים הדרגתיים

שינויים גדולים שמבוצעים בבת אחת אינם •עובדים

כל בעיה נפתרת על ידי סדרה של שינויים •קטנים

XPב •

התכנון משתנה בצורה הדגתית•

העיצוב משתנה בצורה הדרגתית•

הצוות משתנה בצורה הדרגתית•

B Bac

Page 32: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

32

What makes XP different?

• Its early, concrete, and continuing feedback from short cycles

• Its incremental planning approach, which quickly comes up with an overall plan that is expected to evolve through the life of the project

• Its ability to flexibly schedule the implementation of functionality, responding to changing business needs

• Its reliance on automated tests to demonstrate the presence of features

• Its reliance on oral communications, tests, and source code to communicate system structure and intent

Page 33: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

33

What makes XP different? (continued)

• Its reliance on an evolutionary design process that lasts as long as the system lasts

• Its reliance on the close collaboration of programmers

• Its reliance on practices that work with both the short-term instincts of programmers and the long-term interests of the project

Page 34: אתר הידע למקצועני IT XP programming. 2 eXtreme Programming (XP) XP הינה מתודולוגיה קלת משקל המיישמת את מינשר ה AP XP פותחה לראשונה

34

What makes XP familiar?

• XP matches the behavior of successful programmers in the wild– Tests– Refactoring– Evolutionary delivery– Incremental planning– Low overhead