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