תהליך העבודה הנסתר של מפתחי תוכנה מקצועיים

רוב האנשים חושבים שפיתוח תוכנה הוא רק הקלדת קוד. הם מדמיינים מישהו שמקליד במהירות על מסך כהה. זה רק 20% מהעבודה.

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

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

שלב תכנון מוצק נראה כך:

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

מפתחים מקצועיים מקדישים זמן רב גם לקריאת תיעוד (documentation). הם לא רק סורקים תשובות בפורומים. הם קוראים תיעוד API רשמי וקוד מקור. זה עוזר להם להימנע משיטות ישנות ושבורות ולמצוא מקרי קצה (edge cases) שגורמים לבאגים ב-production.

לפני שמתחילים משימה גדולה, נסו את ההרגלים הבאים:

• בדקו פתרונות קיימים. אל תבנו משהו שכבר קיים. • שקלו פשרות (trade-offs). החליטו איזו כלי מתאים לצרכים הספציפיים שלכם. • בנו אב-טיפוס לחלקים הסיכוניים. כתבו סקריפט בדיקה קטן כדי לראות אם רעיון מסוים עובד. • שאלו את חברי הצוות. שיחה של חמש דקות יכולה לחסוך שעות של עבודה.

כשאתם סוף סוף כותבים קוד, זכרו את הקהל שלכם. הקהל שלכם הוא האדם הבא שיקרא את העבודה שלכם. האדם הזה עשוי להיות אתם בעוד שישה חודשים.

כתבו קוד שנשאר נקי:

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

סקירות קוד (code reviews) הן גם חיוניות. הן אינן רק משימה שצריך לסמן ב-V. הן דרך לחלוק ידע ולזהות סיכונים. סקירה טובה מתמקדת בכוונה ובלוגיקה ולא רק בתחביר (syntax).

ההנדסה האמיתית מתרחשת בחשיבה, בקריאה ובמחקר. ההקלדה היא רק השלב האחרון.

מקור: https://dev.to/lui_were/the-hidden-workflow-of-professional-software-developers-1d74