דלג לתוכן

כיבוי שריפות מול שערי איכות: איך יוצאים מלולאת ה-Hotfix

פורסם:
תוכן העניינים

בעולם פיתוח התוכנה יש סוג מסוכן של אדרנלין: Hotfix.

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

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

אשליית המהירות

תרבות QA ריאקטיבית בנויה על האמונה ש”לתקן מהר” זה אותו דבר כמו “לזוז מהר”.

זה לא.

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

בתרבות ריאקטיבית רואים שלושה כישלונות:

  1. Hotfixים עוקפים את שער האיכות: בריצה לתקן, מדלגים על האוטומציה שנועדה להגן עלינו. Canary deployment הוא אזעקה, לא מגן.
  2. אוטומציה הופכת לרעש: אם מפתחים מבקשים “להריץ שוב” רק כדי לבדוק אם הכישלון היה מקרי, האוטומציה איבדה סמכות.
  3. תרבות הגיבורים משתלטת: מתגמלים את מי שנשאר עד 02:00 בלילה, במקום את מי שבנה מערכת שמונעת את הבאג מראש.

פרדוקס ה-Feature Flags

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

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

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

משבר הבגרות: החור השחור של triage ידני

אחת התוצאות העצובות של תרבות ריאקטיבית היא ירידת הערך של QA ידני.

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

כאשר הנהלה הנדסית בכירה נמשכת ל-triage יומיומי של כישלונות אוטומציה, הארגון הגיע למשבר בגרות ארכיטקטוני. המטרה של הנהגה אינה לנהל רעש. המטרה היא לבנות מערכות שמונעות רעש.

Hotfix או Revert

אחד הסימנים הברורים לתרבות ריאקטיבית הוא סירוב לבצע revert.

כאשר deployment נכשל, האינסטינקט הוא “לתקן קדימה” עם hotfix. אבל מבחינת systems thinking, revert הוא לעיתים ההחלטה הבוגרת יותר. הוא מחזיר את המערכת ל-Known Good State, עוצר את השריפה, ומאפשר RCA שקט.

Hotfix קדימה דומה לתיקון מנוע מטוס באוויר.

Revert הוא נחיתה, תיקון, ואז המראה מחדש.

מעבר לתרבות Quality Gate

כדי לשבור את לולאת כיבוי השריפות, QA חייב לעבור מ-Service Provider ל-Architectural Authority.

זה אומר:

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

מחשבה אחרונה

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

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

כיבוי שריפות לא נגמר עד שהאימות זז שמאלה. הגיע הזמן לעצור את לולאת ה-hotfix ולבנות Quality Gates שמחזיקים קו באמת.

אם אתם רוצים לראות איך השינוי הזה נראה בפועל, הרחבתי על כך ב-שער האיכות האמיתי.



מוכנים לארכיטקטורת איכות שצומחת איתכם?

תפסיקו לדבג, תתחילו לשחרר גרסאות.

לתיאום שיחת אסטרטגיה