Thursday, October 18, 2012

בעיות או לא להיות


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

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

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

ואז אחרי שזה עבר את המבחנים unit testing וfunctional testing , הגיע הזמן לstress testing. רק מה, זה לא סחב יותר ממשתמש אחד. 
מדהים... 
עצוב..
מה לא.. 

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

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

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

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

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

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

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

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

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

במילה אחת
כיף


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


 "אתם לא צריכים לחשוש מהמתחרים הגדולים שלכם, כמו שאתם צריכים לחשוש מהבחור בגאראג' , שאין לו משפחה, חיים, לא ישן וכל היום עסוק בלהרים את המתרה הבא שלכם"



אז... הזהרתי מראש 
:)

No comments:

Post a Comment