בתקופה האחרונה אני מלווה מספר פרוייקטים גדולים שעובדים שם מספר קבלני תוכנה. הלקוח של התוצרים בודק את התוצרים רק ע"י "Acceptance Tests" כלומר עובד / לא עובד ובכמה זמן. הבעיה בשיטה זו שלא בטוח בכלל שהבדיקות הנ"ל יעבדו לאחר פרק זמן T. כלומר ככול שפרק הזמן T יהיה ארוך יותר אפשר להגיד שקיבלנו מוצר טוב יותר. השאלה מה קורה לאורך הזמן ש"מקלקל" לנו את התוכנה. המושג הבא הוא ניסיון שלי להגדיר מדוע, בשלב כלשהו, לאורך ציר הזמן ,התוכנה תפסיק לעבוד.
"עייפות הקוד / התוכנה" – היא תופעה של קוד שלאחר תקופה מסויימת לא מצליח למלא את המצופה ממנו (Spec) כתוצאה ממספר סיבות:
1. נתונים שגדלים לאורך תקופת העבודה עם הקוד, לדוגמא קבצי לוגים, מבני נתונים...
2. כמות משתמשים שגדלה
3. שינויים שבוצעו בסביבת העבודה של התוכנה, כמו למשל התקנת תוכנות נוספות או שינוי מערכת הפעלה.
4. שינויים שנעשו בקוד מאז הגירסה המקורית.
5. הצרכים של הצרכן של התוכנה השתנו במידה כזאת שהקוד המקורי כבר לא מתאים, ולא ניתן לשינוי או להתאמה לצרכים החדשים.
6. הטכנולוגיה השתנתה כך שהקוד מיושן ולא עונה יותר לצרכים של הלקוח בצורה הטובה ביותר שאפשר
לקבל ע"י טכנולוגיה חדשה יותר.
שאלות שאנחנו צריכים לשאול את עצמנו:
נניח שקוד א' ו-ב' עושים את אותו דבר אבל קוד ב' ממשיך לעבוד בדרישות לאורך זמן ארוך יותר.
1. האם אנחנו יכולים להגיד שקוד ב' כתוב יותר טוב מקוד א, איכותי יותר?
2. האם אנחנו יכולים לחזות מראש איזה קוד ישרוד לתקופה ארוכה יותר?
התשובות שלי לשאלות אלו הם בפוסט הבא
.
אשמח לקבל תגובות…