שתף קטע נבחר

מתכנתי המחשב כמספרי סיפורים

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

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

 

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

 

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

 

החיפוש אחר מרכיבי היסוד של החומר

הפיזיקאים חוגגים כאשר הם מצליחים לזהות מרכיבים יותר ויותר בסיסיים של החומר. ב-28 במרץ 2007 השלימו את בנייתו של מאיץ חלקיקים מעגלי בהיקף של 27 קילומטר בגבול שוויץ – צרפת. מיקרוביולוגים מחפשים ב-DNA את הגורם לשינוי בגנים הגורם לסרטן. מאמצים וכספים רבים מושקעים במאמץ לגלות את המרכיבים של עצמים במדעים שונים ואת מבנה הרכבתם. על פי המידע הזה ניתן להשפיע לשנות ולשפר תופעות טבע לצורכי האדם.

 

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

 

שפות המחשב התקדמו בשני דורות לקראת טיפול משולב בפרטים מחד ובמערכות מאידך. בשפות התהליכיות (Procedural) תמכו בפירוק מערכות לתוכניות ולרוטינות (Modularity). שפות מכוונות עצמים (Object Oriented) מתקדמות עוד צעד ומכוונות להסתרת הפרטים הפנימיים (Encapsulation) של העצם בעת שימוש בו. על המפתח או המתחזק להכיר את הממשק וכללי השימוש בלבד והוא משוחרר מירידה לפרטים. ניתן היום לבצע עיבודים מתוחכמים בעזרת שורות אחדות של קוד המפעילות עצמים שאחרים הכינו ובדקו.

 

הכירו את תוכניות הספגטי

פירוק בעיה למרכיביה ובניית פתרון מרכיבים משולבים הם משימות מופשטות (Abstract tasks) שלא קל לבצען. טבעי יותר לאדם לפרק את מעשיו לסדרת פעולות עוקבות דוגמת הסרט הנע המפורסם של ג'רלד פורד. קשה יותר לתכנן (Design) נדבכים של מכלולים המרכיבים ביחד פתרון. לעיתים קרובות, בגלל חוסר בתכנון, תוכניות מחשב הם מסה מפותלת של פקודות. השליפות מבסיס הנתונים, הבדיקות הלוגיות ועיצוב המסכים מעורבבים יחד בתוכניות ארוכות ומסובכות. אלה הם תוכניות הספגטי המפורסמות.

 

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

 

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

 

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

 

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

 

הכותב הוביל פרויקטים של שיפור תהליכי פיתוח תוכנה ב-NDS ו-Intel על פי המודלים של CMMI תוך התאמה לתרבות הארגונית הישראלית

 

  תגובה חדשה
הצג:
אזהרה:
פעולה זו תמחק את התגובה שהתחלת להקליד
צילום אילוסטרציה
צילום אילוסטרציה
מומלצים