לדלג לתוכן

מה זה תקשור טכני ולמה זה קריטי למתכנתים

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

אז מה זה בעצם תקשור טכני

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

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

למה מתכנתים מזלזלים בזה

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

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

איפה זה בא לידי ביטוי בפועל

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

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

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

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

איך משפרים תקשור טכני בפועל

זו מיומנות שמתפתחת בתרגול, בדיוק כמו כתיבת קוד. הנה כמה דרכים מעשיות להתחיל:

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

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

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

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

למה זה קריטי במיוחד למתחילים

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

לסיכום

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

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

התחילו את קורס התכנות הבסיסי כאן

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

הצטרפו לקהילה בדיסקורד