מתודולוגיית פיתוח תוכנה היא סט של עקרונות, תהליכים, פרקטיקות וכלים לפיתוח ותמיכה בתוכנה. מתודולוגיה (אופן עבודה מוסכם) מגדירה איך מתכננים, מפתחים ובודקים מערכות.
יש כמה משפחות עיקריות של מתודולוגיות, קוויות, איטרטיביות וזריזות, ועוד רבות אחרות. כל מתודולוגיה שונה בגישה לניהול פרויקט, בארכיטקטורה, בעיצוב, בתכנות ובהבטחת איכות. כלי עזר לבחירת מתודולוגיה לפרויקט הוא סקלת קוברן.
משפחות קוויות מערבבות בין איכות התוצר לתהליכי הפיתוח. רעיון מרכזי הוא שמערכת איכותית נדרשת לתהליכי פיתוח מדויקים.
הדוגמה הבולטת כאן היא מפל־המים.
תכנת ותקן (״מהר ומלוכלך״) מדגישה מהירות שינוי ותיקון של המערכת. השיטה מעדיפה להכניס פונקציות מהר ולהתעלם מדי פעם מאיכות פנימית.
צריך לבצע חיזוקים (refactoring) ובדיקות מקיפות כדי למנוע שחיקה של איכות הקוד. בלי זה, עלות התחזוקה עולה עד שלא משתלם לתקן את המערכת עוד.
מפל־המים היא שיטה ותיקה שמפתחת בשלבים ברורים. היא מיוחסת בטעות לוינסטון רויס משנת 1970. התהליך קווי: איסוף דרישות, עיצוב, מימוש (תכנות), בדיקות, אינטגרציה, התקנה ותחזוקה. לפי השיטה לא חוזרים לשלב קודם אחרי שסיימו אותו.
מודל ה‑V מדגיש שקיימת זוגיות בין שלבי פיתוח לשלב בדיקות מקביל. זה מראה איך בדיקות מתאימות לכל שלב בפיתוח. בדרך כלל מגדירים בו ארבע רמות פיתוח ובדיקות התואמות אחת לשנייה.
במשפחה הזו הפיתוח הוא מחזורי או ספירלי. מפתחים את התוכנה בהדרגה, נדבך אחרי נדבך. משקל רב ניתן לכלים, ארכיטקטורה וניהול תצורה. מפתחים קודם את החלקים המסוכנים כדי להפחית סיכון.
Unified Process (UP) היא מסגרת מתודולוגית שהתפתחה בשנות התשעים. UP היא איטרטיבית ומתאימה לפרויקטים בגדלים שונים, כולל מערכות קריטיות. היא מדגישה ניהול פרויקט, ניהול שינויים, ארכיטקטורה ומידול ויזואלי באמצעות UML.
Agile (זריזות) היא משפחה איטרטיבית שמותאמת לצוותים קטנים. היא מקבלת שינויים במפרט ומדגישה שיתוף פעולה, סביבת עבודה מתאימה ותקורה פורמלית נמוכה. העקרונות מתוארים במנשר לפיתוח תוכנה זריז.
XP היא שיטה עם כללים מחמירים. היא שמה דגש על טכניקות תכנות, ובמיוחד על פיתוח מונחה-בדיקות, כתיבת בדיקות לפני הפונקציונליות. שיטה זו דורשת ידע בתכנות מונחה עצמים ומשמעת עצמית גבוהה.
Crystal Clear פותחה על ידי אליסטר קוברן ומתמקדת בצוותים קטנים. היא מדגישה יעילות, התאמה לאנשים ושיטות עבודה פשוטות. מתאימה לפרויקטים שאינם קריטיים לתמיכה בחיי אדם.
Scrum היא מתודולוגיה זריזה לניהול פרויקטים, שפותחה על ידי קן שוואבר ואחרים. השם נלקח מהרוגבי. בפרקטיקה הפרויקט מחולק למחזורים קצרים; בכל מחזור (לרוב חודש) מוסרים חלקים עובדים של התוכנה ומשתמשים מקבלים משוב.
קוויות מדגישות תהליך וקווים ברורים, איטרטיביות בונות בהדרגה והזריזות מקבלות שינויים ומהירות. ההבדלים נוגעים לתגובה לשינויים, דרישות משמעת, דגש על תיעוד מול קוד עובד, בדיקות אוטומטיות, ופיזור צוותים. השימוש בתעשייה משתנה לפי סוג הפרויקט והארגון.
מתודולוגיה היא דרך מוסכמת לעבוד על תוכנה. היא אומרת איך מתכננים, כותבים ובודקים תוכנה.
יש משפחות שונות של שיטות. כל שיטה מתאימה לסוג פרויקט שונה.
כאן הפיתוח מתנהל בשלבים ברורים. זה דומה לפס ייצור.
דוגמה מפורסמת היא מפל־המים.
זו שיטה שמעדיפה לעשות שינויים מהר. ההוספה מהירה של תכונות יכולה להוביל לקוד מבולגן.
לכן צריך לפעמים לעשות חיזוק לבניין הקוד ולעשות בדיקות רבות.
מפל־המים היא שיטה שמחלקת את העבודה לשלבים. יש איסוף דרישות, עיצוב, תכנות, בדיקות והתקנה.
כשהשלב נגמר, לא חוזרים אליו בדרך כלל.
במודל ה‑V לכל שלב בבנייה יש שלב בדיקות שמתאים לו. זה עוזר לוודא שהכל עובד.
איטרטיבי פירושו לחזור ולשפר. בונים חלקים קטנים של התוכנה ונבדוק אותם. כך מפחיתים סיכון.
UP היא מסגרת שאפשר להתאים לפרויקטים שונים. היא עוזרת לנהל שינויים ולתכנן את הארכיטקטורה.
Agile היא משפחה של שיטות שמקבלת שינויים בשמחה. עובדים בצוותים קטנים ומשתפים רעיונות.
XP משתמשת בחוקים חזקים. כותבים בדיקות לפני הקוד. זה עוזר לשמור על גמישות.
Crystal Clear מתאימה לצוותים קטנים. היא מדגישה יעילות ופשטות.
Scrum מחלקת את העבודה למחזורים קצרים. בכל מחזור נותנים גרסה שעובדת ומשפרים לפי משוב.
יש שיטות שמדגישות מסמכים, אחרות שמעדיפות קוד שעובד. כל שיטה טובה למטרות שונות.
תגובות גולשים