יום חמישי, 26 בנובמבר 2015

על החשיבות של גמישות בתהליך הפיתוח

מאת: רועי פן, מהנדס אפליקציה בחברת סיסטמטיקס


בניהול מוצר מאוד אוהבים יכולת חיזוי, שכן היא מאפשרת תכנון מראש, אך מצד שני – בפיתוח מוצר יש גם צורך בחדשנות ויכולת תגובה מידית למגמות וצרכים בשוק.
חשוב להכניס גמישות מרבית לתהליך הפיתוח של מוצרים, כזו שתאפשר להתמודד עם שינויים בשלבים מאוחרים בצורה שלא תשבש את לוחות הזמנים ואת איכות המוצר, ולא תחייב השקעה כספית גדולה.
כלומר - המטרה היא לא לדכא את השינויים – אלא להשתמש בגישות אשר יהיו מסוגלות להכיל אותם !
ובדיוק בנושא הנ"ל, של תהליך פיתוח גמיש, קיימה החודש חברת סיסטמטיקס יום עיון בו השתתפו מובילי פיתוח מחברות שונות בישראל, מכל סוגי התעשייה, בהדרכתו של ד"ר פרסטון סמית' (Dr. Preston G. Smith) - המשמש כיועץ בתחום לחברות שונות, מחבר של שלושה ספרים בנושא תהליכי פיתוח וניהול פרויקטים, ומפעיל האתריםFlexibleDevelopment.com  ו- NewProductDynamics.com.

---

מבוא לגמישות

גמישות נחוצה כאשר הטכנולוגיה אינה ודאית (או משתנה בקצב מהיר), כאשר השוק חדש או לא מספיק ברור, כאשר סביבת השותפים לא יציבה, כאשר ייצור / הפצת / השימוש במוצר נתונים להשפעה של אירועים עולמיים, כאשר הלקוחות לא בטוח יודעים מה הם רוצים עד שהם פוגשים את המוצר, וכו'. יחד עם זאת – יש לבחור את הנקודות הספציפיות בתהליך הפיתוח בהם נדרשת גמישות, כיוון ש"גמישות אוניברסלית" הינה מאוד יקרה.
טכניקת גמישות "ותיקה" (משנת 2,000) ומוכרת היא Agile Software Development, אשר נוחלת הצלחות בפרויקטים קטנים, בעיקר בפרויקטי תוכנה.
בפיתוח מוצר (לא תוכנה) – יש צורך בטכניקה אחרת – כזו המאפשרת שילוב בין בניה מהירה של אב טיפוס (לצורך הצגתו ללקוחות וקבלת משוב מהם), מעקב אחר דרישות המתעדכנות כל הזמן ומתן מענה עליהן, ביצוע ניסויים וסימולציות לאורך כל שלבי הפיתוח (בדגש על השלבים המוקדמים בהם קל יותר וזול יותר לתקן בעיות) וגמישות מרבית. ו-Flexible Product Development היא בדיוק טכניקה שכזו !

---

לקוחות ודרישות לקוח

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

---

ביצוע ניסויים

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

---

כלי MathWorks ו- Flexible Product Development

MATLAB, Simulink וכלי MathWorks האחרים אותה מפיצה חברת סיסטמטיקס מאפשרים Flexible Product Development במספר רב של מובנים.
באמצעותם, למשל, ניתן לבצע מגוון בדיקות של what-if, ולבחור חלופת תכנון אופטימלית.
בגישת Model-Based Design, תוך שימוש בפלטפורמת Simulink – תהליך הפיתוח המסורתי הופך לתהליך איטרטיבי מהיר – המאפשר לבצע בקלות שינויים בתכנון.
ועם הכלים האוטומטים להמרת קוד MATLAB ומודלים של Simulink לקוד C / HDL – ניתן להשהות את הבחירה ב-Target ספציפי לשלבים מאוחרים מאוד בתהליך הפיתוח.
גמישות, כבר אמרנו ?

---

אז... עד כמה תהליך הפיתוח שלכם גמיש ?

המעוניינים בפגישה להערכת גמישות תהליך הפיתוח שלהם, ולבחינת התאמת כלי MathWorks לתהליך העבודה בחברה לצורך שיפור הגמישות בה – מוזמנים ליצור קשר באמצעות royf@systematics.co.il. זו גם הכתובת לאלה מכם הרוצים להשתתף בימי עיון דומים שתקיים סיסטמטיקס.