CodeGym /בלוג Java /Random-HE /מתודולוגיות לפיתוח תוכנה
John Squirrels
רָמָה
San Francisco

מתודולוגיות לפיתוח תוכנה

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

מפל מים

מתודולוגיית המפל היא אחת הוותיקות ביותר וכוללת יישום רציף לחלוטין: יש להשלים כל שלב לפני תחילת השלב הבא. במילים אחרות, מעבר לשלב הבא פירושו שהעבודה של השלב הקודם הושלמה ב-100%. התמונה מראה איך זה עובד: ראשית, אנו מנתחים את הבעיה (מתעדים משימות, דנים באתגרים), לאחר מכן אנו מעצבים (מבנה הפרויקט מתעצב בשלב זה), ולאחר מכן אנו מקודדים ובודקים. אסור לחזור לשלבים קודמים. גישה זו מומלצת לפרויקטים קטנים בהם הדרישות ידועות מראש וספק אם ישתנו. מתודולוגיות פיתוח תוכנה - 2יתרונות:
  • תיעוד מלא ועקבי בכל שלב
  • קלות שימוש
  • דרישות יציבות
  • תקציבים ומועדים מוגדרים מראש
חסרונות:
  • כמות גדולה של תיעוד
  • לא מאוד גמיש
  • הלקוח לא יכול לראות גרסת הדגמה של המוצר
  • אין אפשרות לזוז אחורה

Scrum

Scrum היא מתודולוגיית פיתוח תוכנה המחלקת את כל התהליך לאיטרציות. בסוף כל אינטראקציה, הצוות מוכן לספק גרסת דמו של המוצר. התמונה מראה שהצוות עובר את כל שלבי הפיתוח במקביל, מה שמאפשר לקבל חלק מוגמר מהפרויקט בסוף כל איטרציה. מתודולוגיות פיתוח תוכנה - 3אנסה להסביר בקצרה את מהות המתודולוגיה באמצעות מילים פשוטות, אבל יש הרבה טרמינולוגיה. אני חושב שהדבר הכי חשוב זה להבין את המהות. אתה תזכור את הטרמינולוגיה עם הניסיון. כל הפיתוח מתחלק לספרינטים (לרוב 2-3 שבועות). קיים צבר (רשימת משימות) לכל תקופת הפיתוח ולכל ספרינט נפרד. לכל משימה יש נקודת סיפור משלה (דירוג קושי). לכל משתתף בתהליך יש תפקיד:
  • צוות הסקרום מורכב מאנשי המקצוע (מפתחים, בודקים, מעצבים) העובדים על פרויקט.
  • ה-Scrum Master הוא האדם שמוודא כי עקרונות ה-Scrum מכובדים.
  • בעל המוצר הוא הלקוח.
מתודולוגיה זו מסתמכת על תקשורת, ולכן יש מספר רב של פגישות:
  • סטנד אפ – זהו מפגש קצר, המתקיים מדי יום, בו לוקחים חלק כל חברי הצוות. כל משתתף עונה על 3 שאלות: מה עשיתי? מה אני אעשה? ואיזה בעיות חסימה יש?
  • מפגש תכנון – מפגש זה מתקיים בתחילת הספרינט. המשימות שיש לבצע בספרינט הבא מזוהות בפגישה זו.
  • רטרוספקטיבה - מפגש זה מתקיים בסוף הספרינט ומטרתו לזהות מה נעשה טוב ומה ניתן לשפר.
יתרונות:
  • הלקוח יכול לראות תוצאות במהלך תהליך הפיתוח
  • מעקב יומיומי אחר תהליך הפיתוח
  • יכולת ביצוע התאמות במהלך הפיתוח
  • תקשורת מבוססת עם כל חברי הצוות
  • כמות קטנה של תיעוד
חסרונות:
  • קשה להעריך עלויות עבודה ועלויות אחרות הנדרשות לפיתוח
  • קשה לזהות צווארי בקבוק לפני תחילת הפיתוח
  • הצורך לערב את כולם בעבודתם של חברי צוות אחרים.

קנבן

Kanban היא שיטה המבוססת על הדמיה של ההתקדמות בביצוע משימות הצוות. הרעיון המרכזי הוא לצמצם את מספר המשימות שמתבצעות כעת (בעמודה "בביצוע"). ב-scrum, הצוות מתמקד בהשלמת ספרינטים בהצלחה. בקנבאן, המשימה תופסת את העמדה הבולטת. זה טוב לפרויקטים בשלב התחזוקה, שבהם הפונקציונליות הבסיסית כבר יושמה, ונשארו שיפורים מינימליים ותיקון באגים. ב-Kanban, משימות מוקצות בנפרד. משימה עוברת את כל השלבים בלוח, ללא תלות במשימות אחרות, ולאחר סיום ניתן להציג אותה ללקוח. לוח Kanban מורכב מעמודות, שכל אחת מהן מייצגת תהליך פיתוח נפרד. עמודות מסוימות (לדוגמה, "בביצוע") מגבילות את מספר המשימות שהן יכולות להחזיק. זה עוזר למצוא במהירות ובקלות אזורים בעייתיים בחלוקת המשימות. התמונה מציגה דוגמה ללוח כזה. מספר העמודות ושמותיהם יכולים להשתנות. אציג את הנפוץ ביותר: מתודולוגיות פיתוח תוכנה - 4
  • To Do - רשימת המשימות שיש לבצע
  • בתהליך - משימות שעובדים עליהן כעת
  • סקירת קוד - משימות שנעשו והוגשו לבדיקה
  • בבדיקה - משימות מוכנות לבדיקה
  • בוצע - משימות סיימו
יתרונות:
  • קלות שימוש
  • נראות (מסייע באיתור צווארי בקבוק, מפשט הבנה)
  • מעורבות צוות גבוהה בתהליך עצמו
  • פיתוח גמיש ביותר
חסרונות:
  • רשימת משימות לא יציבה
  • קשה ליישם פרויקטים ארוכי טווח
  • היעדר מועדים קשים

מילה אחרונה על מתודולוגיות פיתוח תוכנה

אנשים שמחזיקים או שואפים לתפקידי ניהול חייבים להבין את מתודולוגיות פיתוח התוכנה באופן יסודי, אבל כולם צריכים להבין לפחות את היסודות. מתודולוגיות הן חלק בלתי נפרד מתהליך הפיתוח והן משמשות לא רק בתחום ה-IT. תודה שהקדשת מזמנך לקרוא את המאמר שלי. אני מקווה שזה עזר לך. ניסיתי לתאר רק את נקודות המפתח בצורה נגישה ותמציתית ככל האפשר. כתוצאה מכך, מאמר זה אינו ממצה. אשמח לשמוע את דעתכם בנושא ולענות על שאלותיכם. כל טוב!
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION