# מערך שיעור: תכנון הפרויקט הצוותי📋 מערך מרצה

משך: 2 שעות אקדמיות (90 דקות).

מטרת השיעור: הצוותים יתכננו את הפרויקט הצוותי המלא — חלוקת בעלות, Interface Contracts, ומבנה עבודה — לפני כתיבת קוד.

בסוף השיעור כל צוות צריך: חלוקת אחריות ברורה, Interface Contracts כתובים לכל תקשורת בין שירותים, ו-Milestone ראשון עם Issues.

דגש קריטי: זהו שיעור עבודה צוותית בעיקרו — הזמן העיקרי הוא תכנון בפועל, לא הרצאה.

---

## מהלך השיעור

| חלק בשיעור | משך | הערות ודגשים |
| --- | --- | --- |
| פתיחה וחיבור | 5 דקות | הציגו את מבנה הפרויקט השלם — 4 שירותים, 4 חברי צוות |
| הבעיה: אינטגרציה בלי חוזה | 10 דקות | דוגמה קצרה לאי-התאמה שהתגלתה מאוחר |
| הרעיון: Interface Contract | 20 דקות | הדגמה על טופיק אחד, קישרו ל-Bounded Context |
| Issues/Milestones | 15 דקות | הדגמה קצרה ב-GitHub/כלי דומה |
| עבודת צוותים: תכנון בפועל | 40 דקות | כל צוות מתכנן, מרצה מסתובב לסייע |
| סבב שיתוף קצר | 10 דקות | כל צוות משתף חוזה אחד |

---

## דגשים להעברת השיעור

- זהו שיעור עם עומס-תוכן קטן ועומס-עבודה-צוותית גבוה — אל תמלאו את הזמן בהרצאה, השאירו את רוב השיעור לעבודת הצוותים בפועל.
- הסתובבו בין הצוותים ובדקו במיוחד שה-Interface Contracts מספיק מפורטים (שדות, טיפוסים) — לא רק "Collector שולח ל-Analyzer" בלי פירוט.
- אם צוות מתקשה להתחיל, הפנו אותם לדוגמת ה-`event-collected` Contract מדף התוכן כתבנית לחיקוי.

---

## מושגים

**Interface Contract** — הסכם מפורש על מבנה נתונים בין שירותים.
**Issue** — משימה בודדת מתועדת.
**Milestone** — יעד ביניים משותף.

---

## תרגיל חשיבה

**שאלת פתיחה:** "שני חברי צוות כותבים Collector ו-Analyzer במקביל, בלי לתאם מראש. מה הסיכוי ששני המבנים (JSON) שהם כתבו יתאימו בדיוק, בלי שום שיחה ביניהם?"

**מהלך:** תנו לצוותים לדון בקצרה — התשובה האינטואיטיבית ("נמוך") מובילה ישר לתובנה של השיעור: תיאום מפורש (Interface Contract) הוא לא "בירוקרטיה מיותרת" — הוא מה שהופך עבודה צוותית מקבילה לאפשרית בלי כאוס בסוף.

**מה המרצה מראה בסוף:** אם יש זמן, בקשו משני צוותים (או שני חברים באותו צוות) לכתוב JSON לדוגמה לאותו תרחיש **בלי** לדבר ביניהם קודם — ואז השוו. ההבדלים (שמות שדות, טיפוסים, מבנה) ממחישים חי את הבעיה שContract פותר.
