DCSIMG
עמוד הבית| חבילות השירות שלנו| חומר חופשי| צור קשר
שיפור תפוקת צוות הפיתוח ללא עלויות – חלק א' - בלוג היועצים של מיקרוסופט ישראל

בלוג היועצים של מיקרוסופט ישראל

שיפור תפוקת צוות הפיתוח ללא עלויות – חלק א'

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

איך נגדיל את תוצרי צוותי הפיתוח שלנו?

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

אני יכול להציע כאן עוד מספר הצעות שונות ומשונות, אך לכולן יש עלות...

יש לי רעיון חדשני ומהפכני - בואו נגדיל את תפוקת צוות הפיתוח ע"י צמצום טעויות/תקלות בתהליך הפיתוח!!!

משתמשים ב - Visual Studio Team System 2008? אם לא - תתחילו.
אחת הבעיות הנפוצות שנתקלתי בהן שגורמות לבזבוז זמן לחינם של צוות הפיתוח היא אינטגרציה.

תרחיש:

2 מתכנתים עובדים על resource משותף - נניח מחלקה (class).
ביום ראשון בבוקר מגיע מתכנת א' ומבצע שינוי במחלקה - נניח שהוא משנה את ה- type ב - Input של אחת הפונקציות. מבצע checkout, עורך את השינוי ולסיום checkin.
ביום שני, מגיע מתכנת ב' ומבצע שינוי באותה מחלקה - מבצע checkuot לקובץ, מבצע קריאה לפונקציה אותה שינה מתכנת א' יום לפני. אך מכיוון שלא ביצע "get-latest version" לפני השינוי, הוא "מכיר" את החתימה הישנה של הפונקציה.
(המקרה נפוץ יותר בהוספת ערכים ל-  enum).
בהנחה (שאינה פרועה כלל) שמתכנת ב' ממשיך לעבוד על הרכיב שלו ללא ביצוע checkin, יתכן שרק בסוף השבוע, כשיעשה checkin, תקפוץ לו הודעה על קונפליקט. כלומר, 4 ימי עבודה הוא עבד בהנחה שלפונקציה המסויימת יש חתימה שכבר השתנתה.

 

איך ניתן להמנע ממצב זה?

כמובן – כל check-out לקובץ, יבצע באופן אוטומטי get latest version.

איך?
ע"י הגדרה פשוטה במאפיינים של ה - Team Project - יש לסמן את האפשרות של "Enable get latest on check-out":

זהו, מניסיוני, כ-80% מבעיות האינטגרציה בצוות נפתרו.

ואם תהיתם למה המאפיין הזה אינו מסומן כברירת מחדל, עיינו בהסברים המלומדים הבאים שעושים שכל בעניין:
http://blogs.msdn.com/buckh/archive/2005/08/20/454140.aspx

חומר נוסף:

How to: Enable Team Foundation Version Control to Get the Latest Files on Check-Out
Add-in מעניין שמעלה הודעה “האם לבצע Get latest…”

 

בהצלחה.
טל

 

 

שירותי MCS רלוונטיים

  • (PDF) שירות ניתוח פערי ארכיטקטורה
  • (PDF) שירות ניתוח פערים ושיפור ביצועים
  • (PDF) סדנאות של MCS
  • (PDF) שירותי ניהול מחזור חיים של אפליקציה – ALM
  • תוכן התגובה

    alikl כתב/ה:

    טריק קטן, חסכון גדול :)

    # November 29, 2009 9:16 AM

    orenk כתב/ה:

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

    # November 29, 2009 11:39 AM

    Avi כתב/ה:

    נקודה למחשבה - לפעמים השינוי באותו קובץ שעבורו בוצע get latest on checkout תלוי בשינויים בקבצים נוספים.

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

    במצב אידיאלי, ראש הצוות מנהל את ה checkins בצוות, תמיד מודע לתלויות של משימה מסוימת ב checkin כלשהו ויודע לסנכרן ביניהם.

    באדיבות הר"צ הקודם שלי :-)

    # November 29, 2009 1:28 PM

    Tal Ben-Shalom כתב/ה:

    תלמיד נבון

    # November 29, 2009 9:37 PM

    Assaf Fraenkel כתב/ה:

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

    אסף

    # November 29, 2009 10:51 PM

    תום כתב/ה:

    אני מניח שלא בעיה למצוא תלויות בין קבצים

    האם יש אפשרות שברגע שעושים CHECK OUT לקובץ,אז כל הקבצים הקשורים גם הם ישלפו?

    כמובן שזה צריך להגדיר חסם לתלויות

    # November 29, 2009 11:47 PM

    Tal Ben-Shalom כתב/ה:

    אפשר, אבל זה משהו שאתה צריך לפתח בעצמך :-)

    # November 30, 2009 5:12 PM
    שלח תגובה

    (שדה חובה)  

    (שדה חובה)  

    (אופציונלי)

    (שדה חובה) 

    Please add 6 and 7 and type the answer here:


    Enter the numbers above: