למרות הכותרת, זה לא הולך להיות פוסט נוקב נגד מבקר המדינה.
ממש לא.
אפילו לא בכיוון.
הפעם אני רוצה לדבר על כלי הבקרה שיש לנו, כמנהלי מאגרי מידע.
למעשה, ניתן להשליך מהנאמר כאן על כלי בקרה בתחומים רבים : טכנולוגי, עסקי, כלכלי, בריאותי וכל תחום אחר שניתן לחשוב עליו.
תמונת מצב עדכנית
בתפקידי האחרון כמנהל מאגר מידע גדול ומרכזי, פיתחתי לעצמי כלים שיאפשרו לקבל תמונת מצב על מה שקורה במאגר "שלי". חלק מהכלים הציפו מידע סטטיסטי בפילוחים שונים, שאפשרו לראות, במבט אחד מהיר, שהכל בסדר, ולא אירע משהו חריג מאז הפעם האחרונה שבדקתי.
הייתי משקיע בכך כשעה עד שעתיים בשבוע. זו היתה פתיחת השבוע שלי – לראות שהכל בסדר, שאין טרגדיה שצריך לטפל בה או שריפה שצריך למהר ולכבות, ואז להמשיך, רגוע, לעבודה השוטפת.
זיהוי חריגים ואיתורם
רובד נוסף היה דו"ח חריגים, היה זה אוסף שאילתות מורכבות שהציג "מדד חריגים". "מדד חריגים" התפתח עם השנים על-בסיס המקרים שפגשתי ביום-יום. חלק מהמקרים הוכנסו אל תוך המערכת כבקרה מונעת שמשמעותה – מראש לא תתאפשר הכנסת מידע לקובץ, שיגרום לסיטואציה שמוגדרת "חריג". חלק אחר מהמקרים נוספו לדו"חות הבקרה, כי מדובר במקרים שקשה להכניסם כבקרה מונעת ממחושבת, אך קל ופשוט לבדוק אותה בעין אנושית בהשקעה של זמן מועט יחסית, או במקרים של חוסר ודאות שבהם קל לוודא בצורה ממוחשבת שהנתון תקין, אולם תוצאה לא תקינה, לא בהכרח מצביעה על תקלה (בעולם הסטטיסטיקה והרפואה זה נקרא False Negative). במקרים כאלה ההחלטה היתה לא למנוע הזנה של המידע, אבל כן לבצע עליו בקרה אנושית בדיעבד.
אתרעה על הגבול
עולם תוכן שלישי שבוצעה עליו בקרה, היה "קירבה לגבול", לא הגבול שלנו עם סוריה, לא עם לבנון, ואפילו לא מצרים או ירדן, אלא גבול היכולת של המערכת.
זה המקום להסביר, בקצרה, שלא משנה כמה גדולים הם המשאבים שמוקצים למערכת, תמיד יגיע היום שהתכולה תתחיל "לדגדג" את הגבול, כי הכנסנו יותר מידע ממה שתכננו בהתחלה, כי לא מחקנו מידע הסטורי מיותר, כי לא בצענו איחוי קבצים בדיסק הקשיח, או סתם כי נגמרו הערכים בטבלת הקודים שהגדרנו.
איתור מקרים כאלה של "קירבה לגבול" מבעוד מועד, מנעו קריסת המערכת בהגיעה באמת לגבול, ואיפשרו להערך, מבחינת משאבים, תוכנית עבודה ורכש, להגדלת היכולות של המערכת או להתמודדות מושכלת אחרת עם הבעיה.
הדו"ח האופטימי שמבשר רעות
את כל סוגי החריגים היה חשוב "להרגיש" בעיניים.
אם היה דו"ח בקרה שחששתי ממנו, זה היה דו"ח בקרה שיוצא ריק מתוכן. במקרה כזה, לא יכולתי לדעת האם באמת הכל בסדר, או שקרה משהו למערכת הבקרה, ולכן, החלטתי שאני מוריד מעט את סף הבקרה, במחיר של הכנסת מידע מיותר לדו"ח, ובלבד שהוא לא יצא ריק.
הדוגמא הטובה ביותר לכך היא דו"ח "גודל קובץ", לצורך הפשטות, נאמר שיש מגבלה כלשהי על גודלו של קובץ נתונים במערכת, כדי לקבל את תמונת המצב של הקבצים במערכת היו שני דו"חות:
האחד, מיפוי סטטיסטי של הקבצים לפי גודל (כמה קבצים יש בכל קבוצת גודל) – אם היתה התפלגות סבירה – מרבית הקבצים נמצאים באמצע הסקאלה – אפשר לעבור לדו"ח הבא, אחרת – יש להכנס לבדיקה מעמיקה יותר, שמתחילה בהשוואה לדו"ח הקודם כדי לנסות לזהות תופעות אופייניות (לדוגמא – מעבר שנה בלי הורדה לארכיון, או הוספת פריט מידע חדש, בעל נפח רב).
הדו"ח השני הציג בצורה מפורטת את רשימת הקבצים בעשירון העליון (או במאיון העליון, תלוי בכמות הקבצים, ואופן הטיפול הנדרש). גם דו"ח זה עבר מבט עין והשוואה לדו"ח מהפעם הקודמת.
חריגה מהנורמה טופלה באמצעות מחיקת המידע מיותר או הפחות רלוונטי, נקיטת פעולות להגדלת המשאבים או צמצום ומניעה סלקטיבית של הכנסת מידע חדש לקובץ, במידת האפשר כמובן.
כלי בקרה נוספים
את תפקיד מנהל מאגר המידע עזבתי לפני יותר משנתיים, כיום אני עוסק, בין השאר, בבקרת העברות מידע בין שני מאגרים גדולים. אחד התהליכים הוא קבלת קובץ ממאגר מידע א', אחת לתקופה, לבדוק את תקינותו, ולטעון למאגר מידע ב' במערכת היעד. זמן קצר לאחר הכניסה לתפקיד, בניתי מעין "יומן מעקב", בגליון אלקטרוני פשוט, בו נרשמו תאריך הטעינה וכמות השורות בקובץ. בכל טעינה, היקף המידע בקובץ שמגיע מא' אמור להיות דומה לפעם הקודמת, ולכן הוספתי בגליון המעקב עמודה שמציינת בצבע אדום אם יש חריגה בשיעור מסוים בכמות הרשומות ביחס לפעם הקודמת.
הכל היה בסדר עד שפעם אחת, לצערי באיחור, גילינו שהקובץ שנטען למערכת היה קובץ ישן. היומן ה"מתוחכם" שלי לא התריע על הבעיה הזו, כי החריגה היתה אפס(!) ולא מעל הסף שיש לבדוק. כמובן שמיד הוספתי בקרה חדשה שמתריעה אם גודל הקבצים וכמות השורות זהה לפעם הקודמת (בגופן מודגש בצבע בוהק!!!).
מעגלי בקרה
הנסיון בניהול מאגר מידע רגיש הוביל לבניית תפיסת ניטור ובקרה שנקראת "מעגלי בקרה", הבסיס לתפיסה הוא לזהות את הבעיות מוקדם ככל האפשר, במינימום התראות שווא, אך ללא תקלות שיחמקו מן העין. הדרך לבצע זאת היא להגדיר כלי בקרה שסף הרגישות שלהם משתנה, וכך גם תדירות הפעלתם, כדי להוביל להשקעת זמן סביר בבקרה, באיתור הבעיות ובטיפול בהן. הבקרה הטובה ביותר היא בקרה מונעת, אך כפי שציינתי בפסקה הראשונה, לא תמיד ניתן לעשות זאת, לכן מעגל הבקרה הראשון יהיה איתור של כל המקרים שקיימת סבירות גדולה שהם לא תקינים. מעגל בקרה זה יהיה בתדירות יומית, המעגל הבא יאסוף את המקרים הפחות נפוצים ופחות קריטיים, ובנוסף, תהיה תמונת מצב סטטיסטית על כמות התקלות או "כמעט תקלות" על פני תקופה של שבוע. כל עוד הרמה נשמרת קבועה, כנראה שהדברים מתקדמים כמו שצריך, אחרת יש לבדוק לעומק חריגות מהנורמה. מעגלי בקרה בקרה נוספים יספקו תמונת מצב על תקופה ארוכה יותר, בפילוחים שונים שמאפשרים לראות חריגות במבט מהיר.
מעגל הבקרה ה"כמעט" אחרון יהיה כמובן בקרה על מעגלי הבקרה – בדיקה שאכן כל כלי הבקרה הופעלו במועד.
והמעגל האחרון?
המעגל האחרון הוא הבעייתי מכולם. המעגל האחרון הוא הגורם האנושי, שצריך לבדוק שכל מה שהוכן, פעל, איתר חריגים והביא תוצאות – אכן מקבל את ההתיחסות הראויה ולא נשלח כלאחר יד לתיבת המיילים שנקראו, או ל"פח הזבל" הוירטואלי או האמיתי.
היה מעניין? אנא שתפו, תנו "לייק", ספרו לחברים, עמיתים, מנהלים וכל מי שעשוי להפיק תועלת.
מעוניינים להיפגש כדי לנסות לשפר את מעגלי הבקרה בארגון שלכם? מוזמנים ליצור קשר!
8 מחשבות על “לבקר את המבקר”
לפחות אצלנו הרופאים ההגדרה של שלילי כזוב (false negative) היא שונה.
כאשר מדובר בבדיקה שאמורה לתת חיווי על מצב הנבדק התוצאה יכולה להיות שלילית (בדיקה תקינה) או חלילה חיובית (בדיקה פתולוגית).
אם הבדיקה משקפת נאמנה את מצב הנבדק התוצאה תהיה חיובית או שלילית אמיתית (true positive/negative).
אם הבדיקה לא משקפת נאמנה את מצבו של הנבדק התוצאה תהיה חיובית או שלילית כזובה (false positive/negative), היינו בדיקה תקינה ונבדק פתולוגי או להיפך.
שיעור התוצאות הכזובות הוא מדד חשוב בהערכת אמינות הבדיקה יחסית לאמת הזהב (gold standard).
למעט זאת, כתמיד, חומר קריאה משובח…
תודה רז,
כרגיל השכלתי.
אם ככה, איך נקראת בדיקה שהתוצאה החיובית (או השלילית) שלה אמינה ב-100% והתוצאה האחרת נכונה במידה פחותה?
פוסט מעולה. אתה יכול לתת דוגמא ל"חריג" בבקשה? מה עלול לקרות אם נזין מידע לאותו "חריג" , ומה "חריג" בו?
הוד, תודה על הפרגון.
נתון "חריג" לא חייב להיות חריג בפני עצמו, הוא יכול להיות נתון מאוד תמים, אלא שכשהוא מתנגש עם נתון אחר במערכת זה מה שהופך אותו לחריג – ולפעמים זו הסיבה שקשה למנוע את הזנתו.
בלי להכנס יותר מדי לפרטים בעייתיים – ניקח דוגמא תיאורטית – בעבר – לא היתה בדיקת תקינות על השדה מספר זהות, וניתן היה להזין מספר זהות ללא ספרה מובילה, או ללא ספרת ביקורת. באותה תקופה הוזנו כל האפשרויות ההזויות, כלל מספרים שגויים לחלוטין.
הבעיה בנתון כזה שגוי היא ברורה – אין לך יכולת לזהות במי מדובר.
כאשר החלו ליישם את הבקרה בקליטת המידע – הכניסו אותה כבקרה מונעת להזנת מידע חדש, ולכן לא יהיו נתונים חדשים בעייתים, אך עדיין יש נתונים ישנים שצריכים טיפול.
דוגמא נוסםת באותו תחום – במקום העבודה לא מזהים עובד לפי מספר הזהות שלו אלא לפי מספר העובד. מספר זהות הוא נתון אינפורמטיבי שלא מוגדר כמזהה חד-ערכי. הזנת מספר זהות תקין לשני אנשים שונים לא נמנעת ע"י המערכת, ויחד עם זאת קיים דו"ח בקרה שמאתר רשומות כאלה לטיפול ובירור ידני (אולי באותו מקום עבודה יש חשיבות לפתוח רשומה חדשה לעובד שעובר בין שתי מחלקות שונות במהותן?)
במסגרת העבודה שלי אני גם נדרש לכתוב בקרה לקלט של המשתמש. אני תמיד מניח שהמשתמש הוא טיפש וינסה להזין את הנתונים הכי שגויים והזויים שרק אפשר – אפילו לדמיין שאתה נותן לקוף להקליד את הנתונים למערכת. זו הדרך הכי טובה מבחינתי לכתוב בקרות.
הבעיה שיש בקרות שמתגלות רק עם הזמן, ונתונים שגם אם תזין ויראו לך נכונים ותקינים – לא תדע איך ישפיעו על המאגר.
קרה לי דבר כזה לפני זמן מה, שהזנתי נתון שלא ידעתי שיכול לגרום לאי-יציבות במערכת, ובעקבותיו כתבתי בקרה חדשה.
נתת לי רעיון לאחד הפוסטים הבאים…
הגורם האנושי.. חחח
אני מקווה שזה לא שגרמתי לטעינה השגוייה..
קריאה חובה לכל אדם שחושב להתעסק עם מידע – בעצם כולם חייבים לקורא..!
לא אשר, זה ממש לא אתה. זה קובץ שפשוט לא הופק נכון בצד א'. בלי להיכנס לפרטים כמובן.
תודה על הפרגון!!!