השינוי מתחיל מבפנים: על התמורות בעולם פיתוח התוכנה

רבות דובר על המהפכה הטכנולוגית שמחוללת שינויים עמוקים בשוק העבודה ■ כעת היא מגיעה למקצוע שנחשב לקודש הקודשים של סקטור ההיי-טק

הנדסת תוכנה. צילום מסך מאתר recruitee
הנדסת תוכנה. צילום מסך מאתר recruitee

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

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

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

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

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

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

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