בחירת טכנולוגיות לפרויקט
ארבעה שיקולים שבאמת מכריעים, שלושה שנשמעים חשובים ואינם, והבחירה האחת שחשובה יותר מכל הכלים יחד.
בקצרה
את הבחירה קובעים ארבעה דברים ואף אחד מהם אינו יכולות הכלי: מי יתחזק את זה בעוד שלוש שנים, מה כבר יש אצלכם, איפה הדבר ייפגוש את הגבול שלו, והאם אפשר להחליף אותו אחר כך. מדדי מהירות ופופולריות כמעט לא משנים. והבחירה החשובה בפרויקט אינה כלי אלא מודל הנתונים: כלים מחליפים בעלות שאפשר לאמוד, מודל נתונים שגוי מחליפים בכתיבה מחדש.
ארבעה שיקולים, ושלושה מדומים
| השיקול |
משנה? |
למה |
| מי יתחזק בעוד שלוש שנים |
כן, הראשון |
רוב עלות המערכת היא אחרי שהיא נבנתה. בחירה שאין לה מתחזקים זמינים מייצרת תלות באדם אחד |
| מה כבר יש אצלכם |
כן |
טכנולוגיה שנייה באותה מערכת עולה פעמיים: שתי סביבות, שתי שרשרות עדכון, שני סוגי ידע |
| איפה הגבול של הכלי |
כן |
לכל כלי יש נפח או סוג נתון שמפיל אותו. עדיף לדעת מראש מה הוא מאשר לפגוש אותו בייצור |
| האם אפשר להחליף אחר כך |
כן |
זו המדידה האמיתית של בחירה טובה. אם הלוגיקה שלכם לא תלויה בכלי, טעות בבחירה היא עלות ולא אסון |
| מדדי מהירות |
כמעט לא |
ההפרש בין כלים דומים קטן בסדרי גודל מההפרש שגורמת שאילתה אחת לא נכונה |
| פופולריות |
רק בעקיפין |
היא קירוב גרוע לזמינות מתחזקים, וזה השיקול האמיתי שמסתתר מאחוריה |
| אורך רשימת היכולות |
לא |
בפועל הוא מנבא כמה דרכים יש לעשות אותו דבר, כלומר כמה חוסר עקביות יצטבר |
השורה הרביעית היא המבחן שאני מציע להשתמש בו במקום בכל השאר: בחירה טובה היא כזו שאפשר לחזור ממנה. זה מעביר את הדיון מהכלי אל המקום שבו הוא נוגע בקוד שלכם, וזה הדיון המועיל.
צד לקוח, שתי שאלות
זה התחום שבו הדיון נוטה להיות הכי נמרץ והכי מנותק, ולמעשה הוא נחתך בשתי שאלות.
האם התוכן צריך להימצא בחיפוש? אם כן, הדף חייב להגיע מהשרת מוכן, ולא להיבנות אצל המשתמש אחרי שהגיע. זה מצמצם את האפשרויות מיד, והוא גם הדבר שמגלים מאוחר מדי, בדרך כלל אחרי שהאתר עלה ושום דבר לא נמצא.
מי יתחזק את זה? בחירה פופולרית שאף אחד בצוות לא מכיר יקרה מבחירה משעממת שכולם מכירים. ההפרש אינו בבנייה אלא בכל תיקון שיבוא אחר כך, והוא מצטבר בשקט.
אם התשובה לראשונה היא לא, והתשובה לשנייה היא «הצוות הקיים», הדיון נגמר ואפשר לחזור לעבודה. זה המצב בחלק גדול מהפרויקטים.
מבחן אחד לכל הצעה. בקשו לנסח במשפט אחד מה הכלי המוצע עושה שהכלי שאתם מכירים לא עושה. אם אי אפשר, מה שחסר אינו הכלי. זה מבחן שעובד גם על עצמך, וכדאי להפעיל אותו לפני שמציעים משהו ללקוח.
הבחירה שחשובה יותר מכל הכלים
מודל הנתונים. אם יש זמן לדיון אחד מעמיק בפרויקט, הוא צריך להיות על הישויות ועל הקשרים ביניהן, ולא על שפה או מסגרת.
הסיבה אסימטרית. שפה, מסגרת, מסד נתונים וספק ענן ניתנים להחלפה בעלות שאפשר לאמוד מראש. מודל נתונים שגוי מתפשט: הוא נכנס לכל דוח, לכל ממשק, לכל הנחה בקוד ולכל אינטגרציה, והחלפתו היא כתיבה מחדש של המערכת.
שלוש שאלות שמספיקות לדיון הזה: מה הישות המרכזית באמת, האם יש לה גרסאות או היסטוריה שצריך לזכור, ומה המקרה שבו «אחד» הופך ל«כמה». השאלה השלישית היא זו שנופלת, והדף על CRM בהתאמה אישית מתאר את הצורה הנפוצה שלה.
מה חייב להיכרע עכשיו ומה יכול לחכות
חלק מהוויכוח על טכנולוגיות נובע מהנחה שהכול צריך להיות מוכרע לפני שמתחילים. זה לא נכון, ולדעת מה כן ומה לא חוסך שבועות.
| ההחלטה |
מתי |
למה |
| מודל הנתונים |
עכשיו |
מתפשט לכל דבר, והחלפתו היא כתיבה מחדש |
| האם התוכן צריך להימצא בחיפוש |
עכשיו |
קובע את צורת הצד הלקוח. גילוי מאוחר שלו מחייב בנייה מחדש |
| שפה ומסגרת |
עכשיו, אבל בלי דרמה |
קשה להחליף בפועל, אבל השיקול פשוט: מה הצוות מכיר ומי יתחזק |
| ספק ענן |
אפשר לדחות |
אם לא נצמדים לשירותים ייחודיים, זו החלטה הפיכה בעלות שאפשר לאמוד |
| כלי ניטור, תורים, מטמון |
לדחות |
אלה נבחרים נכון רק כשיש עומס אמיתי למדוד. בחירה מוקדמת היא ניחוש |
שתי השורות הראשונות הן כל הדחיפות. השלישית נראית כמו ההחלטה הגדולה והיא בעיקר שאלה על אנשים. השורות האחרונות הן אלה שעליהן מתווכחים הכי הרבה ושהכי קל לדחות, וזה בדרך כלל הסדר ההפוך מהדיון בפועל.
מתי חדש כן מוצדק
כשהבעיה שלכם אינה סטנדרטית וקיים כלי שפותר בדיוק אותה. אז הכלי החדש חוסך עבודה אמיתית, והבחירה היא חשבון ולא טעם.
מה שאינו מוצדק הוא לבחור חדש כי הקיים משעמם. זה שיקול נפוץ, הוא לא נאמר בקול, והוא נראה כמו שיקול מקצועי כי הוא מנוסח בשפה מקצועית. הדרך להבחין היא המבחן למעלה: משפט אחד, מה החדש עושה שהקיים לא.
ושיקול הפוך שכדאי לומר בגילוי לב: לצוות יש זכות לגיטימית לרצות לעבוד בכלים שהוא לומד מהם, וזה גם שימור עובדים. פשוט כדאי שזה ייאמר כך ולא בתחפושת של ביצועים, כי אז אפשר לשקול אותו מול העלות במקום לשקול אותו במקומה.
איך אני עובד על זה
עיסוק בתחום מאז 2004, עבודה על מערכות AI מאז 2023, פרויקטים ללקוחות בארבע עשרה מדינות. אני ארכיטקט עצמאי, ואין לי כלי שאני מוכר, ולכן «תישארו במה שאתם מכירים» היא מסקנה שלא עולה לי כלום. היא גם המסקנה השכיחה.
מה סקירה מייצרת: החלטה כתובה על מודל הנתונים, מיפוי הנקודות שבהן הקוד נוגע בכלי כדי שהחלפה תישאר אפשרית, תשובה לשאלת החיפוש בצד הלקוח, וזיהוי הגבול של כל כלי מועמד מול הנפח האמיתי שלכם.
SLAtech LTD