Reverse-engineering – עובדים הפוך! קודם מפתחים מוצר ורק אחר כך משקיעים בהגדרה מסודרת שלו! תקין? לא תקין?

אורנה קמין, מנכ"לית OK יועצים לניהול

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

מהו הינדוס לאחור / Reverse-engineering / הנדסה הפוכה ?

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

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

להנדסה הפוכה מגוון סיבות.

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

ומה עם לעשות הנדסה הפוכה למוצרים שלנו?

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

ובכן…

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

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

הנדוס לאחור הוא הכרחי ממגוון סיבות:

  1. מיסוד החברה / המוצר

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

  2. שינויים ותחזוקה של המוצר הקיים

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

  3. תחלופת צוות המפתחים

    חלק מהמפתחים עוזבים, ובא דור חדש שלא עסק בפיתוח הראשוני …

  4. דרישות הוכחת יכולת מהלקוחות

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

אתגרים בהנדסה הפוכה

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

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

הנדסה הפוכה – תקין? לא תקין?

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

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

להרשמה השאירו פרטים

    ארכיון ניוזלטרים >>