בראיונות רבים, סביר להניח שישאלו אותך על מתודולוגיות. זו לא השאלה הכי חשובה או קשה, אבל זה יהיה נחמד להחזיק דף רמאות. במאמר זה ננסה להעביר מהי מתודולוגיית פיתוח ולהשוות ביניהם. מתודולוגיית פיתוח תוכנה היא תהליך המשמש לפיתוח מוצר מסוים, כלומר, זוהי דרך אחת לארגן פיתוח על ידי צוות מפתחים. ישנם הרבה מודלים שונים של פיתוח, שכל אחד מהם מגדיר את הגישה שלו. אי אפשר לומר שצריך להשתמש בכל אחד מהם לכל פרויקט. הגישה הנכונה תלויה לחלוטין בסיטואציה. אני מתכוון לשקול שלושה מהם בפירוט רב יותר.
יתרונות:
אנסה להסביר בקצרה את מהות המתודולוגיה באמצעות מילים פשוטות, אבל יש הרבה טרמינולוגיה. אני חושב שהדבר הכי חשוב זה להבין את המהות. אתה תזכור את הטרמינולוגיה עם הניסיון. כל הפיתוח מתחלק לספרינטים (לרוב 2-3 שבועות). קיים צבר (רשימת משימות) לכל תקופת הפיתוח ולכל ספרינט נפרד. לכל משימה יש נקודת סיפור משלה (דירוג קושי). לכל משתתף בתהליך יש תפקיד:
מפל מים
מתודולוגיית המפל היא אחת הוותיקות ביותר וכוללת יישום רציף לחלוטין: יש להשלים כל שלב לפני תחילת השלב הבא. במילים אחרות, מעבר לשלב הבא פירושו שהעבודה של השלב הקודם הושלמה ב-100%. התמונה מראה איך זה עובד: ראשית, אנו מנתחים את הבעיה (מתעדים משימות, דנים באתגרים), לאחר מכן אנו מעצבים (מבנה הפרויקט מתעצב בשלב זה), ולאחר מכן אנו מקודדים ובודקים. אסור לחזור לשלבים קודמים. גישה זו מומלצת לפרויקטים קטנים בהם הדרישות ידועות מראש וספק אם ישתנו.
- תיעוד מלא ועקבי בכל שלב
- קלות שימוש
- דרישות יציבות
- תקציבים ומועדים מוגדרים מראש
- כמות גדולה של תיעוד
- לא מאוד גמיש
- הלקוח לא יכול לראות גרסת הדגמה של המוצר
- אין אפשרות לזוז אחורה
Scrum
Scrum היא מתודולוגיית פיתוח תוכנה המחלקת את כל התהליך לאיטרציות. בסוף כל אינטראקציה, הצוות מוכן לספק גרסת דמו של המוצר. התמונה מראה שהצוות עובר את כל שלבי הפיתוח במקביל, מה שמאפשר לקבל חלק מוגמר מהפרויקט בסוף כל איטרציה.
- צוות הסקרום מורכב מאנשי המקצוע (מפתחים, בודקים, מעצבים) העובדים על פרויקט.
- ה-Scrum Master הוא האדם שמוודא כי עקרונות ה-Scrum מכובדים.
- בעל המוצר הוא הלקוח.
- סטנד אפ – זהו מפגש קצר, המתקיים מדי יום, בו לוקחים חלק כל חברי הצוות. כל משתתף עונה על 3 שאלות: מה עשיתי? מה אני אעשה? ואיזה בעיות חסימה יש?
- מפגש תכנון – מפגש זה מתקיים בתחילת הספרינט. המשימות שיש לבצע בספרינט הבא מזוהות בפגישה זו.
- רטרוספקטיבה - מפגש זה מתקיים בסוף הספרינט ומטרתו לזהות מה נעשה טוב ומה ניתן לשפר.
- הלקוח יכול לראות תוצאות במהלך תהליך הפיתוח
- מעקב יומיומי אחר תהליך הפיתוח
- יכולת ביצוע התאמות במהלך הפיתוח
- תקשורת מבוססת עם כל חברי הצוות
- כמות קטנה של תיעוד
- קשה להעריך עלויות עבודה ועלויות אחרות הנדרשות לפיתוח
- קשה לזהות צווארי בקבוק לפני תחילת הפיתוח
- הצורך לערב את כולם בעבודתם של חברי צוות אחרים.
קנבן
Kanban היא שיטה המבוססת על הדמיה של ההתקדמות בביצוע משימות הצוות. הרעיון המרכזי הוא לצמצם את מספר המשימות שמתבצעות כעת (בעמודה "בביצוע"). ב-scrum, הצוות מתמקד בהשלמת ספרינטים בהצלחה. בקנבאן, המשימה תופסת את העמדה הבולטת. זה טוב לפרויקטים בשלב התחזוקה, שבהם הפונקציונליות הבסיסית כבר יושמה, ונשארו שיפורים מינימליים ותיקון באגים. ב-Kanban, משימות מוקצות בנפרד. משימה עוברת את כל השלבים בלוח, ללא תלות במשימות אחרות, ולאחר סיום ניתן להציג אותה ללקוח. לוח Kanban מורכב מעמודות, שכל אחת מהן מייצגת תהליך פיתוח נפרד. עמודות מסוימות (לדוגמה, "בביצוע") מגבילות את מספר המשימות שהן יכולות להחזיק. זה עוזר למצוא במהירות ובקלות אזורים בעייתיים בחלוקת המשימות. התמונה מציגה דוגמה ללוח כזה. מספר העמודות ושמותיהם יכולים להשתנות. אציג את הנפוץ ביותר:
- To Do - רשימת המשימות שיש לבצע
- בתהליך - משימות שעובדים עליהן כעת
- סקירת קוד - משימות שנעשו והוגשו לבדיקה
- בבדיקה - משימות מוכנות לבדיקה
- בוצע - משימות סיימו
- קלות שימוש
- נראות (מסייע באיתור צווארי בקבוק, מפשט הבנה)
- מעורבות צוות גבוהה בתהליך עצמו
- פיתוח גמיש ביותר
- רשימת משימות לא יציבה
- קשה ליישם פרויקטים ארוכי טווח
- היעדר מועדים קשים
GO TO FULL VERSION