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

Post on 20-Dec-2015

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

XP programming

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.

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

4

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

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

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

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

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

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

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

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

5

XP מה מיוחד ב

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

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

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

6

ערכי היסוד

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

פשטות

היזון חוזר

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

7

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

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

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

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

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

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

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

8

Pair Programming

9

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

10

ערכי היסוד

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

פשטות

היזון חוזר

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

11

XPפשטות

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

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

12

ערכי היסוד

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

פשטות

היזון חוזר

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

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

14

ערכי היסוד

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

פשטות

היזון חוזר

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

15

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

17

Software production processes

18

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

בכל איטרציה

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

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

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

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

Velocity=story points

19

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

20

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

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

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

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

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

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

21

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

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

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

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

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

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

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

22

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

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

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

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

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

23

תכנות

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

24

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

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

גבוי מובנה•

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

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

מיקוד משופר•

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

25

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

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

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

נוספים

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

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

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

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

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

26

X-Unit

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

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

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

27

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

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

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

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

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

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

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

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

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

28

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

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

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

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

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

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

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

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

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

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

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

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

29

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

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

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

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

איכות

לוחות זמנים

תהליכים

מורל

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

30

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

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

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

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

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

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

B Bac

31

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

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

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

XPב •

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

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

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

B Bac

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

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

34

What makes XP familiar?

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

top related