מוצר, מחולל יישומים או פיתוח עצמי ?

5 באוקטובר 2014

תגיות: ,
אין תגובות

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

בפוסט זה אתמקד בשיקולים בבחירת פלטפורמה בניטרול מספר שיקולים כדי לפשט את הבעיה –

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

מוצר מדף

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

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

Captureהתקנת Dynamics CRM לצורך מימוש שירות לקוחות, שיווק או מכירות לוקחת מספר שעות אך עם סיום ההתקנה כל התהליכים המרכזיים וישויות המרכזיות קיימות וניתנות לשימוש.

התאמת מוצר לארגון היא פעולה פשוטה עד לגבול מסוים. כל מוצר עם הגבולות שלו.

מעבר לגבול זה – רמת ההשקעה עולה מאד ביחס להשקעה הראשונית.

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

אפיון למוצר דומה יותר ל-Gap Analysis מאשר לאפיון רגיל מנותק מטכנולוגיה.

מוצר מתאים למצבים בהם הארגון מתאים ברובו למוצר או ניתן לשינוי כך שיתאים

מחולל יישומים

Captureבמחולל יישומים התמונה מעט שונה.
ההשקעה הראשונית נמוכה יותר כי המוצר פשוט יותר (וברוב המקרים כבר קיים בארגון).

מתחילת העבודה על המחולל ההשקעה לינארית – עבור כל ישות חדשה נדרשת השקעה (מועטה מאד) שעבודה מקבלים ישות, טבלאות, חיפוש, ממשקים, אבטחת מידע, טפסים וכו' …

כל עוד נשתמש במחולל עצמו – העלויות נמוכות מאד. רוב המחוללים, כדוגמת Dynamics xRM, מאפשרים רמת גמישות גבוהה מאד בפיתוח עצמי. ביחס לפיתוח הראשוני – העלויות בשלב זה גבוהות יותר.

וכמו בשימוש במוצר מוכן –  נגיע בשלב כלשהו למצב בו לא ניתן להשלים את הדרישות ל-100%.

מחולל יישומיים מתאים למערכות פשוטות ביסודן אשר מתאימות לפרדיגמה של המחולל – ישויות, טבלאות, טפסים וחיפוש

פיתוח עצמי

Captureפיתוח עצמי הוא המוכר, הפשוט ביותר והמורכב ביותר מבין החלופות.

גרף ההשקעה ברובו לינארי – ככל שיש יותר דרישות כך העלות עולה וכל עוד אין דרישות חריגות מאד מאד – ניתן להעריך את הפיתוח די במדויק.

פיתוח עצמי הוא גם היחיד שמגיע ל-100% מהדרישות. אין דרישה שלא ניתנת למימוש בעלות כזו או אחרת.

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

פיתוח עצמי מתאים למערכות שאינן עונות על פרדיגמה "רגילה". בדרך כלל עם דרישות UI מורכבות.

איך נראים הגרפים ביחד ?

אם נשים את כל הגרפים אחד על השני נקבל תמונה מעניינת:

Capture

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

כאשר הארגון בשל לערכים המוספים הרבים המגיעים עם מוצר

במערכות פשוטות בהן הטכנולוגיה היא עיקר המאמץ מערכות מותאמות אישית ברמה גבוהה מאד. מערכות בהן הגמישות והמענה לדרישות היא הערך המוביל מתי נשתמש ?

השורה התחתונה

מוצר מדף

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

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

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

מחולל יישומים

יש מוצרים אשר נותנים למשתמש מחולל יישומים ללא עלות נוספת. לדוגמא – בהתקנת Dynamics CRM אנחנו מקבלים במתנה מחולל יישומים גדול ומורכב אשר נותן לנו המון.

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

מתי לא ? כאשר המערכת לא עונה לפרדיגמה של חיפוש ß טבלא ß כניסה לישות ß שמירה אלא דורשת קסטומיזציה מורכבת בעיקר בעולם ה-UI

פיתוח עצמי

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

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

קצת על ענן

חשוב לזכור שהיום, בעידן הענן – עלויות החומרה נעלמות ואנחנו משלמים בעיקר על רישוי. המודל משתנה מעט כאשר אנחנו חושבים על מוצר בענן (SAAS) או פלטפורמה (PAAS) בעיקר בנושא עלויות הקמה ותפעול. ההחלטות הבסיסיות נשארות בעינן אולם המימוש משתנה.

אפילו הקמה עצמית של שרתים במודל IAAS כל כך פשוטה היום והעלויות מחושבות לפי שימוש, כך שעולם התשתיות והחומרה שהיה בעבר מורכב – הפך לפשוט הרבה יותר.

מילות סיכום

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

כלי הפיתוח המודרניים (APS.Net MVC, Entity framework ועוד …) מאפשרים לבצע פיתוח עצמי בקלות רבה מאד וגורמים לנו לנטייה כלפי פיתוח עצמי. אבל אסור לשכוח שמחולל יישומים יתן לנו חלק גדול מאד מהדרישות הלא פונקציונאליות ללא עלות.

 

ארנון גולדשטייןהפוסט נכתב ע"י ארנון גולדשטיין, יועץ בקבוצת היועצים של מיקרוסופט (MCS ) העוסקת בייעוץ בתחומי ארכיטקטורה, פיתוח, CRM ו- ALM.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *