מתודולוגיית תכנת ותקן
הנדסת תוכנה |
---|
ערך זה שייך לקטגוריית הנדסת תוכנה |
פעילויות ושלבים |
דרישות • ניתוח • אפיון • ארכיטקטורה • עיצוב • תכנות • ניפוי שגיאות • בדיקה • אימות • בנייה • פריסה • תפעול • תחזוקה |
מתודולוגיות |
זריזות • מפל המים • תכנת ותקן • Crystal Clear • Scrum • Unified Process • Extreme Programming • אינטגרציה רציפה • DevOps |
תחומים תומכים |
ניהול פרויקטים • ניהול תצורה • תיעוד • הבטחת איכות • Profiling |
כלים |
מהדר • מקשר • מפרש • IDE • ניהול גרסאות • אוטומציית בנייה |
מתודולוגיית תכנת ותקן (ידועה גם בשם מהר ומלוכלך, או אד הוק) היא מתודולוגיה לפיתוח ותחזוקת תוכנה בצורה מהירה וללא תהליך מסודר. מתודולוגיה זו שמה דגש רב על המהירות שבה נעשים שינויים ותיקונים למערכת התוכנה, תוך התעלמות מודעת מנושאי התחזוקתיות והאיכות הפנימית של התוכנה. מתודולוגיה זו מאפשרת הוספה מהירה של פונקציונליות חדשה למערכת, אך מחייבת חיזוק של המבנים הפנימיים של התוכנה מעת לעת וערכת בדיקות מקיפה. ללא האחרונים, שימוש עקבי במתודולוגיה זו יגרום בהכרח לשחיקה מעריכית באיכות הפנימית של התוכנה, עד לנקודה שבה עלות הוספת פונקציונליות חדשה שווה או גדולה לעלות בניית התוכנה כולה מחדש, שלאחריה אין הצדקה כלכלית להמשיך לתחזק את התוכנה.
יתרונות:
- אי הכנת מסמכים, הגוזלים בהכנתם זמן וכסף.
- תחילת העבודה על הפרויקט (תכנותית) מיד עם קבלתו (תקורה קטנה).
חסרונות:
- ויתור על שלבים חשובים, כגון בדיקות ותכנון מקיף, דבר שיכול לגרום לאי-גילוי באגים חשובים.
- לא מתאים לפיתוח בקבוצות גדולות, מאחר שלא קיימות הוראות עבודה מסודרות עבור כל אחד מחברי הצוות.
- מאחר שלא נקבע יומן עבודה, לא ברור מתי צריך לבצע משימות שונות (תזמון).
- עלות תיקון תקלה עולה ככל שהזמן עולה (מאחר שנבנות עליה פונקציות אחרות).
- קשה למדוד התקדמות, איכות או סיכונים.
פיתוח אד הוק מתאים במיוחד לפרויקטים קטנים בעלי פונקציונליות מצומצמת (לדוגמה: תרגילי תכנות באוניברסיטה או אפליקציות פשוטות).
משמעות נוספת למונח "אד הוק" בתוכנה
[עריכת קוד מקור | עריכה]משימת תוכנה לביצוע מיידי, כך שעצם ניסוח המשימה, מוטמע בקוד התוכנה, ומתרחש תוך כדי ריצה. למשל, Ad Hoc Query היא שאילתה בשפת SQL שמנוסחת תוך כדי ריצה של התוכנה, וזאת בניגוד לשאילתה שהנוסח שלה טבוע מראש בקוד התוכנה (אף אם נוסח זה מכיל פרמטרים). במקרה כזה לא בהכרח ניתן להכין את בסיס הנתונים מראש, למשל מבחינת אינדקסים וקוביות, על מנת שיוכל לספק את התוצאה של השאילתה ביעילות המקסימלית.