• Home
  • בלוג
  • תכנות המוני - 5 מפתחים על מחשב אחד?!

תכנות המוני - 5 מפתחים על מחשב אחד?!

לפני הקורונה. חמישה מפתחים יושבים בחדר ומביטים במסך גדול. ארבעה מהם משוחחים, והחמישי מקליד. צפצוף נשמע. כולם מחליפים מקומות וממשיכים כאילו לא קרה דבר. מה קורה כאן?

פורסם ב
9 באפר׳ 2021
זמן קריאה
4 דקות
נכתב על ידי
Knowly

ביצוע ניסויים לשיפור התהליכים שלנו הוא חלק מהעבודה היומיומית שלנו. לכן, כשאני שומע על משהו שעשוי לעזור לנו להשתפר, אני רוצה לבדוק אותו. בתחילת 2019 הצטרפתי לכנס Domain Driven Design Europe. בהפסקות שוחחתי הרבה עם משתתפים אחרים, רובם מפתחים.

בשיחות רבות עלו נושאים שהועלו בסדנה Mob Programming בכנס שנערך שנה קודם לכן. המפתחים היו נלהבים מאוד מ-mob programming: מספר מפתחים העובדים באותו החדר על מחשב אחד. הם סיפרו כמה למדו והתפתחו כצוות בזכות הסדנאות הללו. זה היה סימן ברור עבורי ללמוד יותר על הנושא. לאחר מכן, החלטתי שננסה את זה.

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

תכננתי והכנתי את סשן התכנות המוני הראשון שלנו, וזה לא היה כל כך קשה:

  • חבר מחשב למסך גדול

  • הצב שולחן מול המסך.

  • הוסף חמישה כיסאות לשולחן.

  • הנח חטיפים וציוד על השולחן.

והנה היינו, חמישה מפתחים בחדר עם מחשב אחד בלבד:

מה קרה במהלך סשן התכנות המשותף הראשון שלנו?

ווסלי מתיישב ליד המקלדת (אנחנו משתמשים במחשב שלו) ומקבל אוטומטית את התפקיד של נהג. הנהג הוא מכשיר קלט חכם: הוא יכול להקליד אבל לא רשאי לקבל החלטות. המפתחים האחרים מקבלים את התפקיד של נווט. הם אלה שמדברים על מה צריך לקרות ומורים לנהג מה לעשות.

הנהג הוא מכשיר קלט חכם: הוא יכול להקליד, אך אינו רשאי לקבל החלטות.

אנחנו מתחילים לעבוד על סיפור חימום פשוט שבו עלינו להסיר תוכן מיושן בתחתית האתר.

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

ווסלי כותב על פתק דביק את מה שלמד על Docker. הוא מדביק את הפתק על דף נייר גדול בשם "למדתי".

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

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

אנחנו מסיימים את הסיפור ומתחילים לעבוד על הסיפור הבא: Yii2 view גורם להופעת הערות שגויות ב-HTML, מה שגורם לפסילת ה-HTML. סיפור מעניין. הוא כבר נבחר פעמיים על ידי מפתחים שונים, אבל שניהם נתקעו. כולם תורמים לסיפור. בסופו של דבר, אנחנו פותרים את הבעיה באופן שכולם מרוצים ממנו.

לאחר שעתיים, המפגש מסתיים.

מה למדנו מהמפגש הראשון שלנו בתכנות המוני?

אנו עורכים פגישה רטרוספקטיבית כדי לדון במה שהצליח ומה ניתן לשפר. המסקנה העיקרית היא: תיקנו את הסיפור טוב יותר/ביסודיות רבה יותר באיטרציה אחת מאשר אם אדם אחד היה עובד עליו.

תיקנו את הסיפור בצורה טובה יותר/יסודית יותר באיטרציה אחת מאשר אם אדם אחד היה עובד עליו.

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

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

תובנות אחרות היו עדינות יותר. לדוגמה, מציאת דרכים לפצל בעיה קשה לבעיות קטנות יותר. או ההצעות כיצד לעבוד באמת בשיטת Test Driven על ידי יצירת בדיקה כושלת תחילה, במקום רק להוסיף בדיקה לאחר מכן.

הניסוי הצליח! הפגישה הבאה מתוכננת מיד.

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

תכנות מרוחק

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

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

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

  • הנהג מתחבר למחשב ייעודי באמצעות חיבור שולחן עבודה מרחוק (יצרנו חשבון משתמש mob ברשת הפנימית לשם כך).

  • יצרנו חשבון משתמש mob נפרד עבור Git. זה מקל מאוד על החלפת תפקידים.

איך אוכל להתנסות בזה בסביבת העבודה שלי?

מבין כל המאמרים, הבלוגים והספרים האלקטרוניים שקראתי על תכנות המוני, אני ממליץ בחום לקרוא את השניים הבאים:

לאחר מכן, פשוט קבעו תאריך עם הצוות שלכם ונסו את זה. תהנו!

עיינו בבלוגים נוספים שלנו

Caroline

Caroline

12 בדצמ׳ 2024

הסבר על הטבות התעסוקה המשניות שלנו

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

המשך קריאה
Caroline

Caroline

8 באפר׳ 2025

עובדים ומשגשגים!

העבודה ב-Easy LMS היא מתגמלת! כמובן שאנו מציעים שכר תחרותי, החזר הוצאות נסיעה ודיור, ו-25 ימי חופשה בתשלום בשנה! אך אנו גאים להציע לכם גם הטבות שיעזרו לכם להרגיש טוב ולתת את המיטב. הרווחה שלכם, הגופנית והנפשית, היא בראש סדר העדיפויות שלנו! כי העובדים שלנו הם עמוד התווך של הארגון שלנו.

המשך קריאה
Caroline

Caroline

22 באפר׳ 2025

החודש הראשון שלך

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

המשך קריאה