כל מערכת עסקית עושה עבודה שאתם לא רואים. לקוח מזמין, ומאחורי הקלעים המערכת שולחת לו מייל אישור, מפיקה חשבונית, מעדכנת את המלאי ומודיעה למחסן. המשימות האלה מחכות בתור ברשימת מטלות, והמערכת מטפלת בהן ברקע.
בעלי עסקים רבים שומעים שהם צריכים כלי נפרד ומסובך יותר כדי לנהל את הרשימה הזו. ״אנחנו באמת צריכים את זה?״ היא השאלה שהכי שואלים אותנו. התשובה שלנו כמעט תמיד היא ״עדיין לא״. מערכת פשוטה עולה פחות להפעלה, יש בה פחות חלקים שיכולים להתקלקל, וקל יותר לתקן אותה כשמשהו משתבש. זה נכון גם לתוכנה שנבנתה במיוחד לעסק שלכם, גם לחנויות אונליין וגם לכלים שחיברתם כדי שידברו זה עם זה.
ככה תדעו אם הפתרון הפשוט עדיין מספיק לעסק שלכם, ומה עושים כשכבר לא.
הפתרון הפשוט שכבר יש להרבה עסקים
בחצי מהמערכות שבדקנו בשנתיים האחרונות, רשימת המטלות הזו נמצאת בתוך מסד הנתונים הראשי: אותו מקום שבו נשמרים הלקוחות, ההזמנות והחשבוניות. (מפתחים קוראים לזה ״Postgres כתור״.)
זו הדרך הזולה ביותר לעשות את זה, והיא עובדת הרבה יותר טוב ממה שרוב האנשים מצפים. ברוב העסקים, רשימה אחת כזו מטפלת באלפי משימות בדקה בלי להתאמץ.
ככה זה עובד:
- משימה נכנסת לרשימה, למשל ״לשלוח ללקוח הזה אישור הזמנה״.
- עוזר רקע (חלק קטן במערכת שמבצע את המשימות) לוקח את המשימה הבאה ומסמן אותה ״בטיפול״, כדי שאף עוזר אחר לא ייקח אותה במקביל.
- העוזר מבצע את העבודה.
- אם הכול עבר בהצלחה, המשימה יורדת מהרשימה. אם משהו נכשל, המערכת רושמת את זה ומנסה שוב אחר כך.
למה פשוט חוסך לכם כסף וכאב ראש
לשמירת הרשימה בתוך מסד הנתונים הראשי יש יתרונות אמיתיים:
- אין עוד משהו לעקוב אחריו. מסד הנתונים שלכם כבר נמצא במעקב, אז גם רשימת המטלות.
- אין עוד משהו לגבות. מסד הנתונים כבר מגובה, אז גם המשימות שמחכות בתור שמורות.
- אין עבודה חצי גמורה. משימה יכולה להישמר יחד עם ההזמנה שהיא שייכת אליה. או ששתיהן נשמרות, או שאף אחת מהן לא. כך לא תהיה הזמנה שהמערכת ״שכחה״ לשלוח עליה אישור.
- קל למצוא בעיות. כשמשימה נכשלת, הצוות שלכם יכול לחפש אותה בדיוק כמו שמחפשים הזמנה. בלי ספק חיצוני ובלי עוד מסך ניהול שצריך להתחבר אליו.
- תשלום אחד פחות. אין עוד שירות לשלם עליו, להקים ולתחזק.
כל כלי שמוסיפים הוא עוד משהו לשלם עליו, עוד משהו ללמוד, ועוד משהו שיכול להפסיק לעבוד דווקא ביום הכי עמוס שלכם.
שלושה סימנים שהפתרון הפשוט כבר קטן עליכם
הפתרון הפשוט לא יספיק לנצח. שלושת הסימנים האלה אומרים שהגיע הזמן לעבור לכלי נפרד שנבנה במיוחד לעבודה הזו.
1. המערכת מאטה בזמנים אקראיים. כשמיליוני משימות עוברות ברשימה כל יום, השאריות מצטברות מהר יותר ממה שמסד הנתונים מספיק לנקות. ואז המהירות מתחילה לקפוץ: איטי, מהיר, ושוב איטי. חלוקה של הרשימה לפי תאריכים עוזרת לזמן מה, אבל בסוף גם זה כבר לא עוזר.
2. עוזרי הרקע דוחקים את כל השאר. כל עוזר מחזיק קו פתוח משלו למסד הנתונים, ומסד נתונים יכול להחזיק רק מספר מוגבל של קווים פתוחים. למשל, אם 50 עוזרים מחזיקים כל אחד קו פתוח, רשימת המטלות לבדה יכולה לתפוס חצי ממה שמסד הנתונים מסוגל לשאת. נשאר פחות מקום ללקוחות ולעובדים שלכם. שני דברים משפרים את המצב: לתת לכמה עוזרים לחלוק את אותו קו, ולהאיץ כל עוזר כדי שיהיה צורך בפחות עוזרים.
3. משימה אחת צריכה להפעיל הרבה אחרות. נניח שהזמנה חדשה אחת צריכה להתחיל עשר משימות המשך בכמה מערכות שונות. רשימה פשוטה יכולה לעשות את זה, אבל המבנה נעשה שביר ורגיש לתקלות. זו הנקודה שבה כלי נפרד שנבנה במיוחד לזה באמת שווה את המחיר.
איך עוברים בלי לאבד כלום
עשינו את המעבר הזה שלוש פעמים. זו הדרך שעובדת:
שלב 1: מכינים את הקרקע. לפני שמשנים משהו, מוודאים שכל חלקי המערכת מוסיפים ולוקחים משימות דרך דלת אחת בלבד. בהתחלה הדלת הזו עדיין מובילה לרשימה הישנה. אחר כך, ברגע המעבר, צריך להחליף רק את מה שמאחורי הדלת. השלב הזה הוא בערך חצי מכל העבודה.
שלב 2: מפעילים את שניהם במקביל במשך שבועיים. כל משימה חדשה נכנסת גם לרשימה הישנה וגם לכלי החדש. הכלי החדש מבצע את העבודה. הרשימה הישנה נשארת כרשת ביטחון, למקרה שמשהו משתבש.
שלב 3: מכבים את הרשימה הישנה. אחרי שבועיים, מפסיקים לשלוח משימות לרשימה הישנה.
אל תדלגו על השבועיים. כל צוות שדילג על השלב הזה איבד משימות. משימה שהלכה לאיבוד יכולה להיות לקוח שלא קיבל את המייל שלו, או הזמנה שלא הגיעה למחסן.
כלל אצבע פשוט
זה כלל האצבע שאנחנו עובדים לפיו, לפי מספר משימות הרקע שהמערכת שלכם מטפלת בהן ביום:
- פחות מ-100,000 ביום: הישארו עם הפתרון הפשוט, אלא אם יש לכם סיבה ברורה לעבור.
- בין 100,000 למיליון ביום: תלוי איך העבודה מגיעה. קצב קבוע זה בסדר. גלים גדולים ופתאומיים, כמו במבצע בזק, קשים יותר.
- מעל מיליון ביום: בדרך כלל הפתרון הפשוט כבר קטן עליכם. בהיקף כזה, העלות של כלי נפרד קטנה לעומת כאב הראש של למתוח את הפתרון הפשוט עוד ועוד.
דבר אחד שכדאי לתקן קודם
ברוב המערכות, פשוטות או מורכבות, אותה משימה עלולה לפעמים להתבצע פעמיים, למשל אחרי תקלה קצרה. מה שחשוב הוא שביצוע כפול לא יזיק. לקוח לא אמור לקבל שתי חשבוניות, או שיחייבו אותו פעמיים.
אם זה סיכון במערכת שלכם, תקנו את זה קודם. מעבר לכלי גדול יותר לא יפתור את זה.
השורה התחתונה
פשוט לא אומר חפיף. לרוב העסקים זו הבחירה החכמה: עלויות הפעלה נמוכות יותר, פחות דברים שיכולים להתקלקל ופחות הפתעות. עברו למשהו גדול יותר כשסימני האזהרה מופיעים, לא לפני. וכשמגיע הזמן לעבור, עשו את זה בזהירות, שלב אחרי שלב.
לא בטוחים אם המערכת שלכם צריכה פתרון גדול יותר או רק קצת סדר? קבעו שיחת היכרות חינמית של 30 דקות ונדבר על זה בשפה פשוטה.
