Feeds:
פוסטים
תגובות

Archive for the ‘Application Lifecycle Management’ Category

לתהליכי ניהול חיי מוצר התוכנה וניהול התצורה השפעה מכרעת על פיתוח תוכנה. ניהול נכון ימנע טעויות, יקצר את זמן הפיתוח ויעלה את איכות התוכנה.

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

המפגש מיועד למנהלי IT, מנהלי תצורה וגירסאות, מנהלי פיתוח וראשי צוותים העובדים עם ClearCase וכן כלי IBM Rational נוספים, או המתעניינים באפשרות לעבוד עם מוצרים אלה.

מתי: יום שלישי, ה- 23 למרץ 2010 . להכנסת תזכורת ל- Outlook לחצו כאן .
היכן: בית IBM, דרך אם המושבות 94 פתח-תקוה. למפת הגעה לחצו כאן. חנייה חינם בבית IBM אך יש להודיע לנו מראש שברצונכם לחנות שם – באמצעות טופס הרישום בהמשך.

אג'נדה:

9:00 – 9:30 התכנסות, כיבוד קל
9:30 – 9:40 דברי פתיחה: שמעון ניר, מנהל קבוצת Rational ישראל
9:40 – 12:00
– האצת תהליכי פיתוח וניהול תצורה באמצעות אוטומציה – מדוע, מתי ואיך
– בעיות נפוצות ב- Rational ClearCase הנתנות לפתרון ע"י אוטומציה
– הדגמת הפתרונות האוטומטיים של GoMidjets וסיפור לקוח
– טיפים וטריקים: ClearCase Best Practices

הכניסה חופשית אך מותנית ברישום מראש וקבלת אישור. מהרו להירשם – כמות הנרשמים מוגבלת.
לרישום נא לחצו כאן או התקשרו אלינו: 072-240-5222

אתם מוזמנים להעביר הזמנה זו הלאה בארגונכם, אל הגורמים הרלבנטים, ע"מ שגם הם יוכלו להירשם.

Read Full Post »

IBM מארגנים הופעת ג'אז ב- Carnegie Hall . למי שלא מכיר, זהו אולם מפורסם שבו היו הופעות מוזיקליות של ענקי המוזיקה במאה האחרונה, וכן הוקלטו בו אלבומים מפורסמים (אלבומי הופעות).

נו טוב … לא ממש ג'אז במובן האמיתי – אבל בכל זאת – הנה ההודעה שקיבלתי:

IBM Rational

proudly presents

The Jazz Ensemble

Live at Carnegie Hall

MARCH 2nd, 2009
 
IBM FileNet Office
Carnegie Hall
3545 Harbor Boulevard
Costa Mesa, CA 92626-1437
register at: http://www.rational-ug.org/groups.php?groupid=9.  Admission is free.
 
תקפצו אם אתם בסביבה. וקחו בחשבון שאין הופעת ג'אז אמיתית – מוזיקלית –  בסיום האירוע.

Read Full Post »

לא, לא הפכתי למטיף בשער.

וגם לא לפילוסוף בשנקל.

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

יש כמובן מלים , וכמיטב המסורת – גם וידאו בחסות YouTube :

 

נמשיך:

ברק אובמה מיתג עצמו לדעת תחת הסיסמא "Change" .

ברק אובמה. מתוך msn.com

מדוע השינוי כ"כ חשוב? ולמה אני בכלל כותב על זה?

גרעין ה- ALM הוא השינוי.

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

למעשה, גם גרעין ה- CM , שמהווה נדבך חשוב ב- ALM , הוא השינוי. שינוי יכול להיות לדוג' Change Request , במשמעות של הרחבה במערכת (Ehancement) או תיקון של שינוי קיים (Defect) , שאליו מקושרים הקבצים והגירסאות המכילים את תוכן השינוי.

שינויים תמיד מתרחשים במחזור החיים של היישום – בין אם מאילוץ חיצוני ובין אם מבחירה פנימית שלנו. החכמה היא לתפוס אותם בזמן ולנהל אותם נכון.

Read Full Post »

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

להלן 10 התכונות שהן לדעתי חובה במערכת ניהול תצורה. אלה תכונות שהן בעיקרן קונספטואליות – ולא טכניות (אינני מתכוון לכתוב על checkin, checkout, labels וכו’ – אלו הדברים הבסיסיים ביותר, וכאלה ישנם בכל מערכת כיום).

התכונות שאמנה כאן הן תכונות “כבדות משקל” – כל אחת מהן מכילה בתוכה תתי-תכונות המרכיבות אותה.

סדר הכתיבה הוא לא בהכרח בהתאם לחשיבות. אני משאיר את התעדוף לכם הקוראים.

יאללה, מתחילים.

 

*** 1 *** אמינות ושלמות המערכת 

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

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

כיום, עם התבגרות המערכות, רובן  עומדות בדרישה זו בקרוב למאת האחוזים.

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

קיץ 1999

PC משתמשים

יום לפני סיום מדרגה 6

2 בלילה

או אז מגלים שחלק ניכר מהקבצים הלכו לאיבוד, ועבודה של שבוע (מסביב לשעון!) ירדה לטמיון … אה!!!!!!!@@@@!!!

לא המשכנו להשתמש במערכת הנ”ל לאחר מכן. 

 

 *** 2 *** תהליך ומערכת מונחית תהליך – ולא תהליך מונחה מערכת

התהליך עצמו חשוב מאוד: תהליך מוגדר יאפשר להגדיר שיטות עבודה למפתחים, מדיניות (Policies) לעבודת-צוות, תהליכי-משנה ש”ידברו” ביניהם ויאפשרו אינטגרציה קלה ו”חלקה” יותר, ועוד ועוד..

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

 

 *** 3 *** פיתוח מקבילי ויכולת מיזוג חזרה

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

  • קו פיתוח פרטי לכל מפתח: כל תכנת מקבל סביבה פרטית בה הוא יכול לשנות קבצים כמה שהוא רוצה ואיך שהוא רוצה, בלי להשפיע על קוי הפיתוח האחרים (מעין “ארגז חול”)
  • קו פיתוח לכל משימה/פיצ’ר, שעליו יעבדו כמה מפתחים
  • קו פיתוח לכל גירסת מוצר
  • קו פיתוח לכל גירסת שחרור / גירסת לקוח
  • קו פיתוח לכל פלטפורמה / מערכת הפעלה

ועוד ועוד.

כחלק מתכונה זו, חשוב שהמערכת תאפשר העברה נוחה של קבצים בין ענפי הפיתוח השונים (מ- ואל), יכולת מיזוג בין הענפים ויכולת מעקב של המיזוגים ושל השינויים בענפים.

 

 *** 4 *** פיתוח מונחה משימות/שינויים

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

כיום התפיסה הרווחת ברוב המערכות היא ששינוי הוא סט לוגי של גירסאות ספציפיות של הקבצים התורמים לאותו השינוי. חשוב להבין שזהו למעשה הבסיס להכל – זיהוי תכולות של שינויים, אטומיות וטרנזקציות של פעולות (למשל: atomic check-in) , מעקב אחר שינויים, קווי בסיס (labels, baselines) המכילים את סט השינויים בתוכם, אינטגרציה למערכות ניהול-שינויים, פיתוח מבוסס רכיבים (components) ועוד.

אגב, כל מערכת קוראת לילד בשם אחר –  change list, change set, activity, job, task ועוד – אך בכולן הכוונה זהה פחות או יותר.

 

*** 5 *** תמיכה בסביבות מבוזרות

זוהי תכונה שחשיבותה עלתה מאוד בשנים האחרונות.

את תכונה זו אחלק ל-2 :

א.      תמיכה בריבוי של מערכות הפעלה (Cross-platform)  ואפשרות חיבור ביניהן השקופה למשתמשי הקצה. לדוגמא: סביבות משתמשים שחלקן תחת MS-Windows וחלקן תחת Linux , אך "מדברות" ביניהן בצורה שקופה.

ב.      תמיכה באתרים מרוחקים (Geographically distributed sites) ובמשתמשים מרוחקים בצורה שקופה למשתמשי הקצה. לדוגמא: בחברת AbraCadabra , מרכז הפיתוח העיקרי נמצא בהרצליה פיתוח, אך ישנם גם מפתחים היושבים ב- Bangalore , הודו. המפתחים האחרונים צריכים גם הם גישה אמינה ונוחה למערכת ניהול התצורה שמרכזה בישראל.

 

*** 6 *** מערכת פתוחה

נא לא להתבלבל עם מערכות קוד-פתוח – לא זו כוונתי.

מערכת פתוחה היא כזו המאפשרת להוסיף תכונות למערכת או לשנות בה תכונות מסויימות. בד"כ הצורך בכך הוא כדי לשפר את תאימות המערכת לצרכי המשתמשים (Customization) .

מערכת פתוחה תתמוך בתוכנות צד ג',  Command Line Interpreter, APIs ו- SDK , שבעזרתם ניתן יהיה לבצע אוטומציות של תהליכים, אינטגרציות בין חלקי המערכת, קסטומיזציות בהתאם לצרכים הספציפיים של המשתמשים, ריפורטיזציות (יש דבר כזה?) ועוד. 

*** 7 *** יכולת מעקב נוחה אחר שינויים

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

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

 

 *** 8 *** התממשקות נוחה למערכת ההפעלה

לא משנה תחת איזו מערכת-הפעלה אתם עובדים (ובד"כ זו תהיה Unix לסוגיה השונים , MS-Windows או שילוב ביניהן), בסופו של דבר, מערכת ניהול התצורה תהווה תשתית שתאפשר גישה "שטוחה" למערכת הקבצים של מערכת ההפעלה (כלומר – אפשרות לבודד את בסיס הנתונים של המערכת כך שתלקח גירסא אחת מכל קובץ שבמערכת). תשתית זו צריכה להיות אמינה ונוחה, משום שהיא הבסיס לסביבות עבודה למשתמשים, לאינטגרציות לכלים אחרים, לבניות (builds) וכו'

 

 *** 9 *** סביבת עבודה נוחה למשתמש הקצה

בין אם מדובר בסביבה שהיא בעיקרה שורת-פקודה, ובין אם מדובר בסביבה שהיא גרפית – חשוב ביותר שלמשתמשי הקצה יהיה נוח. שירגישו בבית!

איך עושים זאת?

על המערכת לספק להם ממשק נוח שבו רוב המשימות היומיומיות שלהם מרוכזות תחת IDE  או Dashboard אחד

על המערכת לספק תפריט-הקשר (Context Menu) לפעולות נפוצות

במידה ומספקים גם ממשק שורת-פקודה וגם ממשק גרפי – כדאי מאוד ש-2 הממשקים יציעו את אותן האפשרויות בדיוק.

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

 

 *** 10 *** יכולת חזרה לאחור (Rollback)

בין הנקודות שכתבתי לעיל, הזכרתי תהליך עבודה מסודר, ותיעוד של כל השינויים במערכת.

כפועל יוצא מכך, חשוב שהמערכת תוכל להציע אפשרות לחזור לאחור ולבטל שינוי של קובץ, משימה או אפילו גירסא רוחבית.

מדוע?

בסופו של דבר – למרות התהליך – ולמרות כל הבדיקות – טעויות תמיד עלולות להתחש – הרי כולנו בני-אדם: פונקציה בקובץ מסויים עובדת בסביבה פרטית אך לא עובדת בסביבה המרכזית; לסביבה המרכזית הוכנס שינוי שלא אמור היה להכנס עדיין וכיו"ב.

 

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

Read Full Post »

חברת Borland , יצרנית כלי ניהול התצורה ומחזור חיי הפיתוח StarTeam , הודיעה על שחרור גירסת 2008 של המוצר.

בין הפיצ'רים החדשים:

  • יכולת השוואה באותו ה- view
  • Object caching
  • תמיכה ב- Microsoft Windows Vista
  • תמיכה ב- Oracle 10g Release 2
  • תמיכה בוירטואליזציה והרצה ב- VMWare ESX Server

 ניתן להוריד גירסת התנסות באתר החברה.

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

Read Full Post »

 לפני יותר מ-3 שנים כתבתי מאמר מבוא בנושא, שהתפרסם בכמה אתרים באינטרנט.

הנה הוא ככתבו וכלשונו. אעדכן אותו בקרוב, ולבינתיים לא ניתן להשאיר תגובות (כן, אני יודע ומכיר – יש כלים חדשים ועוד ועוד – בקרוב אכתוב על הכל).

תהנו.

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

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

לצורך כך, ולצרכים נוספים שמפורטים בהמשך, נבנו כלים המספקים פתרונות.
לא אעסוק כאן בהשוואות בין המוצרים , רק אומר בקצרה שמוצר טוב מספק בעיקר:
1. שמירת קוד התוכנה במקום מרכזי
2. עבודה מקבילית על קוד משותף
3. אפשרות של פיתוח מקבילי של גרסאות שונות לאותו פרוייקט
4. ריכוזיות למטרת סדר
5. תיעוד שינויים: מי נגע, במה נגע, מתי ולמה.
6. מחזור-חיים מובנה עבור כל תהליך פיתוח המוצר, או התאמה למחזור החיים הקיים.

המוצרים עובדים בצורה מבוזרת של שרת-לקוח (client-server) או בצורה ריכוזית. מוצר טוב הוא מוצר המאפשר את 2 צורות העבודה , בהתאם לצרכי המשתמשים.
רצוי גם שהמוצר יתממשק באופן אינטגרטיבי עם תוכנות המספקות סביבות פיתוח (Visual Studio, WSAD וכד'), ע"מ לאפשר למשתמשים-מפתחים סביבת-עבודה נוחה ומוכרת.
למעשה, ניתן לראות מהנקודות לעיל כי עולם ניהול התצורה מתחלק בין תחומי הנדסת התוכנה, תשתיות (system) ופיתוח תוכנה .

ok. נשמע מעניין. אבל בכל זאת, האם באמת יש צורך בזה? הרי אני תמיד יכול לנהל את הכל בעצמי!
נכון, אבל מחקרים מוכיחים כי בפרוייקטים בהם אין ניהול תצורה, כ-15% מעבודת הפיתוח היומיומית קשורה לעיסוק בפעילויות ניהול תצורה. מספר זה עולה עד באחוזים ניכרים בפעילויות של אחזקת תוכנה. אותם מחקרים מוכיחים כי ניהול תצורה יעיל, המבוסס על כלים אוטומטיים מתקדמים, יכול להביא לירידה של 30% ויותר בתקציבי הפיתוח , המתבטאים בסופו של דבר גם בשיפור איכות המוצר, עמידה בלוחות-זמנים וניצול יעיל יותר של משאבי היצור.

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

Ok. נשמע נחמד. איך אני , כמפתח תוכנה/מנהל מוצר/מנהל קבוצת תוכנה , נכנס לעולם הזה?
בשוק הישראלי קיימים כמה חברות העוסקות במתן שירותים בתחום. השירותים כוללים בד"כ שירותי יעוץ, תכנון, הקמה, הטמעה והדרכה.
ניתן לפנות אלי על-מנת לקבל פרטים נוספים.

לינקים רלוונטים:
ClearCase: http://www-306.ibm.com/software/awdtools/c…case/index.html
Visual Source Safe: www.micorosft.com/vss
Starteam: http://www.borland.com/starteam
ועוד קצת חומר:
http://www.cmcrossroads.com/yp/index.php?o…commercial.html

Read Full Post »

עם WordPress.com אפשר לעצב אתרים כאלה
להתחיל