הטעויות שמפתחים ג'וניורים עושים

הוצאת קוד שעובד היא רף הבסיס. זו לא המטרה.

פעם סקרתי pull request שלקח 45 דקות להבין. הלוגיקה הייתה נכונה. הבדיקות עברו. אבל הקוד נכתב כאילו רק הכותב שלו עתיד לקרוא אותו.

כשנתתי משוב, המפתח אמר, "אבל זה עובד."

הוא צדק. זה עבד. וזו בדיוק הייתה הבעיה.

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

הנה הטעויות הנסתרות שמעכבות אתכם:

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

  • העתקת קוד מבלי להבין אותו להשתמש ב-Stack Overflow זה בסדר. להעתיק תבנית regex מבלי לדעת איך היא עובדת זה מסוכן. אתם יוצרים "קופסה שחורה" בתוך בסיס הקוד שלכם. לא תוכלו לבצע debugging כשהוא יישבר.

  • הוספת מורכבות מיותרת ג'וניורים נוטים לעיתים קרובות לקשור בין מורכבות לבין מיומנות. הם מחילים design patterns על משימות פשוטות. הפשטה (abstraction) מיותרת הופכת את הקוד לקשה יותר ל-debug וקשה יותר לשינוי. הוסיפו abstraction רק כשאתם מרגישים את הכאב שנגרם מהיעדרותו.

  • התעלמות מהודעות שגיאה הודעות שגיאה הן תיעוד בחינם. אל תרוצו לגוגל ברגע שאתם רואים stack trace. קראו את ההודעה המלאה. היא לרוב אומרת לכם בדיוק איזו שורה נכשלה ומדוע.

  • בקשת עזרה מוקדם מדי או מאוחר מדי אל תבזבזו שלוש שעות על בעיה של 10 דקות. זה לא יעיל. אבל אל תשלחו הודעה (ping) ל-senior רק עם צילום מסך וללא הקשר. השתמשו בכלל 20 הדקות: הקדישו 20 דקות לניסיון לפתור את הבעיה. תיעדו את מה שניסיתם. ואז בקשו עזרה בליווי התיעוד הזה.

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

  • הודעות commit גרועות הודעת commit כמו "fix bug" לא אומרת לצוות שלכם כלום. הסבירו מה השתנה ומדוע. התייחסו להיסטוריית ה-Git כאל תיעוד.

  • התייחסות לדרישות כאל חוק בל יעבור דרישות מפספסות לעיתים קרובות edge cases. אל תממשו רק את מה שנאמר לכם. שאלו מה קורה כשדברים משתבשים.

  • עצירה בכפתור ה-"Merged" האחריות לא מסתיימת כשה-PR שלכם מאושר (merged). עקבו אחרי הפיצ'ר שלכם עד ל-QA. עקבו אחריו ב-production. קראו את דוחות השגיאות.

הפער הגדול ביותר הוא אחריותיות (accountability). מפתחים סיניורים לא רק כותבים קוד. הם פותרים בעיות מבלי ליצור בעיות חדשות.

הפסיקו לבצע אופטימיזציה עבור "done". התחילו לבצע אופטימיזציה עבור "good".

מקור: https://dev.to/jasda_cf511abd504d201e7bd/the-mistakes-junior-developers-keep-making-that-senior-devs-stopped-talking-about-2pe6