עידן המתודולוגיות

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

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

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

ישנם כמה מתודולוגיות שמוכרות לכולם כדוגמת Don't Repeat yourself (או DRY בקיצור), ויש את Keep It Simple Stupid (או KISS בקיצור), אבל יש מתודולוגיה לא מוכרת (לי לפחות, עד לפני שבוע) בשם BDD. פירוש ראשי התיבות BDD הוא Behavior Driven Development. הרעיון הוא ממש כמו שכתבתי עליו כאן, אומר שבמקום לדבר ולפתח בצורה טכנית בה יש הפרדה בין אנשים טכניים למנהלים, אנשי מכירות וכו', אפשר לעשות דברים בשפת ביניים כלשהי. הרעיון של BDD מגיע מקבוצת מתודולוגיות נפוצה (בעיקר בשם, פחות בהבנה) של Agile Software Development אשר מנסה לספק גישה שקרובה יותר לתחום הקואצ'ינג שהפך להיות פופולרי במיוחד, אשר מספק כלים שאם עובדים איתם, אנחנו אמורים לפתח קוד טוב ואיכותי בצורה מהירה עם כמה שפחות "התברברות" על בעיות. הגישה דורשת התמודדות עם צוותים, עבודה יחידנית, ויכולת להיות גמישים. הגמישות נובעת מכך שמפתחים תוך כדי, ולא מתעקבים על תכנון מוקדם (כדוגמת ספסיפיקציה). אני אישית לוקח כל מיני דברים מהמתודולוגיה, אבל יש כל מיני דברים אשר אינם מתאימים לי ולכן אני משאיר אותם בצד.

ה BDD בא ואומר בתוך מתודולוגית ה Agile, שאם כולם יצליחו לדבר בשפה אחת וכל אחד יוכל לקחת את זה לכיוון שלו (כלומר מתכנתים יוכלו לכתוב קוד מבוסס על ההוראות של ההנהלה ואנשי המכירות), אנשי המכירות ישתמשו בשפה בשביל לספק ללקוחות מידע טוב ואמין אשר מבוסס על מה שהמפתחים אמרו והמנהלים ידעו מה מתרחש בכל צד ואיך הדברים מתנהלים תוך שימוש באותה שפה בדיוק. גישה זו, מביאה מימוש של עוד מתודולוגיה בשם DDD או Domain Driven Design, אשר אומר בדיוק את מה שתארתי -> פיתוח שפה אחידה לנישות שונות של אותו נושא.

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

3 מחשבות על “עידן המתודולוגיות

  1. מאיר

    שכחת עוד כמה:
    TDD: Testing Driven Development
    SDT : Stupidity Driven Testing
    waterfall model

    לדעתי תאור מתאים הרבה יהיה "עידן ה-buzzwords" ‏:-D

  2. ik_5 מאת

    לא שכחתי, חיכיתי לך 🙂
    לגבי הזימזומים, זה לא משהו חדש, המתודולוגיות יותר חדשות מהזימזום שהתעשיה עושה

  3. פינגבק: מתודולוגיות – חשיבה מחודשת | לראות שונה

כתיבת תגובה

אתר זו עושה שימוש ב-Akismet כדי לסנן תגובות זבל. פרטים נוספים אודות איך המידע מהתגובה שלך יעובד.