מתודולוגיית תכנת ותקן

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

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

פיתוח אד הוק מתאים במיוחד לפרויקטים קטנים בעלי פונקציונליות מצומצמת (לדוגמה: תרגילי תכנות באוניברסיטה או אפליקציות פשוטות).

משמעות נוספת למונח "אד הוק" בתוכנה

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

קישורים חיצוניים
 Secret Tools of the Ad Hoc Programmer

קטגוריה:הנדסת תוכנה