הסבת מערכות ותיקות: Magic, uniPaaS, Access, VB6
בהרבה חברות בישראל עדיין רצה מערכת שנכתבה לפני עשר או עשרים שנה ב-Magic, ב-uniPaaS, ב-Access או ב-Visual Basic 6. היא עושה את העבודה. הבעיה היא לא שהיא גרועה, אלא שיש פחות ופחות אנשים שיודעים לשנות אותה.
בקצרה
יש ארבע דרכים, וכתיבה מחדש מאפס היא לא תמיד הבחירה הטובה ביותר. להשאיר ולייצב, אם המערכת עובדת ומשתנה לעיתים רחוקות. לשדרג בתוך הפלטפורמה: ל-Magic יש מסלול מ-uniPaaS ל-Magic xpa. להעביר בחלקים: מערכת חדשה גדלה לצד הישנה ולוקחת ממנה פונקציות, אחת אחת, עד שהישנה מתרוקנת. לכתוב מחדש, אם הפלטפורמה הישנה כבר מפריעה לעסק. הבחירה לא מתחילה בטכנולוגיה, אלא בשתי שאלות: איפה נמצאת הלוגיקה העסקית, ומי יכול להסביר אותה היום.
למה עכשיו
| פלטפורמה | מה ידוע |
| Magic, uniPaaS | פלטפורמה ישראלית. הקו עבר מ-eDeveloper דרך uniPaaS ל-Magic xpa, והמוצר ממשיך להתפתח. אחרי המיזוג עם מטריקס, מג'יק יצאה מהבורסות |
| Visual Basic 6 | סביבת הפיתוח לא נתמכת כבר מזמן. סביבת ההרצה נתמכת יחד עם גרסאות Windows נתמכות, אבל רק בתקלות חמורות ובפגיעויות קריטיות, ורק במצב 32 ביט. Microsoft ממליצה במפורש להחליף אפליקציות כאלה |
| Microsoft Access | התמיכה ב-Access 2016 וב-Access 2019 הסתיימה. Access עצמו ממשיך לחיות בתוך Microsoft 365, ולכן השאלה היא לא אם הוא נעלם, אלא על איזו גרסה המסד שלכם רץ |
המכנה המשותף הוא לא הטכנולוגיה. מי שכתב את המערכת יצא לפנסיה או עבר לחברה אחרת, ומפתחים חדשים לא לומדים את הפלטפורמות האלה.
ארבע דרכים
1. להשאיר ולייצב
אם המערכת עובדת, משתנה פעם בשנה והנתונים שלה לא נדרשים למערכות אחרות, אין צורך לכתוב אותה מחדש בגלל אופנה. מה שצריך הוא משהו אחר: גיבוי שנבדק בשחזור, תיאור של מה שהמערכת עושה, ואדם שיודע להפעיל אותה מחדש.
2. לשדרג בתוך הפלטפורמה
ל-Magic יש אצל היצרן אשף שדרוג שמעביר פרויקטים של eDeveloper ו-uniPaaS ל-Magic xpa. פרט חשוב מהתיעוד: השדרוג בלתי הפיך, ואחריו אי אפשר לפתוח את הפרויקט בגרסה הישנה. לכן עושים אותו על עותק ועם תוכנית בדיקות. הדרך הזו שומרת על הלוגיקה, אבל לא פותרת את שאלת האנשים.
3. להעביר בחלקים
המערכת החדשה נבנית לצד הישנה. קודם מתחברת למסד הישן שכבה מודרנית: דוחות, ממשק ווב, אינטגרציה עם מערכות אחרות. אחר כך הפונקציות עוברות אחת אחת למערכת החדשה, והישנה ממשיכה להריץ את השאר. הסיכון הכי נמוך, כי בכל רגע ממשיך לעבוד מה שעבד.
4. לכתוב מחדש
מוצדק כשהפלטפורמה הישנה מונעת את מה שהעסק צריך: אין גישה מהדפדפן, אי אפשר להתממשק, המערכת לא עומדת בנפח. הטעות הנפוצה כאן: לכתוב מחדש לפי המסכים של המערכת הישנה ולא לפי הכללים העסקיים. מסכים עוברים בקלות, הכללים שמוסתרים בהם הולכים לאיבוד.
איפה מסתתרת הלוגיקה העסקית
במערכות בגיל הזה הלוגיקה כמעט אף פעם לא נמצאת במקום אחד. בדרך כלל היא מפוזרת בין שלושה מקומות:
- בקוד של המסכים והפרוצדורות: חישוב הנחה, בדיקת מלאי, כלל עיגול.
- במסד הנתונים: טריגרים, פרוצדורות שמורות, שדות שמתמלאים "לבד".
- בראש של אנשים: "בסוף החודש צריך ללחוץ על הכפתור הזה פעמיים". הכלל הזה לא כתוב בשום מקום, חוץ מההרגל של העובד.
המקום השלישי חשוב יותר משני הראשונים. הסבה שכיסתה את הקוד ואת המסד אבל לא דיברה עם אנשים תשחזר מערכת שאף אחד לא באמת משתמש בה.
לכן הצעד הראשון בכל אחת מהדרכים זהה: לשחזר מה המערכת עושה. זו אותה עבודה כמו הנדסה לאחור של מערכת קיימת, ו-AI עוזר כאן לא מעט: הוא קורא קוד ישן מהר ומציע תיאור, שאחר כך בודקים מול נתונים אמיתיים ועם האנשים.
איך בוחרים דרך
| שאלה | אם כן | אם לא |
| המערכת משתנה יותר מפעם ברבעון? | לשדרג או להעביר בחלקים | להשאיר ולייצב |
| מערכות אחרות צריכות את הנתונים שלה? | להעביר בחלקים, להתחיל מאינטגרציה | אפשר לא למהר |
| יש אדם שמבין אותה? | פחות דחוף, אבל לכתוב את מה שהוא יודע | דחוף, להתחיל מהתיאור |
| הפלטפורמה מפריעה לעסק? | לכתוב מחדש, אבל לפי כללים עסקיים | לשדרג או לייצב |
שאלות נפוצות
מה עושים עם מערכת על Magic או uniPaaS?
יש ארבע דרכים: לייצב כמו שהיא, לשדרג ל-Magic xpa עם האשף של היצרן, להעביר פונקציות בחלקים למערכת חדשה או לכתוב מחדש. הבחירה תלויה בתדירות השינויים במערכת, בשאלה אם מערכות אחרות צריכות את הנתונים שלה, והאם יש מי שמבין אותה.
אפשר לשדרג uniPaaS ל-Magic xpa?
כן, ליצרן יש אשף שדרוג לפרויקטים של eDeveloper ו-uniPaaS. לפי התיעוד, השדרוג בלתי הפיך, ולכן עושים אותו על עותק ועם תוכנית בדיקות.
Visual Basic 6 עדיין נתמך?
סביבת הפיתוח לא. סביבת ההרצה נתמכת יחד עם גרסאות Windows נתמכות, אבל רק לתקלות חמורות ולפגיעויות קריטיות. Microsoft ממליצה להחליף אפליקציות כאלה.
חייבים לכתוב מחדש מערכת ב-Access?
לא. אם המסד עובד ומשתנה לעיתים רחוקות, מספיק לייצב אותו ולבדוק את גרסת ה-Access. הסבה מוצדקת כשאנשים רבים עובדים עליו במקביל, או כשצריך גישה מהדפדפן או אינטגרציה.
אפשר להשתמש ב-AI כדי להסב מערכת ישנה?
כן, במיוחד בשלב התיאור: AI קורא קוד ישן מהר ומציע מה הוא עושה. אבל את התיאור בודקים מול נתונים אמיתיים ועם האנשים שעובדים עם המערכת, אחרת הולכים לאיבוד כללים שלא נמצאים בקוד.
SLAtech LTD