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

מהי שיטת 5 הסיבות?

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

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

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

הפסיכולוגיה שמאחורי 5 הסיבות: למה היא עובדת

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

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

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

החל את 5 הסיבות לפיתוח תוכנה הנדסית

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

דוגמה ל-5 הסיבות לפעולה

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

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

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

שלב-בי-צעד מדריך לביצוע ניתוח 5 למהות

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

שלב 1: § § , ברור

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

שלב 2: להרכיב את המשתתפים הנכונים

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

שלב 3: שאל את "למה" הראשון

התחל על ידי לשאול מדוע הבעיה התרחשה.תכתוב את התשובה, אל תקבל "כי יש לנו באגים" או "כי מישהו עשה טעות" " Push for a Certain, עובדתית תשובה מסוימת, כגון "כי מאגר חיבור מסד הנתונים מותש חיבורים זמינים".

שלב 4: שאל "למה" שוב לכל תשובה

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

שלב 5: זיהוי פעולות נכונות

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

שלב 6: מסמך ושותף

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

מחקר אמיתי: פתרון מערכת עקבית

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

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

  • (ב) ,0) ,Problem:0) יישום הופך ללא תגובה למשך 10-15 דקות כל שבועיים עד שלושה שבועות.
  • (ב) מדוע?(ב) מדוע?(ה) 1 (מכיוון שתהליך היישום מפסיק לקבל קשרים.
  • (ב) מדוע?(ה)מבקשת ⁇ 1 (מ) כי התהליך יוצא מהזיכרון הזמין ומערכת ההפעלה OOM-kills אותו.
  • (ב) מדוע?(ה)מבקשת זיכרון 1:1) כי השימוש בזיכרון גדל בהדרגה עם הזמן מבלי להשתחרר.
  • (ב) מדוע?(ה)מבקשת ⁇ 1 (מכיוון שתפקיד רקע מסנכרן תוכן מ- API של צד שלישי מחזיק בסימוכין לאובייקטים המונעים איסוף אשפה.
  • (ב) מדוע?(ה) מדוע?(התפקיד משתמש באובייקט רשימה סטטי שצמח ללא כל מחזור מסונכרן, לעולם לא מנקה ערכים ישנים.

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

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

היתרונות של שימוש ב-5 הסיבות לקידוד הנדסה

צוותי הנדסה אשר מאמצים את 5 הסיבות כפרקטיקה סטנדרטית להשיג מספר יתרונות נפרדים:

  • (FLT:0)Root Cause Identification: FIRLT:1) הטכניקה מסמנת את הבעיה הבסיסית ולא רק לטפל בסימפטומים, למנוע צוותים מבזבז זמן על תיקונים שטחיים שאינם נמשכים.
  • (FLT:0) החלטה קולקטיבית: FIRLT:1 על ידי התייחסות לגורם השורש האמיתי, הצוותים נמנעים מהוצאות חוזרות ונשנות של זמן ומאמץ באותה רמה של בעיות.ההשקעה העליונה בניתוח מעמיק משלמת עבור עצמו פעמים רבות על פני תגובה מופחתת ועבודת מחדש.
  • (FLT:0Cultural Shift לכיוון חשיבה מערכתית: ⁇ 1) שימוש קבוע של 5 הסיבות מעודד צוותים לחשוב במונחים של מערכות, תהליכים וסביבות ולא אשמה אישית.
  • (FLT:0) ידע ללכוד וללמוד: FLT:1eur כל ניתוח 5 מדועs מייצר שרשרת של חשיבה המתועדת המשמשת כממצאים למידה עבור הארגון כולו. חברי צוות חדשים יכולים ללמוד ניתוחים קודמים כדי להבין מצבי כישלונ נפוצים ואת רציונלית מאחורי שיטות הנדסה נוכחיות.
  • (FLT:0) המצאת ההתחדשות: ⁇ 1 (מכיוון שפעולות תיקון מסבות את שורש הסיבה, אותה בעיה לא צפויה להופיע מחדש.

מגבלות וכיצד למיין את ה'

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

שיפור בעיות מורכבות

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

(ב) (ב) ⁇ :0) ⁇ (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

אישור Bas

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

(FLT:0) מיגנציה: 1.10.1 להבטיח נקודות מבט מגוונות מעורבים בניתוח.מנעו מחברי הצוות מתחומים שונים, כגון QA, תפעול וניהול מוצר.

לעצור מוקדם מדי

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

[הההתמדה:0] ,החוק שהניתוח אינו שלם עד שהתשובה מצביעה על תהליך, מדיניות או מערכת שניתן לשנות.אם התשובה היא על פעולתו של אדם, שאל "מדוע?", מדוע שוב, לחשוף את הגורמים המערכתיים שאִפשרו את הפעולה הזו.

חוסר OUTCOMes

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

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

5 מדוע עם שיטות אחרות של בעיות

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

דגים דיאגרמות

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

ניתוח שורש (RCA)

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

פוסט ללא שם: Mortems

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

שיפור מתמיד (Kaizen)

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

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

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

  • (ב) [ה]הזמן המדוקדק לניתוח יסודי: [ה] אל תמהרו את התהליך.תזמן פגישה ממוקדת עם המשתתפים הרלוונטיים ולהקצות מספיק זמן כדי לשאול שאלות עמוקות.
  • [ה]הסבר: [ה] כל תשובה: [ה] מעדים את שרשרת השאלות והתשובות בזמן אמת, זה יוצר תיעוד ברור ומונע מהצוות לאבד את עקבות ההיגיון.
  • (FLT:0) ו-Verify שורש הגורם עם נתונים: קיד 1 לפני יישום פעולות תיקון, לבדוק אם שורש מזוהה גורם למעשה מייצר את הבעיה הנצפה.זה עשוי לכלול שחזור הבעיה בסביבה מלחיצה או ניתוח יומני ומדדים כדי לאשר את הקישור הסיבתי.
  • (FLT:0) שמור על הניתוח פעולה: FLT:1 כל שורש גורם צריך להוביל לפחות שינוי קונקרטי אחד בקוד, תצורה, תהליך או תשתיות.
  • (FLT:0Share) ממצאי מחקר רחב: FLT:1 פרסמו את הניתוח בבסיס ידע משותף, wiki פנימי או בלוג הנדסי.עודד צוותים אחרים לסקור אותו וליישם חשיבה דומה במערכות שלהם.
  • (הופנה מהדף ⁇ :0) , לאחר כמה ניתוחים, יש צורך בחידוש על תהליך 5 למה עצמו.

מסקנה

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