ניהול מחזור חיי יישום

**ניהול מחזור חיי יישום** או **ALM** (ראשי תיבות באנגלית של: **A**pplication **L**ifecycle **M**anagement) הוא תהליך ניהול המקיף את כל שלבי מחזור החיים של יישום. ALM  הוא ההיבט של PLM בתחום פיתוח תוכנה. התהליך כולל בתוכו את כל השלבים החל מניהול הדרישות, דרך הארכיטקטורה, הפיתוח, הבדיקות והיישום, וכלה בעדכון ובשחרור מהדורות ועד לשלב הסופי של התוכנה בו היא יוצאת מכלל שימוש.
שלוש נקודות ציון ישנן בתהליך של מחזור חיי תוכנה: ההתחלה - שלב הרעיון, שלב שבו התוכנה נכנסת לשימוש (Deployment) ושלב המוות, שבו אין לתוכנה ערך עסקי.

## ALM מורכב משלושה היבטים
* **ההיבט הניהולי (Governance)** - מטרת ההיבט היא להבטיח שהתוכנה תספק את צורכי הארגון שאליו נועדה התוכנה. ההיבט הניהולי הוא ההיבט היחיד שמתפרש לאורך כל מחזור החיים של התוכנה. במובנים רבים, הוא ההיבט החשוב ביותר במחזור החיים של תוכנה.
* **ההיבט הפיתוחי (Development)** - ההיבט אחראי על פיתוח התוכנה, זה מתחיל קצת אחרי הגאת הרעיון וממשיך בתחזוקה של התוכנה גם אחרי כניסתה לשימוש. גם אחרי שלב ה-Deployment, יש צורך בהמשך פיתוח התוכנית, גרסאות חדשות, עדכונים. בתוכנות מסוימות, עדכון גרסה יכול לעלות יותר מתועלת התוכנה לארגון. לכן יש לקחת בחשבון את העלות לעומת התועלת.
* **ההיבט התפקודי (Operations)** - של יישום פעיל חייב להיות נתון לניטור ולניהול. היבט זה מתחיל קצת לפני שלב ה-Deployment ומתפרש עד שלב המוות.

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

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

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

כלים לדוגמה:
* Visual Studio Application Lifecycle Management של מיקרוסופט - ניתן לקרוא בהרחבה בפרק הבא בערך זה.
* SAP Solution Manager של SAP
* HP Application Lifecycle Management של HP
* IBM Rational solution for Collaborative Lifecycle Management של IBM

* Polarion ALM מבית Siemens PLM 
* Visure Requirements 

## Visual Studio Application Lifecycle Management
Microsoft מציעים סט של כלים ששימוש בהם ישפר את הבנת צורכי הלקוח וגם את עיצוב, יישום ופריסת הקוד.
על ידי שימוש בכלים הללו ניתן להשיג את התוצאות הבאות:
* תכנון ומעקב אחר הפרויקט. יצירת תהליכים ומעקב אחר איכויותיהם על מנת לאפשר לצוות הפיתוח להפוך את דרישות הלקוח למוצר עובד.
* עיצוב הפונקציונליות, על מוצר קיים או מאפס.
* כתיבה, יישום בדיקות, מציאת באגים (debug) וניתוח האפליקציה על ידי שימוש בכלים שמשלבים את שאר מחזור החיים של האפליקציה, כך שצוות הפיתוח יוכל להבין כיצד התהליך תורם לפרויקט.
* בניית האפליקציה על ידי הכלי "Integrated Build System" שמאפשר לצוות להבטיח את האיכות ולבדוק שהדרישות מתקיימות בכל בנייה.
* בדיקת האפליקציה על ידי הרצת בדיקות ידניות או אוטומטיות. ביצוע בדיקות באופן שיטתי כך שצוות הפיתוח ידע את איכות המוצר בכל רגע נתון.
* פריסות בתוך סביבות וירטואליות כדי לאפשר פיתוח מתוחכם יותר ובדיקות.

## ראו גם
* ניהול מחזור חיי מוצר (PLM)

## קישורים חיצוניים
* http://www.microsoft.com/global/applicationplatform/en/us/RenderingAssets/Whitepapers/What%20is%20Application%20Lifecycle%20Management.pdf.
* http://www.microsoft.com/visualstudio/11/en-us/lifecycle.
* http://www8.hp.com/us/en/software-solutions/software.html?compURI=1215990#.T_BYbrXrqVo.

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

קטגוריה:מתודולוגיות לפיתוח תוכנה
קטגוריה:ניהול פרויקטים