מה אנחנו משפרים

המערכת עדיין מכניסה כסף. לשנות אותה נעשה מסוכן.

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

תסמינים

מה אתם רואים

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

ברירת המחדל בדרך כלל שגויה

למה "לכתוב הכול מחדש" הוא לרוב לא הפתרון

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

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

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

גישה

איך Kendoo מובילה מודרניזציה

  1. הערכת מערכת

    מה המערכת עושה, היכן ההתנהגות מובנת והיכן הידע אבד. נבחן מול ראיות ולא מול תחושות הצוות לגביה.

  2. מפת סיכונים

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

  3. ארכיטקטורת יעד

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

  4. מפת מודרניזציה

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

  5. הגירה הדרגתית

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

  6. שערי איכות ודיווח

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

קריטריוני החלטה

חמש אפשרויות לכל רכיב

מיושמות במכוון, רכיב אחר רכיב, עם נימוק מתועד.

  1. רפקטור

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

  2. החלפה

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

  3. בידוד

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

  4. הוצאה משימוש

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

  5. להשאיר כמו שהוא

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

מודרניזציה ואספקת פיצ׳רים, באותו זמן

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

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

תוצאות

מה משתנה

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

קשור

תוצאות

איך העבודה נראית בפועל, כולל כתיבה מחדש שהתבררה כמיותרת.

לקבל תשובה ישירה על שאלת הכתיבה מחדש

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