עד לפני שניים שלושה עשורים, התבסס כל עולם המחשבים על מספר מצומצם מאוד של פלטפורמות ושפות תכנות. ככל שהטכנולוגיות הופכות למורכבות ומגוונות יותר, כך מתרבים גם הכלים הטכנולוגיים, שמיועדים לשרת את אותן טכנולוגיות ובשנים האחרונות חל גידול משמעותי במגוון הפלטפורמות והכלים המחשוביים בהם יכול כל איש מחשבים להשתמש. השאלה היא האם כל איש מחשבים צריך להכיר ולהיות מסוגל לתת מענה באמצעות כל אחד מהכלים הללו, או שעליו להתמחות במספר כלים ספציפיים בלבד. סביב סוגייה זו התפתח הסטאטוס של מפתח Full Stack, הן ברמה האישית והן ברמה הארגונית.
מה זה פיתוח Full Stack?
פיתוח Full Stack מתייחס בעיקר לתחום של פיתוח WEB ומשקף למעשה את היכולת של איש הפיתוח לבצע פיתוח הן בצד הקליינט (Client) והן בצד השרת (Server). מתכנת המחזיק ביכולת זו יודע למעשה לבצע את התכנות הוובי הקלאסי באמצעות HTML ו-CSS, אבל מעבר לכך יודע גם לתכנת בצד הדפדפן באמצעות JavaScript, jQuery, Angular או Vue, לתכנת בצד השרת באמצעות PFP, ASP, Python או Node ויודע לתכנת גם Database באמצעות SQL, SQLite או MongoDB. מתכנת Full Stack מחזיק למעשה ביכולת לתכנת באמצעות כל אחד מן הכלים הללו ולכן מסוגל לתת מענה וובי כולל ומקיף בכל פרויקט.
ההתייחסות ליכולת ורסטילית זו יכולה להתקיים ברמה האישית או ברמת הארגון. ברמה האישית מדובר כמובן ביכולת של מתכנת אחד להשתמש בכל הכלים הללו על פי הצורך וברמה הארגונית הכוונה היא לקיומה של יכולת כזאת ברמת הצוות, גם אם אף אחד מאנשי הצוות הבודדים מחזיק ביכולת כזאת בעצמו. מן הסתם, Full Stack הוא יעד שלא חייבים להשיג אותו, אך אפשר בהחלט להתקרב אליו. ככל שהמתכנת מכיר יותר כלים ומסוגל להתמודד עם יותר משימות כך הוא יוגדר כבעל סל יכולות מקיף וכולל יותר.
האם זה טוב או רע?
אם ממש רוצים לחפש חסרונות אפשר לומר שפיתוח Full Stack הופך להיות יותר ויותר מורכב, גורם לאובדן יכולת ההתמחות ולכן לקושי בפתרון בעיות מורכבות וכן להישענות על דמות מפתח שלמעשה שולטת בכלל הפעילות בצורה מופרזת. אלא שבפועל, לא באמת מדובר בחסרונות שכן עצם ההיכרות של כלל הכלים אינה אומרת שאיש הפיתוח יהיה היחיד שינהל את הפרויקט ויהיה אחראי על כל חלקי הפרויקט, אלא פשוט שתהיה לו גמישות רבה יותר לבצע יותר משימות ולהשתלב בכל חלקי הפרויקט. כשצוות שלם עונה לקריטריונים התובעניים של Full Stack, יכול הארגון להציג גמישות רבה יותר ולתת מענה טוב, מהיר ואיכותי יותר ללקוחותיו. על כן, הן ברמת הארגון והן ברמת המתכנת הפרטי, רכישת יכולות Full Stack הוא בהחלט מהלך חיובי, שחייב להיכלל במדיניות ההכשרה של העובדים בכל ארגון טכנולוגי.
קורס Full Stack – יש דבר כזה?
התשובה היא לא. על פי מה שהסברנו לעיל, קל מאוד להבין שהקונספט של Full Stack לא משקף מקצוע ספציפי או כלי תכנות ספציפי, אלא דווקא יכולת כוללת של הפרט או של הארגון. בניית יכולת זו ניתנת להשגה באמצעות ביצוע הכשרות תדירות בכלי פיתוח ה-WEB השונים וביצוע שלהן בצורה מחושבת ומתוכננת מראש שבונה אצל כל אחד מהעובדים בארגון את הוורסטיליות של מפתח Full Stack. כך למשל, תולכו להוציא את העובדים שלכם לסדרת הכשרות בכלי תכנות דפדפן ולאחר מכן לסט נוסף של הכשרות בתחום תכנות השרת. מאחר ואנשי תכנות מגיעים לארגון כשבידיהם בדרך כלל ידע והתמחות בתחום אחד או שניים לכל היותר, בניית יכולת Full Stack צריכה להיות מתוכננת ויזומה על ידי הארגון עצמו במטרה לבסס את היכולת אצל כל אחד מהמתכנתים בנפרד או ברמה הארגונית ככלל.
בכדי ליצור את היכולת הזאת בקרב אנשי התכנות בחברה, חשוב למצוא מוסד לימודים סופר מקצועי, שמציע מסלולי לימוד בכל מקצועות הפיתוח הוובי ויודע להתאים את תכנית הלימוד לקהל יעד מקצועי וכמובן ליצור מסגרות לימודיות מהירות ומרוכזות, המאפשרות לסיים כל נושא בתוך מספר ימים בלבד תוך מתן תמיכה וליווי לאורך הקורס ולאחריו. היכולת להשלים את נושאי הלימוד במהירות ובצורה מרוכזת, היא ללא ספק תנאי חשוב והכרחי בפיתוח יכולות Full Stack, הן ברמה האישית והן ברמה הארגונית.