אחת מהתפיסות הרווחות ולמעשה גם השגויות בעולם פיתוח התוכנה, גורסת כי מפתחי Full Stack הם למעשה מפתחים שיודעים לבצע פיתוח בכל שפות התכנות הקיימות או לפחות במרביתן. בפועל, זוהי לחלוטין אינה ההגדרה של מפתח Full Stack וגם קשה להאמין שיש מפתח כלשהו שאכן עומד בקריטריון הזה, בטח ובטח לא ברמה כזאת שעליה ניתן לבסס פעילות מקצועית בתחום פיתוח התוכנה. אז מה זה בדיוק אומר ומהי המשמעות מבחינת תהליכי הפיתוח הארגוני שאתם רוצים להניע לטובת הכשרת המתכנתים שלכם בצורה האפקטיבית ביותר? על כך תוכלו לקרוא ממש כאן בשורות הבאות.
מה זה בדיוק פיתוח Full Stack?
ההגדרה הפשוטה והממצה של מפתח Full Stack היא זו: יכולת פיתוח תוכנה הן בצד הקליינט (Client), הן בצד השרת (Server) והן בפיתוח Database. זה הכל. ההגדרה לא מדברת על מספר התוכנות איתן יודע המתכנת לעבוד והיא לחלוטין לא דורשת ידיעה מקיפה בכל שפות התכנות הקיימות. בעידן האינטרנט המקוון, כל אפליקציה וכל יישום תוכנה משלב בתוכו הן עבודה על מחשב הקליינט והן רכיבי עבודה מול השרת בנוסף לרכיבי דאטאבייס. כך למשל, אפילו בפיתוח אתר אינטרנט פשוט למדי, נדרש ידע בפיתוח קליינט כדוגמת JavaScript בנוסף לידע המתחייב בתכנות HTML ו-CSS. בנוסף, נדרש גם ידע בתכנות שרת, למשל מסוג PHP, שמאפשר לקשר את הקליינט לשרת על מנת לספק לו את השירות הנדרש ולרוב גם נדרש ידע בעבודה עם Database בכדי לספק שירות מותאם אישית ובכדי לאסוף מידע חשוב ללקוח. מתכנת שיודע להציע חבילת ערך שלמה מקצה לקצה, המכסה את כל היבטי התכנות האלה, הוא מתכנת Full Stack, גם אם הוא יודע לעבוד עם תוכנה אחת בלבד בכל אחד מן התחומים הללו.
ועדיין, נדרשת עדכניות של הידע
אחרי שאמרנו את זה, הציפייה ממפתח Full Stack היא לא רק היכולת שלו לבצע תכנות בכל אחד משלושת הרכיבים אותם מנינו לעיל, אלא גם ובעיקר לעשות זאת באמצעות הכלים החדשניים והוורסטיליים ביותר ובאמצעות הכלים השכיחים והנפוצים ביותר. תחום המחשוב מתפתח ללא הרף ואליו מתווספים עוד ועוד כלי תכנות לרבות פלטפורמות תכנות לווב ולמובייל, כמו גם ספריות תכנות בשפות התכנות השונות. מפתח Full Stack נדרש למעשה לשמר רמה גבוהה של עדכניות בכלים הללו ולהיות מסוגל לספק את הערך הגבוה ביותר באמצעות כמה שיותר כלי תכנות. לחילופין, את סטאטוס ה- Full Stack ניתן להשיג לא רק ברמה האישית, אלא גם ובעיקר ברמה הארגונית.
Full Stack ברמת הארגון
כארגון המספק שירותי פיתוח תוכנה או עוסק בפיתוח תוכנה עצמאי, בהחלט חשובה היכולת לספק ללקוחותיכם את כל רכיבי התכנות הנדרשים. כך למשל, אם אתם מציעים שירותי פיתוח אפליקציות, חשוב שתהיה לכם היכולת לבצע את הפיתוח הן עבור פלטפורמות אנדרואיד והן עבור פלטפורמת iOS. כמו כן, חשוב שתוכלו לספק תוצר שלם ומושלם, הכולל לא רק את רכיבי האפליקציה על מכשיר הקליינט אלא את כל הרכיבים הנדרשים, ללא יוצא מן הכלל, על מנת שניתן יהיה ללחוץ Play ולהפעיל את האפליקציה בתפקוד מלא. לשם כך נדרשת לכם יכולת Full Stack ברמת הארגון וזה אומר, שאתם רוצים להכשיר את המתכנתים שלכם בצורה כזאת, שתאפשר לכם להגיע ליכולת הזאת בצורה חכמה תוך חלוקת מאמץ ותפקידים בין כלל צוות המתכנתים.
שימו לב, שריכוז יכולות אצל מתכנת אחד או אפילו מספר מתכנתים בודדים, יכול ליצור תלות גבוהה באותו מתכנת וזהו מצב בלתי רצוי בכל בית תוכנה. על כן, את הכשרת המתכנתים שלכם בארגון, אתם רוצים לבסס על סמך תכנית הכשרה, שלוקחת בחשבון את הצרכים שלכם ואת סוגי התכנות שאתם מבצעים, אבל עם מעטפת כוללת שלוקחת בחשבון את הצורך ביכולות פיתוח Full Stack. זה אומר שמתכנתים שמתמחים בתכנון קליינט בלבד, יעברו גם הכשרות בתחום תכנות השרת ומתכנתים שחסרה להם היכולת לעבודה עם Database יעברו קורסים ייעודיים בנושא זה. כיום ישנם מסלולי לימוד ממוקדים מאוד, המיועדים לאנשי תכנות בעלי רקע מקצועי. מסלולים אלה מאפשרים לרכוש את הידע הנדרש במסגרת תוכנית לימוד מרוכזת ומהירה, שיכולה להימשך לא יותר ממספר ימים בלבד.