#7 הארכיטקט

The architect #2לפני כמה שנים קרסה תקרה של חנייה ברמת החייל ומספר אנשים נהרגו. באחת הכתבות שהופיעו באינטרנט כמה ימים לאחר התאונה הופיע ציטוט של מנכ"ל החברה: "הטעות שלנו הייתה שלקחנו ארכיטקט ולא מהנדס". אני חושב שהמשפט הזה די מסכם את מה שמהנדסי הפיתוח חושבים על הארכיטקטים (או "גורואים" או אסטרטגי תוכנה, או כל שם אחר).

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

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

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

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

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

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

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

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

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

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

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

תגובה אחת בנושא “#7 הארכיטקט

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת /  לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת /  לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת /  לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת /  לשנות )

מתחבר ל-%s