DCSIMG
תגובה "בזמן שישנת – על ארגונים גדולים וחשיפה לטכנולוגיה - ארכיטקטים אנונימים

ארכיטקטים אנונימים

בלוג על ארכיטקטורת תוכנה, ניהול פרויקטים ומתודולוגיות פיתוח

תגובה "בזמן שישנת – על ארגונים גדולים וחשיפה לטכנולוגיה

התחלתי לכתוב את המאמרון הזה כתגובה למאמרון של דורון בסוף החלטתי שזה שווה מאמרון עצמאי
דורון שעובד מטעם בשור בתע"א כתב
"

אז הגוף שבו אני נמצא קיבל בשעה טובה החלטה אמיצה לבחון את Visual Studio 2005. בישיבה שכינסנו נשאלנו אובייקטיבית – מה מעבר מ2003 ל2005 ייתן לנו (לא מדובר על מעבר של אפליקציות חדשות, אלא הסבה של אפליקציות שכבר נכתבו ב2003). המסקנה הייתה שלא הרבה. היות ואין טעם לממן פרויקטי הסבה בשביל להשתמש בכל 101 (++) התוספות של הסביבה החדשה, מעבר לתאימות עתידית אין יתרון ברור. מאידך – חסרונות מסתבר שיש (וכפי שכתבתי קודם לכן, רשימה טכנית שלהם תפורט בפוסט הבא שלי.. לא רציתי ללכלך את הפוסט הזה). ובצער רב, בניגוד מוחלט לתפקיד הCTO אותו אני ממלא בבשור – אשר מחייב אותי לשמור על חדשנות ולחקור ולהטמיע טכנולוגיות חדשות כל הזמן, נאלצתי להסכים שאלא אם ימצא שהסביבה החדשה פותרת לנו באגים שקורים בעקבות השימוש בסביבה הישנה – אין טעם לבצע הסבה."


עשיתי מהלך דומה  של בחינה של 2005 בגוף גדול אחר (רפא"ל) לפני כמעט שנה. כדי לקבל החלטה מושכלת הקמנו צוות שכלל אותי ועוד שני מתכנתים לבדיקת משמעויות של מעבר כזה (מעבר לניתוח של "מה חדש" ואיך זה יכול לעזור לנו בעתיד) . נראה היה לי שהכי כדאי להתחיל מהתשתיות המשותפות של הפרויקטים והחלטתי לבצע את הבדיקה במספר שלבים - 1. בדיקה של הרצה תחת 2005 ללא קומפילציה, קומפילציה ב2005 ללא שינויים, 3. זיהוי שינויים לטובת קומצפילציה ב2005 (במידה ו2 לי יצליח) 4. משמעויות עדכון ליכולת 2005 (generics וכו)
הבדיקה נעשתה ע"י ביצוע השלבים הנ"ל על התשתיות השונות -בהתחלה אחת אחת ואח"כ בצורה אינטגרטיבית על אפליקצית הבדיקה (אפליקציה שצוותי התשתיות פיתוח של ישום בסיסי על מנת להוכיח נכונות ורגרסיות בזמן שינויים)
 לאחר כשבועיים של עבודה ראינו שמעבר פשוט (ללא ניצול יכולות חדשות) לא דורש מאמץ רב (אבל כבר מאפשר להנות מהיכולות המשופרות של סביבת הפיתוח) מצד שני מעבר אמיתי הוא כן מהלך רחב
ההמלצה שגיבשנו היתה לבצע את השינויים הלא גדולים שזוהו בתשתיות ולבצע מעבר הדרגתי - יכולות חדשות בתשתיות יפותחו ביכולות 2005, התשתיות ימשיכו בתמיכה בפרויקטים ישנים (תיקוני באגים בלבד) והפרויקטים יעברו עפ"י הצורך (למשל אם צריכים יכולת חדשה )
עכשיו  רוב מוחלט של הפרויקטים כבר עובדים בNET. 2 ובפרויקטים שאני אחראי עליהם (היום אני כבר לא הארכיטקט שם אלא מנהל פיתוח של נושא הביומטריה - אם כי כנראה לא לזמן רב אבל זה כבר סיפור אחר) גם עברנו לNET 3
בקיצור - אני מסכים עם דורון שעדכון טכנולוגי הוא עסק יותר מסובך בארגונים גדולים ובמיוחד בכאלו שהתוכנה היא לא העיסוק המרכזי שלהם*
יחד עם זאת אני חושב שזה מאד חשוב לשמור גם ארגונים גדולים בטכנולוגיה עדכנית- המעבר צריך להעשות בהדרגה ובזהירות


* כהערת אגב אני אגיד שגם בארגונים כמו תע"א ורפא"ל התוכנה היא מרכיב קריטי -גם אם הם לא הפנימו את זה עדיין
מחקר שעשו במשרד ההגנה האמריקאי בשנת  2000 הראה שאחוז גדול מאד מהיכולות של הפלטפורמות בעצם ממומש בתוכנה בדוגמא שלהם ב F4 שנבנה ב1960 8% מהיכולות היו בתוכנה - לעומת זאת בF22 שנבנה ב2000 כבר 80% מיכולות הפלטפורמה ממומשו בתוכנה. גרף אחר מראה איך פרויקטים הופכים להיות יותר ויותר עתירי תוכנה (מapollo בשנות השישים והשיבעים ועד למעבורת וכו בימנו).

תוכן התגובה

Doron Ben-David כתב/ה:

אין ספק שאסור לארגון לקפוא על שמריו, ולכן - פרויקטים חדשים כברירת מחדל מפותחים על .NET 2.0, כאשר לשמחתי הצלחתי לדחוף לשינוי הטרמינולוגי, וכולם עובדים עם הExtensions ל3.0. וכאן חשוב לי להגיד למה - בעצם, הפרויקטים לא מנצלים (עדיין) את התוספות ש3.0 מספק. מאידך, ברור לי שביום שיתחילו להפנים את הקיום שלהן, וראשי פרויקטים יחליטו לנצל אותן - ביום הזה שוב יהיה טררם ענק סביב ה"שדרוג". ולכן - אני ממליץ בחום לכל מי שעובד מול דרג מקבלי ההחלטות בארגון - לדחוף את הארגון בקפיצות גדולות. כשטכנולוגיה מבשילה ונראה שאפשר לאמץ אותה - להכניס אותה. להתקין אותה עבור פרויקטים חדשים, גם אם הם לא משתמשים בה. בעתיד.. זה ימנע פחדים מיותרים. יש לי רק בעיה אחת עם משהו שכתבת: "לאחר כשבועיים של עבודה ראינו שמעבר פשוט (ללא ניצול יכולות חדשות) לא דורש מאמץ רב" אני חייב לסייג את זה. בבדיקה שאנחנו עשינו (שבעקבותיה בא המחקר שבצעתי ובעצם השווה בין 2003 ו2005 באופן מוחלט) מצאנו שחלק מהאפליקציות שלנו לא מתקמפלות על 2005. לדוגמא- חלק גדול מהקוד Native שלנו כתוב בC++ ומתקמפל כחלק מהSolution. ב2005 הקומפיילר פחות סבלני להגדרות של משתנים בתוך לולאות. למעשה - הוא צועק על זה Error ולא מאפשר קומפילציה. זוהי נקודה שהיינו צריכים לפתור. בנוסף, תשתיות אלגוריתם שאנחנו משתמשים בהם (שוב קוד Legacy) שכתובות בFortran לא ניתן לקמפל ב2005, היות והמהדר לא נתמך (אנחנו משתמשים בLahey-Fujitso). הפתרון כאן היה פשוט יחסית. מחד, זה האיץ את תכנית התרגום של הקוד לC#, ומאידך - קוד Fortran מקומפל עדיין ב1.1, ונעשה בו שימוש ב2.0. הבעיה מתעוררת בDebugging, אבל מי שעבד עם Fortran בדוט.נט, יודע שגם כך העסק די אבוד. החלק האחרון הוא תשתיות צד ג' שמסיבות של אי עמידה בסטנדרטים (לא רק CLSCompliant) תקעו אותנו. לדוגמא, מערכת הGIS שהשתמשנו בה מבית ESRI שהגדירה תחת הNS מחלקות בעלות שם זהה. דבר שב2003 עובד (אם כי מתבכיין) וב2005 חייב שימוש בAliases. לא נתקלנו בשום שינוי שהיה בלתי אפשרי להתגבר עליו, אבל המרחק בין להגיד ש"המעבר חלק" לבין זה גדול מאוד. כל פרויקט יש לבחון לגופו. במקרה הנוכחי, הגענו למסקנה שאין כרגע טעם (אלא אם נגלה בהמשך, כאמור, באג שנובע מסביבת העבודה) להשקיע את הזמן הזה. במיוחד בפרויקטים עם לו"ז צפוף. לסיכום רק אגיד שבימי בצבא נתקלתי בפרויקט ענק באלביט שהוחלט להמיר אותו ל.NET (גם כן פרויקט שישב על HPUX), ושם נבחר הVS2005 עוד בגרסת הבטא הראשונה שלו. הפרויקט בגדול (לפחות ככה הציגו אותו) נחשב כהצלחה. כך שגם זה אפשרי (והיות והייתי מעורב מעט בנבכי ההחלטות שהתקבלו שם, אני יודע שהם אכלו המון קש בגלל הגרסה, אבל זכו לליווי צמוד של מיקרוסופט ואספקת גרסאות תיקונים שוטפת. דבר שלצערי לא כל אחד מקבל). כרגע בלי שום קשר אני מריץ פרויקט בדיקה של 2008 ועבודה עם הגרסאות שלנו, בדיוק כמו שלפני 3 שנים בצעתי עם ה2005... בינתיים נראה טוב :).
# June 25, 2007 1:23 AM

arnonrgo כתב/ה:

הי דרור , דיברתי רק C# ולא על שפות NET אחרות

למשל בטח לא על ++C שם היה שינוי גדול מאד בmanaged

אגב -תשתית GIS שהשתמששה בESRI כן המרנו

ארנון

# June 25, 2007 7:30 AM

arnonrgo כתב/ה:

One more thing - the main point is not that evaluation took 2 weeks or one month or whatever. The transition period, of course,  was much longer than that

The point is that you need to do  technology update even in large organizations.

And that that, indeed, it can't be a big bang event - the update itself is both gradual and slow

Arnon

# June 25, 2007 9:39 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 5 and 5 and type the answer here:


Enter the numbers above: