בדרגות הגבוהות ביותר בענף ההיי טק יש מקצוע מבוקש חדש – ארכיטקט תוכנה. מי שזוכה בתפקיד צריך להיות מתכנת בכיר שצריך ויכול להכתיב מהלכים טכניים מורכבים ברמת עיצוב התוכנה ובדרכי הטמעה פשוטות ויעילות. הוא יכול לעשות זאת בעזרת טכניקות, כלים ופלטפורמות מחשוב שונות אבל מטרתו היא יצירת בסיס לפיתוח תוכנה, תוך ראיה מערכתית הוליסטית ויכולת לצפות את עתיד הקוד העומד לפניו.
מי שמעוניין לעסוק במקצוע הזה חייב לאהוב טכנולוגיה וחדשנות וגם לעמוד בקצב עבודה דינמי, לגלות יצירתיות ולהצטיין בפתרון בעיות וגמישות מחשבתית. אדריכל תוכנה מוצלח יודע לעשות את המהלך הקסום ולבנות פתרונות מורכבים כקלים ומארגן את הקוד לכדי קבצים קלים ופשוטים לתחזוקה, גם במערכות גדולות ומורכבות.
ועבור קסמים, משלמים. על פי נתונים אתר דרושים IL, משכורת התחלתית של ארכיטקט תוכנה מתחילה בכ-27 אלף שקל בחודש ויכולה להגיע עד לכ-50 אלף שקל בחודש.
אבל גם בתפקיד כזה יש שינויים. מספר המשרות המוצעות בתקופה זו לאדריכל תוכנה נמוכה בכ-25% ביחס לאותה תקופה אשתקד, בעקבות המשבר בשוק ההייטק. גם מצד מחפשי העבודה אנו רואים ירידה של כ-5% בהגשת קורות חיים למשרה זו.
לא פועלי בניין
עד כאן שלב ההגדרות, אבל מה בפועל עושה ארכיטקט תוכנה? ראשית, נענה על השאלה המתבקשת: האם לא מדובר בטייטל מפוצץ של מתכנת? אופיר יהושוע, ארכיטקט תוכנה בכיר בחברת gloat מבקש לתקן את הרושם הזה: "ארכיטקטי תוכנה, כשמם כן הם, ממש כמו ארכיטקטים של בניין, הם המהנדסים שאחראים לשרטט את מבנה התוכנה לפרטי פרטים על מנת שהמתכנתים והמתכנתות יוכלו בפועל ׳לבנות את הבניין׳. מתכנתים, לצורך ההשוואה, אחראים על כתיבת הקוד המיישם את הארכיטקטורה. הם עובדים על מרכיבים ומאפיינים ספציפיים של התוכנה וההתמקדות שלהם היא בכתיבת קוד העונה על הדרישות. בנוסף, מתכנתים צריכים להיות בעלי הבנה עמוקה בשפת התכנות שבה הם כותבים והכלים שנעשה בהם שימוש".
"ארכיטקט תוכנה עוזר לתכנן את הפיתוח של המערכת שהחברה מפתחת", מוסיפה יעלי אלב, דירקטורית משאבי אנוש ב-Aporia. "בעולמות הטכנולוגיים המתקדמים שקיימים היום - הכוללים עבודה עם הענן, Scale של דאטה ולקוחות, לצד עבודה עם בינה מלאכותית - התפקיד של הארכיטקט משלב בתוכו את הצורך להבנה רחבה במגוון תחומים, היכרות עם use cases של המוצר והיכולת לחקור ולהשמיש פתרונות".
"ארכיטקט תוכנה זה תפקיד רוחבי, העוסק מקצה לקצה בפיתוח מוצר תוכנה. העבודה מתחילה בבחירת שפת פיתוח ומסתיימת בבחירה באיזה ענן המוצר תוכנה ירוץ", מספר דמיטרי קרצב, ארכיטקט תוכנה בחברת cnvrg.io. "להחלטות של ארכיטקט תוכנה יש השפעות דרמטיות על החברה, על סוגי מפתחים, על דבאופס ועל אנשי בדיקות שיגייסו, על הוצאות על סביבות פיתוח, על כלי פיתוח, על מהירות היציאה לשוק ועוד. במילים פשוטות, אני נדרש להבין מה המוצר צריך לעשות ולהתאים לזה טכנולוגיה תוך כדי לקיחת בחשבון שיקולים כמו פשטות השימוש ומחירי התפעול עתידיים (הן בהיבט מחירי תשתיות מחשוב והן בהיבט משאבי אנוש שיצטרכו לתמוך במוצר). בנוסף, הרבה פעמים, אני צריך לתכנן מערכות תוכנה בצורה כזאת שהם יענו על דרישת הפרודקט העתידיות".
קרצב מוסיף שלדעתו כל מתכנת הוא גם ארכיטקט תוכנה. "זו פשוט שאלה של סקייל. כמפתח אני תמיד חשבתי על הארכיטקטורה. כמפתח מין השורה לא הייתי בקיא בכל ניואנסים של הפתרון הכללי, אבל ברמת המשימות והפיתוח, התנהלתי כארכיטקט לכל דבר. שאלתי את עצמי שאלות כמו: האם זה פתרון מפושט מספיק והאם ניתן לבדוק אותו בקלות. לפי דעתי ההבדל בין ארכיטקט למפתח זה בעיקר בגודל האחריות שמוטלת עליך, כמפתח אתה אחראי על חתיכה מתוכנה מסוימת, בעוד שכארכיטקט, אתה אחראי על מוצר כולו. כלומר, רמת האחריות גדלה".
אבי נואם חובש שני כובעים: גם ארכיטקט תוכנה וגם מנהל פיתוח בחברת Veev. התפקיד המאתגר דורש ממנו להיות מעודכן בכל הטכנולוגיה העכשווית. "אני מבצע מחקר ומעקב באופן קבוע אחרי מספר נושאים בתחום הפיתוח וכתיבת הקוד, עוזר לצוותים בחברה בכל שלבי הפיתוח, מוודא שהמערכות שלנו עומדות בסטנדרטים הכי עכשוויים מבחינת הקוד ושרמת אבטחת המידע בשלבי כתיבת הקוד והעלאתו לענן היא הכי גבוהה שיש. זה תפקיד עם המון אחריות שדורש ממך כל הזמן לחשוב קדימה ובעיקר ממבט מלמעלה על האספקטים השונים של צוותי הפיתוח בחברה. בנוסף, כארכיטקט תוכנה אתה נדרש לתכנן מערכות על פי דרישות החברה ולספק פתרונות מידיים אבל החלק הארי בעבודה הוא לחשוב ולהציע פתרונות לטווח ארוך. למשל, חלק ניכר מהמערכות שאני מתכנן יהיו שימושיות רק בעוד שנה או שנתיים. בסופו של דבר, אני מייצר את התהליך שמחבר בין הקבוצות שונות בחברה".