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

Posts Tagged ‘StarTeam’

 לפני יותר מ-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 אפשר לעצב אתרים כאלה
להתחיל