בד"כ כשעובדים בסקוואדים - כל צוות מכיל מספר בודקים וכחלק מהעבודה, יתכנו שבועות שבהם צוות כזה ישחרר משהו כמו..5-6 גרסאות ולפעמים 3-4 גרסאות ישוחררו ביום אחד.
אבל מה קורה במצב שבו יש גרסה גדולה עם רמת סיכון גבוהה יותר?
ולמרות שזה עובר QA אנחנו יודעים שקשה מאוד תמיד לעלות על כל דבר קטן.
במיוחד שעל גרסה חדשה טרם נכתבה אוטומציה מלאה.
במקרה הממש טוב – עובדים על זה אבל גם זה רחוק מלהיות יציב ושלם.
ואשאל אתכם יותר מזה...מה קורה כשגרסה גדולה עולה לאחר שעברה אותנו, עברה QA
ובצוות אחר גם הגרסה עברה את ה-QA עם כל הבדיקות הנדרשות.. אוטומציה סרקה בכל גרסה מה שצריך כדי לוודא שהכל תקין.
אבל ...אז קורה שבאותה נקודת זמן הועלו 2 גרסאות שונות –
איך קרה ששתי הגרסאות הועלו באותו זמן? – שתיהן נבדקו על סביבות QA שונות, שתיהן הגיעו משתי צוותים שונים.
התברר שבשתיהן היו קונפליקטים שהתגלו רק לאחר העלייה לאוויר וגרמו ל-3 באגים חמורים ביותר במערכת.
מה עושים עם תפוח האדמה הלוהט הזה שהגיע אלינו?..
טוב, אז כמובן שבגרסאות גדולות כאלו לא לוקחים סיכונים מיותרים ומבצעים ישר Rollback שזה חזרה לאחור לגרסאות קודמות. אמממה.. במקרה הזה, היה צורך לבצע double rollback כי לא הצליחו להבין מה ה – rout cause של אותן בעיות באותו זמן ומאיזו גרסה הגיעו הבעיות האלו.
לאחר חקירה הבנו ששילוב שהיה די מסוכן בין 2 הגרסאות האלו יצר קונפליקט שבתצורה הקיימת לא היה ניתן לעלות על אותן בעיות מבלי ליצור תהליך מסודר יותר.
כלומר, לוא היינו עובדים בתהליך מסודר יותר, היינו מגלים את הבעיות הללו בשלב מוקדם יותר.
לדוגמא,– להעלות גרסה one by one, לבצע rebase למאסטר בגרסה שאנחנו בודקים.
כלומר, ליישר את סביבת הבדיקות לפרודקשן ואז להמשיך לבדיקות.
וזאת למרות שמדובר בצוותים שונים שמעלים גרסאות כל הזמן כי הצוותים עלולים לגעת בחלקים שונים במוצר שיהיו קשורים גם ל"שטחים" של צוותים אחרים שעובדים על אותו מוצר.
בסוף, הבעיות טופלו. הגרסאות נבדקו כמו שצריך והכל עלה ללא בעיה נוספת.
אבל מה שכן עלה...עלה לחברה ב-לא מעט כסף למרות שה-Rollback נעשה די בזמן ולא היה חי יותר משעתיים.
והתובנה מכל הסיפור הזה… - שימו לב!!!
היו ערניים לגרסאות שהן חריגות בגודלן ורמת הסיכון שלהן גבוהה יותר. זה חשוב ביותר. יותר מודעות בקרב המפתחים וגם בקרב הבודקים.
מה יוצר את המודעות לזה? -
תקשורת! חברים...ת-ק-ש-ו-ר-ת.
צריך גם לשקול code freezes , (בכדי) שכאשר יתגלו בעיות יהיה ניתן להגיע לשורש הבעיה בצורה קלה יותר.
צריך לחשוב על תהליך עבור שחרור גרסאות חריגות בגדלן.
אולי אפילו לנהל את הסיכונים כתהליך מתודי.
העלאת הערנות והמודעות במהלך רוטינות של הפיתוח ושל הבודקים.
גם תקשורת ותיאום והכנה שיכול לקרות מצב שנגיע ל – rollback.
הניתוח הצליח, אבל החולה מת.
ועם זאת.. זכרו – "ספינה הכי בטוחה כשהיא עוגנת בנמל, אך לא לשם כך נועדו ספינות…."
אני מאחל לכם המשך שבוע נעים, שקט ורגוע
ושלעולם לא תצעדו לבד!