בתשובה למ. השור, 21/09/02 23:12
על מה מוציאים הכסף 93577
עד כמה שהיה ידוע לי, במהלך חייה של מערכת תוכנה, מרבית המשאבים, עד %80, מושקעים בתחזוקה. למשל, מערכות מחשבים פיננסיות מרובות קוד חיות עשרים ואפילו שלושים שנה, כך שדווקא הגיוני שעלות אחזקת המערכות תעלה בסדרי גודל על עלות פילוחה.

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

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

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

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

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

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

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים