על התפר שבין הפיתוח לתשתיות או הכנת מערכת התכנה שלך לסביבת הייצור

21 בספטמבר 2010

תגיות: , ,
אין תגובות

אחת הבעיות שאני נתקל בה רבות בתחום העבודה שלי, היא חוסר ההכרות וחוסר התקשורת בין גוף הפיתוח לבין גוף התשתיות. חוסר ההכרות הזו עולה בדרך כלל לארגונים הרבה כסף. הבעיה היא, שלמרות שלכאורה הפתרון לבעיה הוא פשוט, מהבחינה הארגונית, זו בעיה כמעט בלתי פתירה.

נתחיל מהשאלה "כמה שווה לארגון חיסכון של קרוב לשלושים אחוז בעלויות התפעול השוטפות של מערכות תכנה ארגוניות". התשובה שכל CFO יתן לך זה" "שלושים אחוז מעלויות התפעול זה המון כסף". והשאלה הבאה שלו תהיה, כמה זה עולה לי, והתשובה, "תוספת של 3-5 אחוז מעלויות הפיתוח, פחות חסכון של לפחות 10 אחוז ב QA". זה השלב שה CFO אומר בדרך כלל "אני רוצה את זה עכשיו ומייד".

הלוגיקה הפיננסית מאחורי ההתלהבות של ה CFO נובעת בעיקר מהעובדה הפשוטה, שבפרויקט טיפוסי, גוף הפיתוח משקיע, לצורך העניין, שנתיים בפיתוח מערכת תכנה. מגלגל אותה מעבר לגדר למחלקת התשתיות. ושם התשתיות סובל ממנה, לצורך העניין, עוד שמונה שנים. יחס יפה של 2 ל 8. ואל תתפסו אותי פה על שנה לפה או לשם, זה בממוצע נכון לרוב המערכות בסביבות הארגוניות.

אז איך זה מתקשר לנושא התקשורת וההכרות בין מחלקת הפיתוח (או הקבלן המפתח החיצוני) לבין מחלקת התפעול ? מקור הבעיה נובע בדיוק מזה, שלמפתחים אין בדרך כלל מושג ירוק מה זה סביבת ייצור, ולאנשי התשתיות אין בדרך כלל מושג ירוק על פיתוח תכנה. וכתוצאה מכך המפתחים, לא מכניסים לפרויקט, את הדרישות ה"לא פונקציונאליות", שאנשי התשתיות זקוקים להם, לצורך התפעול השוטף והיעיל של המערכות. ואילו אנשי התשתיות, לא יודעים אפילו להגדיר, בצורה שתובן על ידי המפתחים, מהם אותם דרישות "לא פונקצינאליות" שהם זקוקים להם כמו אויר לנשימה.

והסיבה שאני שם את כל נושא ה "לא פונקציונאלי" במרכאות, היא שלטעמי הדרישות האלה מאד מאד פונקציונאליות. מערכת תכנה ידידותית לצוות התשתיות, דורשת הרבה פחות "תשומת לב ניהולית", מאשר יישום שאינו ידידותי לסביבת התשתיות. ומאחר וכל "תשומת לב ניהולית" כזו, היא הוצאה כספית, זה נושא חשוב. כדאי אולי לציין בנקודה הזו שאני לא מדבר פה רק על הזמן של אנשי התשתיות. קחו בחשבון, שבזמן שמערכת התכנה מתעופפת לה בעליזות, כל משתמשי הארגון, המחוברים לאותה מערכת תכנה, בפועל מושבתים.

מה שאנשי התשתיות רוצים (וזו דרישה משותפת גם לאנשי ה QA וה Testing), זה לדעת כמה שיותר מוקדם, שמערכת התכנה הולכת להתעופף (או התעופפה), כך שיהיה להם מספיק זמן להגיב. אנשי התשתיות רוצים שזמן איתור התקלה שגרמה לבעיה, יהיה הכי מהר שאפשר. הם רוצים שהמערכת תחזור למצב עבודה כמה שיותר מהר. דרישה "לא פונקציונאלית" נוספת, היא שאם הבעיה אינה מוכרת, יאסף עליה מספיק מידע, כך שניתן יהיה להבין, ממה בדיוק היא קרתה, וכיצד למנוע ממנה לחזור שוב.

למערכת ההפעלה ישנם הרבה מימשקים מובנים, שמאפשרים למערכת התכנה, לדווח על מצב בריאותה, בצורה שהמידע יהיה זמין לאנשי התשתיות. יש מערכות Trace מובנות במערכת ההפעלה, שמאפשרות לאסוף 20,000 ארועים בשניה, בהעמסה של פחות משלוש אחוז CPU. יש כלי דיווח פעילות רציפים, בצורה של "מונים", שמאפשרים לנתח פעילות שוטפת וקווי מגמה, לפעילות המוגדרת על ידי המפתח, של מערכת התכנה על ציר הזמן. וגם לסנכרן אותם עם ארועים חיצוניים. יש מנגנוני התממשקות למערכות הדיווח השו"ב-יות של מערכת ההפעלה, אליה מתממשקים כל תוכנות ניהול התשתיות הארגוניות. יש מערכות דיווח שמציפות בעיות מיידית לצוות התשתיות.  יש כלים המאפשרים להוציא את מצב מערכת התכנה ברגע ההתעופפות, כך שמחלקת הפיתוח, תוכל לנתח במדויק, באיזה שורה בקוד ארעה הבעיה. כל הדברים האלה מופיעים תחת נושא ראשי אחד, שאני קורא לו Instrumentation.

אבל אנשי הפיתוח לא יכניסו את כל הדברים "הלא פונקציונאליים" האלה למערכת התכנה שלהם, אם הם לא יוגדרו מראש, ובצורה ברורה, בדרישות המערכת. אז איך משחררים את הקשר הגורדי הזה ?

אז ישבתי והחלטתי לעשות מעשה. הכנתי סדנה מרוכזת בת יום אחד, שנועדה ל"מגדירי דרישות". דהינו, כל אלה שיש להם יד ורגל בהגדרת דרישות המפרט של מערכת התכנה. ואני מדבר על קהל של מנתחי מערכות, ארכיטקטים, מנהלי פיתוח, מפתחים בכירים, מנהלי מחלקות בארגוני תשתית, מנהלי מחלקות QA, אנשי QA בכירים, נציגי לקוח בבתי תכנה, וכל מי שרוצה שמערכת התכנה המוזמנת, תהיה "ידידותית" לסביבת התשתיות (ולסביבת ה QA).

בסדנה הזו אני מסביר על כל יכולות ה Instrumentation של מערכת ההפעלה, ומדגים ומסביר כל אחת מהן, עם כלי המערכת הקשורים אליו, בצורה שתאפשר למשתתף הסדנה לבנות ממנה דרישה מושכלת ל Feature במערכת התכנה שאותה הוא מגדיר או במערכת התכנה הקיימת שאותה הוא רוצה לשפר. כל הקונספט שאני קורא לו שו"ב אפליקטיבי מוסבר בסדנה הזו. מי שמעוניין, יוכל למצוא פרטים נוספים באתר החדש של חברת האם שלי. הסילבוס של הסדנה נמצא כאן, יש כבר תאריך לסדנה הקרובה. ואם אתם מעונינים בפרטים נוספים, אז גשו בבקשה לכאן.

אשמח לקבל משוב מקוראי הבלוג שלי, גם על הרעיון, וגם על הנושאים שהייתם רוצים להוסיף ליום הזה. 

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *