שיפור תפוקת צוות הפיתוח ללא עלויות – חלק א'
כולם רוצים לשפר את תפוקת צוותי הפיתוח, אך הרבה פעמים יש מגבלות...
איך נגדיל את תוצרי צוותי הפיתוח שלנו?
- אפשר לגייס כח אדם מקצועי יותר, מנוסה יותר וכו' - לא באמת מעשי. יש לזה עלויות, משמעויות שימור כ"א (קשה ויקר יותר לשמר כ"א איכותי יותר).
- אפשר להגדיל את הצוות - כך הצוות ייצר יותר תוצרים. מצד שני, עליות גבוהות... וכמו שכולם יודעים, אין יחס ישר בין הגדלת מספר המתכנתים לכמות התוצרים.
אני יכול להציע כאן עוד מספר הצעות שונות ומשונות, אך לכולן יש עלות...
יש לי רעיון חדשני ומהפכני - בואו נגדיל את תפוקת צוות הפיתוח ע"י צמצום טעויות/תקלות בתהליך הפיתוח!!!
משתמשים ב - 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…”
בהצלחה.
טל