JavaRush /בלוג Java /Random-HE /כל מה שצריך לדעת על מתודולוגיות פיתוח תוכנה: טרנדים, עקרו...

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

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

הערה למתחילים: מודלים, מתודולוגיות ובלבול כללי

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

1. מתודולוגיית Scrum

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

יתרונות:

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

מינוסים:

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

למי זה מתאים:

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

2. מתודולוגיית קנבן

המאפיין החשוב ביותר של Kanban הוא הדמיה של מחזור החיים של הפרויקט . עמודות נוצרות להשלמת משימות הנשלחות בנפרד. העמודות מסומנות בסמנים כמו: To do, In progress, Code review, In testing, Done (שמות העמודות, כמובן, יכולים להשתנות). המטרה של כל חבר צוות היא לצמצם את מספר המשימות בעמודה הראשונה. גישת Kanban היא ויזואלית ועוזרת לך להבין היכן הבעיה. מבנה Kanban אינו נקבע באופן סופי ובלתי הפיך: בהתאם לפרטי הפרויקט, ניתן להוסיף עמודות מאולתרות. לדוגמה, צוותים מסוימים משתמשים במערכת שבה הם צריכים להגדיר קריטריונים למוכנות של משימה לפני ביצועה. לאחר מכן מתווספות שתי עמודות - ציין (ציין את הפרמטרים) וביצוע (התחל לעבוד).

יתרונות:

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

מינוסים:

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

למי זה מתאים:

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

3. מתודולוגיית RUP

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

יתרונות:

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

מינוסים:

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

למי זה מתאים:

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

מתודולוגיות רבות, מגמה אחת

בנוסף ל-Scrum ו-Kanban הפופולריים ללא ספק, המבוססים על עקרונות הגמישות תחת השם הכללי "Agile" , כמו גם RUP האיטרטיבי העיקש, חברות עובדות עם וריאציות רבות של מתודולוגיות. יש אנשים שמעדיפים תכנות קיצוני וקבלת ההחלטות המהירות והפשוטות ביותר, יש המעדיפים פיתוח מונחה מבחן, ואחרים מעדיפים פיתוח יישומים מהיר (RAD). יחד עם זאת, המגמה העיקרית והבלתי מותנית היא שימוש במספר מתודולוגיות בו זמנית . או אפילו שילוב מודלים ומתודולוגיות למערכת בקרה ייחודית. כל מה שאתה צריך לדעת על מתודולוגיות פיתוח תוכנה: טרנדים, עקרונות ומלכודות למתחילים - 2חברות מודרניות שואפות לבטל חסמים בירוקרטיים וליצור אווירה של עבודת צוות כללית בתוך הארגון, מבלי להעביר אחריות בין מחלקות ובלוקים. על פי דוח Scrumalliance , 70% מחברות ה-IT משתמשות ב-Scrum. ביניהם ענקיות כמו גוגל, אמזון, סיילספורס, מיקרוסופט, אדובי. סטארט-אפים ופרויקטים צעירים נוטים יותר לקנבן, אבל הוא משמש גם את טויוטה ולמשל גיימרים מ-Wargaming. חברות CIS צנועות יותר Prom.ua, Bigl.ua, Kabanchik.ua משתמשות במתודולוגיות Scrum ו- Kanban בו-זמנית, אך עבור משימות שונות. Scrum - ככלי תכנון, Kanban - למעקב אחר התקדמות העבודה. לגבי RUP, הוא נהוג לרוב על ידי חברות מערביות עם 50-200 עובדים והכנסות של 1-10 מיליון דולר. אבל במקביל, IBM שינתה את RUP כדי להתקרב לעקרונות Agile על ידי שחרור מתודולוגיית OpenUP - "RUP, רק זריז". אותה זריזות זריזה מהודרת שולטת כעת בנוף ה-IT . זו לא סתם אופנה בימינו - היא עדיין חדשנית, והיא למעשה עובדת בהרבה חברות גדולות. Agile נמצא בשימוש בעמק הסיליקון ומשמש את פייסבוק ואובר.

שורה תחתונה

לכל פרויקט מתודולוגיית פיתוח תוכנה משלו, בהתאם לצוות, המימון, התזמון ודרישות הלקוח. אין טכנולוגיית ניהול אוניברסלית: אפילו Agile הפופולרי ביותר לא יכול לספק את הגישה הטובה ביותר לתהליך הפיתוח. לכן, המתודולוגיה נבחרת בקפידה, ולעתים אף ביסודה. עד כדי כך שתוכלו להשתמש בו כדי להסיק מסקנות על החברה עצמה או על לקוחותיה. מתודולוגיות מעורבות, משלימות מודלים ומותאמות לעצמן. עד כדי כך שהם מולידים גישות חדשות. למרות שבסופו של דבר תחום הניהול נשאר בידיים של Scrum ו-Kanban, עם הכללות בלתי צפויות של מודל Waterfall או RUP איטרטיבי.
מה עוד לקרוא
אתרי אינטרנט: ספרים:
  • אנדרו סטלמן, ג'ניפר גרין: "למידה זריזה";
  • פר קרול, ברוס מקאייזק: "זריזות ומשמעת בקלות: תרגול מ-OpenUP ו-RUP";
  • מייק קון: Scrum. פיתוח זריז";
  • רוברט ק. מרטין: "פיתוח תוכנה מהיר. עקרונות, דוגמאות, תרגול";
  • מרקוס המרברג, יואקים סונדן: "קנבאן בפעולה";
  • A Jacobson, G. Booch, J. Rumbaugh: "תהליך פיתוח תוכנה מאוחד."
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION