Over-Architecture
חלק נכבד מהתפקיד שלנו כארכיטקטים הינו לעבוד מול לקוח שכבר בנה ארכיטקטורה למערכת שלו, והוא מעוניין בסוג של Review עליה, על מנת לאתר מראש בעיות פוטנציאליות בארכיטקטורה – הן מבחינת ביצועים, אבטחת מידע, מודולריות וכו’.
ברבים מהמקרים זה אכן בדיוק מה שקורה – אנו עורכים סדרת פגישות עם הלקוח, מאתרים בעיות פוטנציאליות ומעבירים מסמך סיכום מסודר המפרט את הבעיות הפוטנציאליות ואת הדרך המומלצת לפתרונן.
אולם בזמן האחרון המצב השתנה מעט. יצא לי להיתקל יותר ויותר במצבים בהם ההמלצה העיקרית ללקוח היתה (ואני אכתוב את זה באנגלית, כי זה נשמע טוב יותר):
Make It Simpler!
בלא מעט מצבים התברר שהארכיטקטורה לוקה במה שאני מכנה “Over Architecture”. במקרים אלו נעשה שימוש מוגזם במתודולוגיות ארכיטקטוניות, לרוב שלא לצורך, ותמיד על חשבון שימושיות היישום. דוגמה קלאסית לכך היא מקרה בו, על מנת להעביר Message בין מספר שלבים ביישום, נבנתה שרשרת שלמה של תורי MSMQ ומנגנוני WF המחליטים על היעד הבא של ה- Message, כאשר בבדיקה פרטנית התברר שאין צורך לא בזה ולא בזה, ושימוש בקריאות ישירות היה מפשט את היישום, מסייע לביצועים ולא פוגע כהוא זה בפונקציונליות המערכת.
מחלת ה- Over Architecture תוקפת לרוב ארכיטקטים צעירים בתחילת דרכם, המניחים שככל שהארכיטקטורה שהם יבנו תהיה מורכבת יותר ותיראה טוב יותר ב- Power Point, כך תעלה קרנם בעיני הבוס ושאר המנהלים. ההנחה הזו מחזיקה מעמד עד הרגע בו יש לממש את הארכיטקטורה, ואז מתגלות כל הבעיות הקיימות בה.
חשוב מאוד לזכור – מטרת ארכיטקטורת התוכנה הינה לשרת את המפתחים ואת התוכנה בצורה היעילה ביותר, ואם המשמעות היא שהארכיטקטורה הנדרשת הינה מינימליסטית ביותר וממלאת פחות משקף אחד במצגת – Let It Be.
חלק מהשירותים שקבוצת ה- MCS בארץ מספקת עונים בדיוק על הצורך הזה – בחינת ארכיטקטורה קיימת והמלצות לשיפור.
העיפו מבט כאן – מאוד יתכן שנוכל לסייע לכם. נשמח לעשות זאת!