מערכות ומאגרי מידע מאפשרים לנו לנהל את המידע הארגוני או הפרטי בצורה יעילה, נוחה ונגישה.
ככל שנשכיל להקפיד על איכות המידע הנאגר, כך נוכל להפיק משמעויות נכונות יותר ולבצע תכנון מדויק יותר לעתיד.
אחד הצעדים המשמעותיים בתחום מערכות המידע הניהוליות הוא המעבר מטופס ידני להזנה ממוכנת, הערך המוסף נמצא, בין השאר, ביכולת הסינון של מידע לא מדויק. אט-אט הפכנו את המחשב מגולם לשוטר, ועולה השאלה – האם לא האצלנו לו יותר מדי סמכויות.
תיעוד מול תכנון
כשניגשים לתכנן מערכת מידע, צריך להבחין בין תיעוד מידע על מאורע שהתרחש, לבין מילוי פרטים או הזנת מידע כחלק מתהליך או בקשה למשהו עתידי.
ניקח לדוגמא מערכת שמטפלת בנושא הנוכחות וההעדרות בעבודה – זו מערכת שיש בה רישום שעות נוכחות ("העברת שעון") וגם רישום בקשות לחופשה וניהול מגבלות על שעות העבודה כפועל יוצא מחוזה ההעסקה והחוק.
מבחינת תיעוד המציאות – המערכת צריכה לתעד כל פעם שהעובד מעביר את כרטיס הנוכחות שלו בשעון, גם אם מדובר ביום שאינו יום עבודה (שבת, חג) וגם בשעות לא שגרתיות. יחד עם זאת – מנגנון חישוב הנוכחות והשכר צריך להתעלם או להציף כחריג את כל הדיווחים שלא עולים בקנה אחד עם חוזה ההעסקה.
מבחינת ניהול תהליכים בארגון – עובד שמבקש לצאת לחופשה ארוכה, ואין לזכותו מספיק ימים – המערכת צריכה להתריע על כך מבעוד מועד (בשלב מילוי הבקשה במערכת) ולא לאפשר אישור החופשה – מפני שמציאות זו עדיין לא התרחשה.
ההבדל הרעיוני בין שני סוגי הדיווח האלה הוא מהותי. כפי שנכתב במאמר על הפקת דו"חות, לא ניתן להסיק מסקנות ממידע שלא קיים.
במערכת מידע שבה יש דיווח על נוכחות וגם על העדרות, ההעדפה היא לקלוט את הדיווח ולאמת (גם לעמת…) את הנתונים במקרה של סתירה אפשרית.
נסתכל על דוגמא מתחום הלוגיסיטיקה – סביר שלא ניתן לפתוח הזמנה לפריט שלא נמצא בתחום התפעולי של המחסן או העסק (נניח שמדובר במנהל מחסן מזון המבקש אספקה של מסמרים וברגים), אולם בספירת מלאי רצוי שתהיה אפשרות לרשום כל דבר שמצא במחסן, גם דברים שלכאורה לא אמורים כלל להיות בו – זו אחת הדרכים לאתר פריטים שנופקו בטעות למחסן הלא נכון.
במקרה הזה, בשלב ניתוח המערכת, צריך היה לשאול האם לאפשר קליטה של פריטים שלא הוזמנו, ולהתריע על כך לקולט ולמנפק, או למנוע את קליטץ האספקה לפני הגעתה למחסן. התשובה תלויה בתהליך עצמו – אם הקליטה למחסן מתבצעת לאחר שהסחורה נפרקה מהמשאית, ונהג המשאית כבר מזמן נמצא במשימה אחרת – נכון יהיה לרשום את קליטת הסחורה ולאפשר מעקב ובקרה, אם ניתן לעצור את תהליך הפריקה ולהחזיר את הסחורה לספק – כנראה שזה יהיה הטיפול המהיר יותר, לטובת כל הצדדים – במיוחד הלקוח שמצפה לקבל את המשלוח הזה.
עבור הדוגמא האחרונה אפשר להשתמש בהמחשה מציאותית – דברי דואר רשום – כל מרכז או סניף דואר מבצע תיעוד של דברי הדואר הרשום שעוברים דרכו, נשלחים ומתקבלים, גם אם הגיעו בטעות.
תיעוד זה מאפשר כמובן לבצע מעקב על הדואר הן על-ידי השולח והן על-ידי המקבל (הממתין לחבילה של גאדג'טים מסין…), אבל התועלת האמיתית היא היכולת לאתר ניתוב שגוי של דברי הדואר שהגיע למדינת אילינוי (ארה"ב) במקום לישראל, שתיהן מסומנות באותיות IL.
כללי אצבע והמלצות
ניתוח מערכות מקצוע הוא מקצוע שיש בו הרבה החלטות מבוססות הגיון, חלקן הגדול הוא פשוט להפעיל את השכל הישר (Common Sense), אך צריך להיות גם שחקן שח-מט, ולחשוב כמה צעדים קדימה, תוך התחשבות מלאה בצד השני – המשתמש. לחשוב ולתכנן כיצד להוביל אותו לבצע את הפעולה הנכונה, במינימום טעויות, ולהביא את התועלת המירבית לארגון.
ההחלטה האם המחשב הוא שוטר היא החלטה שהארגון צריך לקבל עפ"י המלצות מנתחי המערכות, המחיר של קיום מידע שגוי עלול להיות משמעות נמוך יותר מאשר אי קיום המידע כלל, ולכן הנטיה היא לאפשר קליטת מידע, גם שגוי, כשמידע זה הוא תעוד המציאות.
ההמלצה הראשונה – לא למהר ולהגדיר מזהה חד-ערכי ("מפתח ראשי") שיגרום לנו לאיבוד מידע: כשמקימים מאגר לקוחות, או רשימת תפוצה, רצוי לאפשר כפילות של מספרי טלפון או כתובות דוא"ל ולא להשתמש בנתון זה כמזהה חד-ערכי, מהסיבה הפשוטה שייתכן ששני אנשים שונים משתמשים באותה כתובת דוא"ל ואותו מספר טלפון (בעל ואשה, הורה וילד…).
ההמלצה השניה – למנוע הזנת ערכים "לא תקינים" בטפסי יצירת קשר או פתיחת פניה: לא לאפשר אותיות בשדה מספר הטלפון, לחייב הזנת שם פרטי שלא כולל ספרות או מספיק ארוך ("א" זה לא שם פרטי!) וכדומה.
ההמלצה השלישית – לתת לשלשה אנשים לעשות מבחן שפיות להחלטות שקיבלתם – אדם מבוגר, אדם שסולד ממחשבים וילד קטן (כיתה א'/ב'), סביר להניח שאם אתם מנתחי מערכות – לפחות אחד משלות האנשים שתבחרו חושב בצורה שונה מכם, ועשוי לפתוח חלון הזדמנויות שאולי לא ראיתם.
פלפל חריף
אי אפשר לסיים בלי משהו פיקנטי – תאריך לידה.
מרבית המערכות היום מאפשרות להזין תאריך לידה כבחירה מתוך לוח שנה, חלק גדול מהן מאפשר להזין גם ידנית. כנראה שאין אף מערכת שמכבדת את עצמה ואת מנתחיה, המאפשרת להזין תאריך לא חוקי (30 בפברואר למשל).
אז מה עושים עם כל העולים ממדינות שבהן לא היה רישום מסודר, והדבר היחיד שהסבתא זוכרת זה שאמרו לה שהיא נולדה אחרי פסח?
בכל המקומות שבהם החליטו לרשום תאריך תקין (לכאורה מדויק, אבל מבוסס על ניחוש) – מאבדים את המידע שזהו תאריך מקורב, עם הזמן, מתחילים להתייחס לתאריך כעובדה שלא ניתנת לערעור.
ישנן מערכות שמאפשרות לרשום תאריך לידה חלקי (רק שנה, או רק שנה וחודש) או תאריך לידה מקורב, על-ידי רישום הנתון בשדה אחר, גמיש יותר מאשר תאריך תקני, שמאפשר שימוש בו כנתון מקורב. מערכת אחת כזו היא Geni.com, שבה אני, ורבים אחרים, מנהלים את אילן היוחסין שלהם. המערכת מיועדת לאיסוף שבבי מידע במטרה להקים אילן יוחסין עולמי. ניתן לרשום בה גם מידע תאריכי כמו "בין 12 בדצמבר 1672 ל-פברואר 1673", המידע לא נשמר כמלל, אלא כנתון שאפשר לבצע איתו חישובי גיל מקורב, בדיקות סבירות על תקופת חיים, תאריך הורות ועוד. במקרה זה, הדרך בה המידע נרשם מסייע להגשמת המטרה של הארגון – התאמות רבות ככל האפשר בין אנשים באילן היוחסין.
7 מחשבות על “האם המחשב הוא שוטר?”
ועוד משהו – במערכת שפיתחתי לפני שנתיים בערך, היו לנו מקורות מידע באיכות מאד מפוקפקת.
בדרך כלל מערכות בינה עסקית מגלות מידה מסויימת של סבילות למידע זבלי, למשל באמצעות אלגוריתמים שמנקים תווים מסויימים ומנסים להתאים מידע לתבניות ידועות. בדרך כלל מידע שממש מפר את הכללים גורם לכשלון בטעינה ודורש טיפול.
במערכת ההיא, מאחר והיא היתה צריכה להיות מאד זמינה, ושימשה גם כמערכת להפצת וניהול מידע בארגון (MDM), בנינו מהלך טעינה מעט שונה, שהיה מוכן לקבל בערך כל זבל שנשלח אליו, ואז לבצע על הקלט סדרה של פעולות לפי טיבו. כל מה שהפר את הכללים תועד בלוג ונשלח לנציג הלקוח בדו"ח קריא ופשוט שגם סכם את הסטטוס של כל רכיב לכדי מחוון רמזור פשוט בכותרת. המערכת ידעה להתמודד עם הרבה מצבים שהוגדרו מראש עסקית ו"לתקן" את המידע (תוך דיווח), וגם ידעה לבודד מידע ב"הסגר" ולדווח עליו במידה והוא לא היה בר תיקון לפי הפרמטרים שהוגדרו לה.
זה כמובן הוסיף תקורה לא מבוטלת לתהליך הטעינה, אבל קיבלנו מערכת מאד חסינה, שפשוט אף פעם לא נופלת, ומדווחת בדיוק על כל בעיה במידע. אני חושבת שבמערכות בינה עסקית לפעמים קל לנו מדי להשליך את האחריות למידע למערכות המקור, ודווקא גישה כזו יכולה למנף את מחסן הנתונים כמסננת מרכזית שמיישמת חוקה עסקית על המידע שזורם דרכה.
אני נהנה לקרוא את התגובות שלך מפני שתמיד אני לומד מהן משהו חדש.
המצב שאת מתארת מסתדר לי מאוד עם התפישה שלי – אם אפשר לטייב את המקור – מצוין, אם אי אפשר – אני רוצה לנסות לקלוט ממנו את הטוב ביותר שיש.
גם במערכת ה"היא" ששנינו מכירים – תאריכים דפוקים היו נרשמים בצורה דפוקה (30 בפברואר למשל), ומערכות שגזרו את המידע הזה היו מנסות לטייב אותו בשלב הגזירה, מתוך תקווה שיום אחד יבוא מישהו מטורף מספיק וחולה סדר שיעשה מחקר על הנתונים הדפוקים וירים פרויקט טיוב רציני.
כנראה שהמציאות היא אחרת – יגיע היום שבו הדינוזאור ימות, וכל המידע שהיה ברמת "בערך", יעלם או ייחלט בדמות נתון תקין שלא אומר כלום.
מעגל הבקרה והטיוב שאת מתארת יכול להיות כלי עזר חשוב בכל הסבת מערכת מידע גדולה שמכבדת את עצמה, בתנאי שההנהלה של הארגון מוכנה להשקיע בתקורה הזו לטובת מידע אמין ומדויק יותר.
לפעמים יש לנו מזל נדיר, ואנחנו זוכים לרכוש מספיק אמון מצד הלקוח כדי שיהיה מוכן להשקיע בתקורה שהצלחנו להסביר לו את התועלת שבה. הפרוייקט הזה היה מקרה כזה – ולמען ההגינות עלי לציין שהמניע העיקרי להשקעה הנ"ל על ידי הלקוח היה האיכות המחרידה של המידע שנכנס למערכת.
באפיון המקורי המערכת היתה מערכת סבילה, שמערכות אחרות דוחפות אליה מסרים והיא מחזירה שגיאות במידה ונשלח זבל. אחרי כמה פאשלות טובות מצד מערכות המקור (שנכתבו על ידי אנשים לא מקצועיים, על פלטפורמות נוראיות ובלי ידע רלוונטי) הוסקה המסקנה שבעצם הצוות היחיד שמסוגל לתפוס ולדווח בצורה אמינה על כל הבעיות הוא צוות מחסן הנתונים. העובדה שהיינו היחידים באיזור עם ידע רלוונטי בתחום איכות ואמינות נתונים גם הועילה.
וגם הצבעים ברמזורים. זה ממש הדליק להם את העיניים 😉
וכמעט שכחתי, רוב תודות על המחמאה, זו בדיוק הסיבה שאני אוהבת כל כך לקרוא את הבלוג שלך 🙂
החלק האחרון חידש לי מאד והוא פשוט מרתק.
ואני יכולה להוסיף עוד משהו מהתחום שבו אני עוסקת היום (בינה עסקית): מערכות תפעוליות רבות לא מסוגלות לעקוב אחר שינויים במידע, ומעדיפות לשמר תמונת מצב נוכחית. עקרונות פשוטים כגון תיעוד שינויים בצד, או מחיקה לוגית לעומת מחיקה פיזית, יכולים לעזור להתחקות אחר שינויים במידע. בדומה להגדרה גמישה של המפתוח, הם מאפשרים לשמור מידע שקשה לנחש מראש שנזדקק לו בהמשך.
מישהו אמר תרביטול? 🙂
אח, תרביטול…
זו היתה מערכת יוצאת דופן לחלוטין בעיצוב הנכון שלה, למרות כל הזבל שהיא איפשרה.
אני תוהה לפעמים האם המעצבים המקוריים חשבו על כל ההשלכות (סטוגודוש!) של העיצוב שלהם, ולאן נעלמה הבינה הזו במערכות בנות ימינו, שפשוט מתעללות במידע שלהן חופשי חופשי (ואת זה אני אומרת מהמקום של DBA, מנתחת מערכות, אשת בינה עסקית ועוד).