שיפור תפוקת צוות הפיתוח ללא עלויות – חלק ב'
בפוסט קודם בנושא, דיברתי על האופציה שבכל פעם שמבצעים checkout יתבצע get latest version, כך שכברירת מחדל תמיד נעבוד על עותק מעודכן של הקובץ.
היום אני רוצה לדבר על נושא קצת “מורכב” יותר ויחד עם זאת בעל אפקט רב יותר בעיקר בסביבה בא קיימים מספר צוותים שעובדים על חלקים שונים של אפליקציה.
Build & Continuous Integration
מה זה Build?
כאשר אני מדבר על build אני מתכוון לתהליך Build המנוהל ומטופל ע”י TFS.
במה שונה תהליך Build מ – Build שאנחנו מבצעים ב – (Ctrl+F5) Visual Studio?
ביצוע ה – (Ctrl+F5) build הוא רק חלק בתהליך build שמנוהל ע”י TFS. בתהליך ה – Build מתבצעות מספר פעולות בסיסיות:
- שליפת הקוד המעודכן משרת ה – (get latest version) TFS
- ביצוע build
- הרצת Unit Tests
- העתקת התוצרים לספריה מסויימת
- יצירת ושליחת דוח מסכם
כמובן שניתן להוסיף/לשנות פעולות.
על מנת ללמוד יותר על נושא של TFS Builds ראה…
מה זה Continuous Integration?
הרעיון הוא ביצוע בדיקות אינטגרציה של הקוד של האפליקציה שלנו באופן שוטף וסיסטמתי.
איך?
עיקר בעיות האינטגרציה קורות כאשר מבצעים שינוי במודול A, אבל משתמשים בתוצרים שלו (dlls) במודול B. מי שמפתח את מודול B לא יודע שהיה שינוי ב- מודול A וממשיך לפתח מול dll שאינו מעודכן.
אז?
אז אם נוכל להריץ תהליך build בכל פעם שמתבצע שינוי, נדע על בעיות אינטגרציה ברגע שהן קורות.
איזה מזל!!! ניתן להגדיר לתהליך ה – build לרוץ בכל פעם שמתבצע checkin. מאחר ותהליך ה- build מבצע get latest version לפני כל ריצה, נוכל לקבל אינדיקציה מיידית על בעיית אינטגרציה.
ושוב, בהנחה שצות הפיתוח עובד בסביבת Team System, אתם חוסכים הרבה כאב ראש, זמן וכסף וזה לא עולה כלום…
ועוד דבר אחד…
הרבה פרוייקטים/ צוותי פיתוח שעבדתי איתם מאוד רצו לבצע תהליכי build אבל לא ידעו איך… התהליך מאוד פשוט וניתן ללמוד גם כאן.
כמובן שאם למישהו יותר נוח ליווי “אנושי”, תמיד אשמח לסייע :-)
בהצלחה,
טל
חומר נוסף:
Team Foundation Build Walkthroughs