מדדי DORA

**מדדי DORA** (באנגלית: **DORA Metrics**) הם ארבעה מדדי מפתח למדידת הביצועים של תהליכי פיתוח והפצה של תוכנה. המדדים הם תוצר של פרויקט מחקר בשם DevOps Research and Assessment (בראשי תיבות: DORA), שהחל בשנת 2014 על ידי ד"ר ניקול פורסגרן, ג'אז האמבל וג'ין קים. המחקר, שפורסם בהרחבה בספרם "Accelerate", מצא קשר ישיר בין ביצועים גבוהים במדדים אלה לבין הצלחה עסקית של ארגונים, לרבות רווחיות, נתח שוק ופריון.

המדדים נועדו לספק תמונה מקיפה על ידי בחינת שני היבטים מרכזיים המשלימים זה את זה: **מהירות ותפוקה** (Throughput) ו**יציבות** (Stability). על בסיס הביצועים במדדים אלה, המחקר מסווג צוותים לרמות שונות: נמוכה (Low), בינונית (Medium), גבוהה ו"עלית" (Elite).

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

### מהירות ותפוקה
מדדים אלה בוחנים את מהירות התגובה והיעילות של תהליך הפיתוח וההפצה.
* **תדירות הפצות (Deployment Frequency)**: באיזו תדירות הארגון מבצע הפצה (deploy) של קוד לסביבת הייצור (production). מדד זה משקף את יעילות התהליך ואת רמת האוטומציה שלו. צוותי "עלית" מפיצים שינויים לפי דרישה, לעיתים מספר פעמים ביום.
* **זמן הובלה לשינויים (Lead Time for Changes)**: כמה זמן לוקח מרגע ששינוי בקוד נכנס למערכת ניהול הגרסאות (commit) ועד שהוא רץ בהצלחה בסביבת הייצור. מדד זה מצביע על יעילות זרימת העבודה (pipeline), קיבולת הצוות ומורכבות הקוד. בצוותי "עלית", זמן זה קצר משעה.

### יציבות
מדדים אלה בוחנים את איכות השינויים המופצים ואת יכולת הצוות להתאושש מתקלות.
* **שיעור כישלון שינויים (Change Failure Rate)**: מהו אחוז ההפצות לסביבת הייצור שגורמות לכשל (תקלה, ירידה באיכות השירות) ודורשות תיקון מיידי (hotfix) או חזרה לגרסה קודמת (rollback). מדד הCFR מהווה משקל נגד למדדי המהירות ומבטיח שהמהירות אינה באה על חשבון האיכות. בצוותי "עלית", שיעור הכישלונות נע בין 0% ל-15%.
* **זמן ממוצע לשחזור (Mean Time to Restore - MTTR)**: כמה זמן בממוצע לוקח לשחזר את השירות לאחר תקלה או אירוע המשפיע על המשתמשים. מדד זה בוחן את חוסנו של השירות ואת יכולת התגובה של הצוות. בקרב צוותי "עלית", זמן השחזור הממוצע קצר משעה.

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

כדי להתגבר על מגבלות אלו, התעשייה החלה לנוע לכיוון של **מדידה אוטומטית של מדדי DORA**. גישה זו מתבססת על איסוף נתונים ישירות מכלי ה-DevOps של הארגון, כגון מערכות ניהול גרסאות (למשל, GitLab), מערכות CI/CD וכלים לניטור ובקרה (למשל, Prometheus). המדידה האוטומטית מאפשרת דיוק גבוה יותר, איסוף נתונים בזמן אמת, וניתוח ברמה פרטנית של כל שירות או מיקרו-שירות.

בהמשך, חברת DORA נרכשה על ידי גוגל (Google Cloud), הממשיכה לנהל את המחקר השנתי ולהפיץ את ממצאיו.

## חשיבות ותועלות
אימוץ מדדי DORA מסייע לארגונים במספר דרכים:
* **שיפור מתמיד מבוסס נתונים**: המדדים מספקים בסיס אובייקטיבי לקביעת יעדים ומדידת התקדמות.
* **חיבור בין מאמצים הנדסיים לתוצאות עסקיות**: מחקרי DORA מראים שביצועים גבוהים במהירות ויציבות אינם סותרים זה את זה, אלא משלימים זה את זה. צוותי "עלית" מצטיינים בשני התחומים, מה שמוביל לתוצאות עסקיות טובות יותר.
* **שיפור בתכנון וחיזוי**: הבנת הביצועים הנוכחיים מאפשרת לצוותים לספק הערכות זמנים מציאותיות יותר, לשפר את תכנון העבודה ולהגביר את יכולת החיזוי של פרויקטים.
* **שיפור רווחת העובדים**: המדדים משמשים כאינדיקטורים מובילים (leading indicators) לרווחת חברי הצוות.

## ביקורת ומכשולים נפוצים
למרות תועלותיהם, ישנם אתגרים וביקורות נפוצות לגבי השימוש במדדי DORA:
* **שימוש במדדים כמטרה בפני עצמה**: כאשר המדדים הופכים למטרה ולא לאמצעי, צוותים עלולים לנסות "לרמות" את המערכת (לפי חוק גודהארט) במקום לשפר את התהליכים. למשל, צוות עשוי להגדיר מחדש מה נחשב "כשל" כדי לשפר את ציון ה-CFR שלו.
* **התמקדות במדד אחד**: אופטימיזציה של מדד אחד, בדרך כלל מהירות, על חשבון האחרים (במיוחד יציבות) היא אנטי-תבנית נפוצה שמובילה לחוב טכני ולהאטה בטווח הארוך.
* **אינדיקטורים מושהים (Lagging Indicators)**: מדדי DORA מתארים תוצאות עבר ואינם מנבאים ביצועים עתידיים באופן ישיר. כדי לשפר אותם, יש להתמקד באינדיקטורים מובילים (leading indicators) כמו גודל Pull Request, זמן סקירת קוד ושיעור עבודה מחדש (Code Churn).
* **היעדר הקשר עסקי**: המדדים אינם מודדים באופן ישיר את הערך העסקי שנוצר. צוות יכול להציג ביצועי "עלית" במדדי DORA אך עדיין לפתח את המוצר הלא נכון.
* **שימוש לרעה על ידי הנהלה**: כאשר המדדים "זולגים" להנהלה שאינה מבינה את עקרונות ה-Lean וה-Agile, הם עלולים לשמש ככלי להפעלת לחץ על צוותים במקום כלי לשיפור, מה שעלול ליצור תרבות ארגונית שלילית.

## ראו גם
* DevOps
* Continuous integration
* Continuous delivery
* פיתוח תוכנה זריז

## הערות שוליים

קטגוריה:הנדסת תוכנה