מדוע שאלות פשוטות לא מגלמות שורשים

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

הפילוסופיה שמאחורי 5 הסיבות

בליבתו, 5 הסיבות הוא סוג של ניתוח שורש מונחה נגדי. במקום רק לתעד באג והזיז הלאה, השיטה מחייבת מהנדסים לטפל בכל פגם כאות של כשל תהליך עמוק יותר.מספר "חמש" אינו מוגבל נוקשה - זה הוא רצף מעשי של בעיות דורש שלוש סיבות; אחרים דורשים 7.

בניגוד לטכניקות מתקדמות יותר (למשל, דיאגרמות דגים או ניתוח עץ פגם), 5 הסיבות הוא קל משקל במכוון.זה יכול להתבצע בפגישה של עמידה, במהלך פוסט-מורדם, או אפילו כחלק מדיון בקשה מושך.פשטותו, אך לא אומר שזה קל.ה האתגר הוא לשמור על משמעת: "מדוע?", צריך להיות מבוסס על ראיות עובדתיות, הנחות או לא על שיטות הגנה, אלא אם כי לא כדאי להתמקד שיטות הגנה, אלא לא עובד.

משאבים חיצוניים:0 (השורש של המחקר שורש שורש) 1:1 מספק הקשר רחב יותר על האופן שבו 5 למה משתלבים למסגרות ניהול איכות.

שלב-בי-Step Framework for Software באגים

החלת 5 הסיבות ל-Acrot תוכנה היא פשוטה כאשר אתה עוקב אחר תהליך מובנה.למטה הוא זרימת עבודה מפורטת, ארבע-phase אשר בונה על השיטה המקורית, אך מוסיף שיקולים הנדסיים מעשיים.

שלב 1: § § הבעיה מראש

לפני ששאלת "מדוע", הצוות חייב להסכים על הצהרה ברורה וספציפית.תיאורים כגון "המערכת התרסקה" או "ה- API איטי" מובילים לתשובות רדודות. במקום זאת, מגדירים את הבעיה במונחים בלתי ניתנים לערעור, תנאי מדידה.לדוגמה: "שירות הסימון מחזיר שגיאה של 500 ל-12% מהבקשות כאשר העגלה של הלקוח מכיל כרטיס מתנה זה של עיגון והודעות המונעות דיונים טעונים.

שלב 2: שאל "למה?"

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

שלב 3: זיהוי שורש

המשך שרשרת עד שתגיעו לגורם שמצהיר שני תנאים: (1) היא תחת שליטת הצוות לשינוי, ו (2) אם תיקנתם אותה, ארקייד הבעיות יושמד.הסימן המשותף שהשגת השורש הוא כאשר התשובה הופכת לפענוח תהליך ולא פגם טכני.לדוגמה, "המפתח לא הוכשר על תקני קלט" הוא תהליך; "שדה ההפחתה שלילי" הוא תהליך של חסימה טכנית או פגום.

שלב 4: יישום של אמצעי נגד, לא רק תיקון

ברגע שהסיבה השורשית מזוהה, עיצוב אמצעי מניעה שמטפלים בו ישירות. A Countermeasure שונה מתיקון זמני כי זה מונע את הבעיה לחזור.לדוגמה, אם שורש הסיבה היה "הבדיקה של קוד לא כלל בדיקות אימות", אמצעי הנגד הוא לעדכן את הסימון ולרכבת את הצוות, לא רק כדי להוסיף בדיקה תקפה של השיטה הכושלת.

דוגמה מורחבת: תשלום

בואו נלך דרך תרחיש עשיר יותר שמשקף אתגרים הנדסיים אמיתיים בעולם.חברה של פינטק חווה כישלונות לסירוגין בצנרת עיבוד התשלומים שלה.ההודעה על הבעיה: "האישור נכשל באופן שקט עבור 1 מתוך 300 עסקאות, וכתוצאה מכך הכנסות אבודות ובלבול לקוחות".הצוות מאגד יומני, עקבות ורשומות פריסה, ואז מתחיל את 5 הסיבות.

  • (FLT:0) מדוע האישור נכשל בשקט?FirLT:1 כי שער התשלום מחזיר קוד שגיאה "לא חוקי של סוחר זיהוי" אבל היישום אינו עולה על טעות זו למשתמש או לצוות התמיכה.
  • [01:0] מדוע השער חוזר "תעודת זיהוי סוחר לא חוקי?", 1:1 כי המזה סוחר שנשלח לבקשה מכיל ערך מפוסל מקובץ תצורה ישן.
  • (FLT:0) מדוע המזה סוחרי מטשטש את ה- 1 משום שקובץ התצורה עודכן במהלך פריסה מאוחרת, אך השירות הריצה לא התקין את הערכים החדשים.
  • (ב) מדוע השירות לא העלה מחדש את התצורה?(ראה פרק 1:0) כי התסריט הפריסה לא גרם לנקודת סיום של סימפוך לאחר עדכון הקובץ.
  • מדוע היה צעד הביטול חסר מתסריט הפריסה?(FLT:0) מדוע הצוות לא הסדיר את רשימת התפוצה לשינויי תצורה; כל מהנדס ביצע את השלבים באופן ידני, והפעם נשכחה הצעד.

(FLT:0)Root סיבה: FLT:1 לא סטנדרטי, הליך פריסה אוטומטי עבור עדכונים תצורה.הצעד נגדם הוא ליישם צינור פריסה כי תמיד פועל צעד של השממה לאחר שינויים בתצורה, יחד עם בדיקות עשן אוטומטיות המאמת את מזהה סוחר הנכון טעון.הודעה כי תיקון טיפול השגיאה השקט לבדו (למשל, תיקון השגיאה) לא ימנע תצורה עתידית - תהליך שורש הוא סחף.

משאבים חיצוניים:0) ההגדרה של המכון לאן אנטרפרייז של 5 מדועס"ל:1 מסבירה כיצד השיטה באה ומדוע היא שייכת לתוכניות מצוינות מבצעיות.

היתרונות של ניתוח שורש מערכתי

שיטת 5 הסיבות מביאה מספר יתרונות אפשריים לקבוצות הנדסיות אשר אימצו אותה באופן עקבי.

  • (FLT:0) חידושים חוזרים (FLT:1) - על ידי התייחסות לגורם התהליך ולא לסימפטום, אותו שיעור באגים הוא הרבה פחות סיכוי להופיע מחדש.צוותים להפסיק לשחק עם פגמים.
  • (FLT:0) שיפור צוות הלמידה של צוות 1R) - הדיון סביב כל "למה" מציף ידע על המערכת שאולי הייתה מעורפלת או לא מזוהמת.מהנדסי ג'וניור מקבלים תובנה לגבי האופן שבו מרכיבים שונים אינטראקציה.
  • [ה]התנדבות פסיכולוגיות בטיחותיות: 1 [כאשר] נעשו כניתוח חסר אשמה, 5 הסיבות משנות את המיקוד מ"שעשו את הטעות" ל"מה שבמערכת אפשרה לשגיאה לקרות".
  • (FLT:0)Fast ו- Low-over-headFLT:1) בהשוואה לדמיון פורמונים או FMEA, 5 Whys ניתן לבצע בפחות מ-30 דקות.זה הופך אותו לזמין עבור קבוצות גמישות שצריכים לנוע במהירות בין ⁇ s.

מלכודות נפוצות וכיצד להימנע מהם

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

לעצור ב-Samptom

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

אישור Bas

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

← מספר גורמים עם שרשרת בודדת

באגים מורכבים לעתים קרובות יש יותר מדרך סיבתית אחת.ה-5 למהות הליניאריות מתאימות ביותר לבעיות עם קסגת קל יחסית.אם אתה מוצא את עצמך כבול לשתי רשתות עצמאיות יותר, לשקול פיצול הניתוח ל-5 מפגשים נפרדים או להשלים אותו עם FLT:0 (Ishikawa) דיאגרמת FLT:1 כדי לארגן על ידי אנשים (, תהליך, סביבה).

חוסר מעקב-דרך

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

הצצה ל-5 למהות לתוך זרימת עבודה Agile ו-DevOps

השיטה אינה מוגבלת ל- post-mortems. ניתן להטמיע אותה ישירות לתוך מחזור חיי הפיתוח.

במהלך Code Review

כאשר בודק מסמן דפוס חוזר של באגים באזור מסוים (למשל, SQL הזרקת פרצות), הם יכולים ליזום דפוס קל משקל 5 למהות נכון בהערות הבקשה.השרשרת עלולה לחשוף כי הצוות חסר מנוף אוטומטי עבור שאילתות פרמטריות, שהוא תיקון מהיר יותר מאשר ביקורת ידנית כל קו.

לאחר תגובה

ב-DevOps, 5 Whys הוא חלק סטנדרטי של אירוע לאחר המוות.קבוצות רבות משתמשות בו בשילוב עם FLT:0 "חמשת הסיבות וכיצד" (ראה פרק 1: 1), שבו "למה" הסופי "למה" הוא בשילוב עם "איך לתקן אותו" צעד.

במהלך Sprint Retrospectives

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

מקור: (ב) ספר ה-SRE של גוגל על תרבות הפוסט-מורטום 1FIRLT: מתאר כיצד ניתוח שורש חסר אשמה גורם בבסיס מערכות אמינות.

מקרה: מכישלון שקט ועד משמרות אוטומטיות

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

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

אמצעי הנגד היה להוסיף בדיקת בריאות NTP לשרת מתן צינורות וליצור התראה ניטור כי גורם אם שעון סחף מעל 50 מ's. בתוך שבוע, באג "השלכה פג" נעלם ולא חזר על עצמו יותר משישה חודשים.הצוות גם עדכן את חוברת הפריסה שלהם כדי לאמת את מצב NTP לאחר כל תיקון אבטחה.

5 למה פולס קצר

אין כלי מושלם, 5 הסיבות עלולות לייצר תוצאות מטעות במצבים הבאים:

  • (FLT:0) מערכות משותפות גבוהה (FLT:1) - אם הכישלון הוא תוצאה של גורמים אינטראקציה רבים (למשל, עסקה מבוזרת כי פעמים בשל שילוב של שקיפות רשת, עומס, ושביעות רצון מסד נתונים), שרשרת ליניארית תגביר יתר על המידה. השתמש בתרשים סיבתי או ניתוח עץ אשם במקום.
  • (ב) ,0) ,הנחה בלתי-מרוצה שלא דוחף תשובות מעורפלות או מי מאפשר לשיחה להתמקח אצבע, יניב שורש רדוד וחסר תועלת.
  • (הפסקה:0) ulture ofאשימות FLT:1 – בארגונים שבהם יש להודות בטעות השלכות קריירה, המשתתפים יפסיקו לענות על בטיחות חברתית.

אם אתה נתקל במגבלות אלה, 5 מדוע עדיין יכול לשמש נקודת התחלה, אך לשקול שכבתו עם טכניקות אחרות כגון FLT:05W2H שיטת LT:1 (מי, מתי, איפה, איך, כמה) או פורמלית FLT:2fault Tree AnalysisFLT 3 עבור מקרים של אינסוף גבוה.

שיטות טובות ביותר עבור צוותי הנדסה

  1. (FLT:0) ביצוע כל מפגש בין 1:1 - שמור יומן חיפוש של 5 תוצאות של מדוע לאורך זמן, דפוסים יגלו נקודה זו חולשות מערכתיות (למשל, "הסתירה" המופיעה כגורם שורש בניתוחים מרובים).
  2. (ב) [ה]ההתמדה:0] ,התמקדו באג ספציפי או כישלון, בניסיון להסביר את כל הזינוק עם 5 סיבות מדוע יבטלו את הניתוח.
  3. (ב) [ה]:0] קדשו [ה'] את הפגישה ל-20-30 דקות, אם אתם מעלים את זה, תקבעו מעקב ולא למהר את "למה".
  4. (FLT:0) Involve תפקידים מגוונים של תפקידים מגווניםFLT:1 - כולל מפתחים, מהנדסי QA, צוות תפעול ובעלי מוצרים. נקודות מבט שונות להעשיר את שרשרת הסיבתיות.
  5. (ב) ,0) ,Validate עם נתונים של ההרחבה 1 (הראשונה ל- 1) – כל תשובה צריכה להיות נתמכת על ידי יומני, מדדים או תוצאות בדיקה.

מסקנה

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