כמתכנת אני נתקל בעבודתי הרבה פעמים במצב שאני צריך להיכנס בפעם הראשונה לקוד שנכתב לפני. לא משנה הסיבה שעבורה אני נכנס לקוד (להוסיף פיצ׳ר או לתקן משהו) אני תמיד פועל באותו אלגוריטם:
1. אנליזה - אני לא יכול פשוט לכתוב קוד חדש ולזרוק אותו באמצע הקוד הקיים ולצפות שהוא ישתלב ויזרום שם באופן טיבעי. אני מתחיל בלקרוא את הקוד הקיים. להבין מה הולך שם ולמה. אני מריץ אותו, רואה איך המידע זורם פנימה, איך הוא עובר עיבוד ומה יוצא ממנו בסוף.
2. ייצוב - לעיתים אני נתקל בקטעי תוכנה שמדהימים אותי אך לעיתים קרובות יותר בקטעים נוראיים שאני צועק ״מה לאזעזל הם חשבו שעשו את זה?!״. כשאני נתקל בבאגים שהמתכנתים לפני הכניסו לקוד, את הקטנים אני מסדר על הדרך ובאופן מיידי. את הגדולים אני מכניס לtodo list (אני תמיד חוזר בסוף לtodo list!). חשוב לי שלפני שאני מתחיל להוסיף שינויים חדשים למערכת היא תהיי קודם כל יציבה.
3. פיתוח - רק אחרי שני השלבים הראשונים אני מתפנה לעשות את העבודה עצמה. אני מכניס את הקוד שלי ועושה את השינויים הנדרשים. בהתחלה עם פונקציונאלית בסיסיות ואחרי כל שינוי אני מריץ בדיקות ורואה שאני בכיוון הנכון. עם הזמן אני מבין את הזרימה של המידע לעומק יותר ומכניס צ׳אנקים גדולים יותר של קוד כל פעם. עד שלבסוף כל הקוד סודר והבדיקות עוברות.
4. בדיקות עומסים - ידוע גם כStress tests, נותנים לקוד לרוץ לתקופה ממושכת ועל כמויות גדול של מידע ובמצבים שונים. בודקים שהכל רץ כמו שצריך באמת וזה לא היה משהו חד פעמי בזמן בדיקות הפיתוח. אם מוצאים בעיות חוזרים לשלב 3.
5. יציאה לעולם - שהמוצר סופסוף מוכן לצאת לעולם יש התרגשות קלה, משהו ממך יוצא איתו. כמובן שכולם רואים רק את החיצוניות שלו. אם UI יפה יותר, אם ה UX טוב יותר, אם הוא רץ מהר יותר, אם הוא לא מתרסק וכו׳. ורק אני נשאר עם הזיכרון לתהליך שהוא עבר ולאלגנטיות של הקוד שהשארתי בו.
ואילוף כלבות... טוב... את זה אתם כבר מבינים לבד... לא?