פיתוח עסקי

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

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

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

נקודה 1: שפות התכנות מתרחקות מהחומרה ומתקרבות לעולם העסקי.

כשהתחלנו היה אסמבלר, אח"כ פורטרן, ליספ, וקובול הדור הבא כבר כלל את בייסיק, ו-C, אז הגיחה SQL שאחריה פחות או יותר התחילה המהפכה לקרות: C++ אחריה ארלנג, פרל, פייתון, רובי, ג’אווה ועוד… הרשימה חלקית מאוד, אבל לדעתי ניתן לראות דפוס מאוד ברור של מעבר משפות שדורשות הבנה של החומרה לשפות שדורשות הבנה של עולם הבעיה או כמו שאני קורא לו: המוצר.

נקודה 2: כל מפתח הוא מנהל מוצר

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

נקודה 3: אם העולם העסקי לא מעניין, אולי אתה לא בעבודה הנכונה

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

נקודה 4: התהליכים ותפיסות העבודה דוחפות לכיוון.

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

רגע רגע. אנחנו בני אדם, וככאלה אנחנו שונים זה מזה.

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

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

*מקור התמונה: http://www.flickr.com/photos/lynhdan/2409859979/

הכל זה אישי

לא מזמן ובמסגרת הסדנאות של כנס אג׳ייל פרקישיונרס 2013, זכיתי להעביר ביחד עם Yves Hanoulle סדנא שנקראת Persnal Agility, למעשה הסדנא עוסקת בנושא שנקרא Personal Kanban שבלי לפרט יותר מידי היא טכניקה שמבוססת על קנבן קלאסי אבל מטרתה היא להכניס סדר ושפיות לניהול העצמי של כל אחד ואחת מאיתנו.

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

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

image

אז הנה אני חולק:

Old Personal Kanban זו אילוסטרציה של לוח הקנבן האישי שלי (תקליקו להגדלה), אני משתמש בצבעים כדי להמחיש את ההשתייכות של המשימה (אישי, קהילתי, עסקי, משפחתי) ובמיקום המשימה בטור הספציפי בכדי להמחיש את העדיפות שלה (יותר גבוה, יותר חשוב), בנוסף ישנה שורה בחלק העליון של הלוח עבור משימות ״מפתיעות״, כיבוי שריפות וכאלה.

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

ישנם עוד דברים וטכניקות שאני משתמש, אבל בפעם אחרת אולי… (אם זה מעניין אתכם תבקשו)

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

New Personal Kanban כפי שאתם רואים (תקליקו להגדלה) הארכתי בצורה אלכסונית את הטורים To do, in work, on hold ו-today, הצורה הזו מאפשרת לי לראות במבט חטוף משימות שבגלל סיבות שונות ומשונות לא נמצאות במקום שהייתי מצפה שהם יהיו, אם כי הזמן לביצוען הולך ואוזל או אם כי הן נמצאות (לדעתי כמובן) זמן רב מידי על הלוח.

למשל משימה שנמצאת בעמודת ה-to do והייתי מצפה שתהיה כבר לפחות ב- Today תמצא את מקומה בעמודת ה-To do מתחת לעמודת ה-In work.

השינוי המבני הזה יעזור לי לראות במבט חטוף מה מצב המשימות האמיתי שלי לעומת מה שהיית׳י רוצה שיקרה, מעבר לויזואליות של הנושא אני מאמין ומקווה שזה יהיה עוד מנוע חזק לכיוון של שימור מתמיד.

הנושא עוד בוסרי ואין לי מושג אם הוא יעבוד או לא, מה דעתכם?

אשמח להערות והארות בנושא.

בנוסף אנחנו מציעים קורסים ציבוריים ופרטיים בנושא, פרטים ניתן למצוא באתר שלנו.

בדרך לסקראם…

 

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

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

לכבד את התפקידים ומבנה האחריות הנכחי

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

להפוך את העבודה לויזואלית

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

לנהל את הזרימה

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

ליישם לולאות פידבק

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

להפוך את התהליך למפורש

גם כאן סקראם מאוד עוזר, אם ע״י שימוש בהגדרת ה-Done ואם ע״י הגדרה של דרכי העבודה של הצוות מתוך הרטרוספקטיבות (Ways of working). דברים נוספים שיובל מזכיר כגון מוכנות של פריטים מהבקלוג לפיתוח בד״כ מגיעים בשלב מאוחר יותר אם עולה צורך בכך.

להגביל את כמות העבודה – Limit WIP

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

מה בכל זאת שונה?

לכבד את התפקידים?

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

הגבלת כמות העבודה?

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

שיפור שיתופי תוך שימוש במודלים:

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

סיכום הדברים:

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

יש לציין שגם ביפן (גם ארץ השמש העולה וגם ארץ הקנבן) יש הבחנה ברורה בין שני מושגים – קייזן (Kaizen) הוא השיפור התמידי, וקייקקו (Kaikaku) הוא השינוי הרדיקלי וע״פ התפיסה הרווחת בשביל להשתפר יש לבצע שילוב של שני הגורמים, לטעמי סקראם בהחלט נותן מענה נכון לשילוב בין השניים, לעיתים שינוי רדיקלי עוזר לנער קצת את הארגון ולהוציא אותו מאיזון (לא בריא) לקראת בלבול ותחילתו של תהליך למידה.

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

מקור התמונות:
http://www.flickr.com/photos/18091975@N00/2963986468/
http://www.flickr.com/photos/adam_jones/3793602841/

מה ההבדל בין טבח ביתי לשף?

8957[1]אז קודם כל בהגדרה (שלי – לא מהמילון) שף הוא מישהו שהפך את הבישול למקצוע העיקרי ממנו הוא מתפרנס, טבח ביתי יכול להיות גם ״שף״ מאוד אבל אין לו אילוצים מסחריים או צורך קיומי ליצור אוכל טוב מסמיק שיגרום ללקוחות לחזור ולמבקרים לכתוב ביקורות טובות. או במשפט אחד להיות טבח ביתי זה תחביב – שף זה מקצוע.

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

בוא נתחיל עם אלה שלא:

  • יכולת יוצאת דופן לחוש בטעמים או כמו שהם קוראים לזה ״חך מצוין״
  • כישרון
  • אהבה אמיתית לאוכל.

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

8170834332_9e4da61829[1]בואו נמשיך עם אלה שניתנות לגישור:

  • טכניקה – טכניקה של איך חותכים, איך מבשלים, כמה זמן, באיזה טמפרטורה, איך מצלחתים (גם כן מילה מטופשת) וכו׳
  • ידע – מה הולך עם מה, מה לא הולך עם מה, מה קורה למזון בתנאים כאלה ואחרים, איך מתקנים עודף במלח/סוכר,
  • כלים – לשפים בד״כ יש כלים מקצועיים ויקרים שנבחרים בקפידה בכדי לבצע משימות מסוימות, אם זה סכין ואם קולפן, זה יכול להיות מיקסר מארוך, תנור וכיריים ועוד ועוד…
  • טקטיקה – וולפגנג פק – אחד הטבחים המפורסמים בעולם מצוטט כשהוא אומר שההבדל הגדול ביותר בין טבחים ביתיים ושפים מקצועיים הוא שטבחים ביתיים לא טועמים את המזון תוך כדי בישול אלא פשוט עובדים ע״פ המתכון צעד צעד.

הבנתם? אז בואו נחזור לקרקע.

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

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

  • טכניקה – ישנן לא מעט טכניקות בתחום של דיזיין, פיתוח, בדיקות, דרישות, ניהול פרויקטים ועוד שכבר הוכחו כעובדות, אתם לומדים עליהן? מתנסים איתן?  הולכים לקורסים? לכנסים?
  • ידע – מה אתם יודעים על ההתפתחויות האחרונות בתחום העסקי שלכם? בתחום המקצועי? אצל האנשים שמסביבכם? בארגון שאליו אתם שייכים? 
  • כלים – בדקתם לאחרונה את הכלים שלכם? השחזתם את הגרזן? ביצעתם שיפורים לתהליך ה-build? אולי בתחום הבדיקות או התהליכים יש מה לשפר מבחינת כלים?
  • טקטיקה – אתם אג׳ילים מספיק בשביל להתאים את עצמכם לדרישות של העולם שמתחלפות כל 5 שניות?

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

מקור התמונות:
http://simania.co.il/bookimages/covers0/8957.jpg
http://www.flickr.com/photos/19714819@N00/8170834332

שש פעמים אותו הדבר?

3912450799_ef0ea00945[1] כמה פעמים יצא לכם לחזור על אותה פעולה מספר פעמים? נגיד 6.

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

נשמע נורא לא?
אז זהו שלא. כמעט בכל אחת מהפעולות שביצעתי מספר פעמים היה ערך (חוץ אולי מהאוהל – אבל זה סתם טרטור) איפה הערך?

הערך הוא בלימוד.

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

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

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

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

בסדנת ה- Test Automation Code Retreat יתרגלו המשתתפים בניית אוטומציה לאפליקציה 6 פעמים, ב-6 גישות שונות וכלים שונים. אם זה התחום שלכם אז גם אם אתם מתחילים וגם אם אתם כבר מנוסים, לדעתי זו תהיה אחת ההשקעות הכי טובות שעשיתם בשנים האחרונות

מקור התמונה: http://www.flickr.com/photos/imuttoo/3912450799

נא להתייעץ עם רופא לפני השימוש

Uncategorized

December 12, 2012

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

 

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

התנשאות והתבדלות של הצוות

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

בואו נראה דוגמא:

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

איך היה אפשר למנוע את זה?

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

מקור התמונה: http://www.flickr.com/photos/rmgimages/4882443718/sizes/m/in/set-72157624577933711/

מסטר צוואר בקבוק

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

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

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

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

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

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

מסטר צוואר בקבוק.

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

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

נ.ב. את השם הגיתי באנגלית – בה הוא נשמע טוב יותר: Bottleneck Master.

*מקור התמונה: http://commons.wikimedia.org/wiki/File:Bottlenecks.jpg

ספרינט ייצוב – תנצב”ה

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

למה אני מתכוון?

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

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

בשביל לשנות תפיסה צריך קודם להבין שיש בעיה.

אחד הדברים שכדאי לבצע בכדי לשכנע את הנוגעים בדבר שמדובר בהתנהלות לא פרודוקטיבית הוא להפוך את הבעיה לויזואלית, להמחיש את המצב והמשמעות שלו. להלן דרך טובה לבצע את זה:
תייצרו גרף CFD בעל שני מדדים: אחד שמראה כמה מהמוצר כבר מקודד ושני שמראה כמה מהמוצר כבר עבר בדיקות, לא יכול להיות מצב שיש יותר מוצר בדוק ממקודד (אלא אם כן עליתם על משהו…) הגרף הזה ימחיש לכם בצורה טובה את הפער שבין הבדיקות לפיתוח ויעזור לכם להבין את המשמעות.

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

בקיצור: זה רע.

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

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

איך?

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

מקור התמונה:http://www.flickr.com/photos/lenore-m/4052125926/

 

היי אתה, בוא רגע לפה

 

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

תגיד לי אתה, כן אתה שם בפינה, כן כן אתה – התוכניתן עם האוזניות:

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

אתה. אתה יודע מי אתה?

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

הבחירה היא שלך:

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

 אתה הבנת את זה?

 

 

 

מקור התמונות:
http://www.flickr.com/photos/a2gemma/1448178195/
http://www.flickr.com/photos/infomofo/154877897/

להצלחה הרבה אבות, הכשלון הוא אמפירי

כמעט כל התהליכים האג׳ילים מבוססים על מנגנונים של שיפור מתמיד, תקראו לזה inspect and adapt, תקראו לזה PDCA, שיפור מתמיד.
בשביל להשתפר צריך ללמוד ובשביל ללמוד כמובן שצריך גם לטעות אבל לטעות זה לא חכמה גדולה,
פיתחנו פיצ׳ר מסוים, הלקוחות לא אהבו אותו, מה למדנו? אם כל מה שלמדנו זה שהפיצ׳ר לא טוב אז כנראה שנפלנו קורבנות לאחד מדפוסי ההתנהגות הבעייתיים ביותר שאני מזהה בארגונים שקוראים לעצמם ארגונים לומדים.
אני אומר את זה בצורה הברורה ביותר: למידה היא לא תירוץ טוב לכישלון, בטח ובטח אם כל מה שלמדנו הוא על עוד משהו שלא עובד.
אם נכשלתם אחרי חצי שנה שבה ישבו 5 מפתחים, שני בודקים, 1 מנהל מוצר ו-150 חבילות של עוגיות עבאדי. אז זה לא למידה, לפחות אני לא רואה את זה ככה.
החכמה בכישלון היא שהוא יהיה מהיר ומדויק, הוא צריך לתת תשובה בדיוק במה נכשלנו ותוך פרק זמן קצר ככל שניתן. מה מתוך אינספור האלמנטים שאנחנו מוציאים לפועל כל יום לא עובד טוב או נכשל? איזה שינוי צריך לנבוע מתוך הניסיון שלנו?

כשלון אמפירי

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

איך מודדים?

צריך להיזהר ממדדים (על זה כבר כתבתי), ואחרי שנזהרנו עדיין ישנם סוגים שונים של מדדים לדברים שונים שרוצים למדוד.
עבור נכונות של פיצ׳רים יש למדוד למשל את התנהגות המשתמשים, כמות קליקים, התנהגות, ביצועים, לערוך סקרים של שביעות רצון ולמדוד, אם זה רלוונטי, את ההשפעה על השורה התחתונה של הארגון – כסף.
עבור נכונות של תהליך ניתן למדוד דברים כגון Lead time, cycle time, שינויים ב-Velocity.
עבור איכות ניתן למדוד דברים כגון: מספר מקרי לקוח, כמות באגים, כמות בקשות לשינויים (CR) ביחס לגודל הפיצ׳ר וכו׳
כל הדברים שציינתי הם יחסית קלים למדידה, רובם כבר קיימים במערכת, הצעד שחסר ברוב המקומות הוא להצמיד את המדדים הללו להחלטות ולבצע השוואות, אני לא טוען שזה קל, זה דורש משמעת, התמדה ובד״כ גם לא עובד טוב בלי רצון אמיתי למצוינות, אבל זה בהחלט אפשרי.

להיכשל מהר

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

אבל יש בעיה…

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

מקור התמונה: http://www.fotopedia.com/items/flickr-3422530465