תפריט נגישות

עקרונות Lean Software Development

במאמר זה נסקור את עקרונות Lean Software Development , כיצד הם קשורים לעקרונות Lean Manufacturing בפרט ול- Lean Management בכלל


Lean Software Development מתחיל בעקרון פשוט : זהה את 20% של הקוד שיספקו 80% מהערך, וספק אותם מהר ככל האפשר. Lean Software Development מדגיש תזמון Pull במקום Push , כאשר מערבים את הלקוח בהגדרת דרישות ובבדיקות בכל איטרציה.

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

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

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

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

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

במקום מפל מים נמשך לאורך זמן עם ניהול פרויקטים קשיח, Lean Software Development מסתמך על איטרציות מהירות (טקטים, ספרינטים) כאשר כל ספרינט מהווה הזדמנות לצוות וללקוח לקבל החלטות בהתבסס על תוצאות הסבב הקודם. כל איטרציה היא מעגל שלם של PDCA – Plan Do Check Act בו פותרים בעיות .

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

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

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

יתכן ש- Lean Software Development הינו תהליך ה- One Piece Flow המנוסה והמוכח ביותר: חברות כמו Google , שלקוחותיהן בעולם התרגלו ליהנות מחידושים תכופים ומפתיעים המוטמעים בתוכנה באופן חלק , משחררות גרסאות לעיתים ברמה יומית. מעובדי Google מצופה להקדיש כ-20% מזמנם לחפש רעיונות חדשים בדומה למהנדסי חברת 3M החדשנית. השקעת זמן זו הינה מניע אסטרטגי חשוב המסייע לשיפור המוצר ולגידול בכמות הלקוחות.

מהנדסי Google עוקבים ברמה יומית אחר דפוסי השימוש של לקוחות במוצר, ומנחים את הפיתוח העתידי על בסיס מידע מוצק אודות Feature –ים ופונקציונליות פופולריים ונחוצים – Voice of the customer – עיקרון נוסף של Lean .

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

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

כותבת המאמר: עדה מרקמן, מנכ"לית משותפת ב-BDA
ליצירת קשר: ada@bda-projects.co.i