$30 off During Our Annual Pro Sale. View Details »

[마소콘2018] 기술 부채의 늪 탈출기- 개발 문화의 완성 - 허진수

[마소콘2018] 기술 부채의 늪 탈출기- 개발 문화의 완성 - 허진수

2018년 12월 15일 마이크로소프트웨어 콘퍼런스, 마소콘 2018
기술 부채의 늪 탈출기- 개발 문화의 완성 - 허진수

MICROSOFTWARE

December 17, 2018
Tweet

More Decks by MICROSOFTWARE

Other Decks in Programming

Transcript

  1. Dec 11, 2018
    MASOCON 2018
    기술 부채의 늪 탈출기: 개발 문화의 완성
    ೲ૓ࣻ - ۟झ۽ࠁ ӝࣿোҳࣗ SWѐߊ౱ ܻ؊
    ݃ࣗ 394ഐ
    ࣁ࣌7 (40') 16:20 ~ 17:00

    View Slide

  2. Lead Software Engineer
    Koriel

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. Our History
    2016 2018
    2015 2017 2019
    (઱)۟झ۽ࠁ ߨੋ ࢸ݀
    ೠ੉਺ ুझನ 2014 ੋӝ࢚ ࢚ࣻ
    ޷Ҵ CA ࢑ഐࣁ ૑ࢎ ࢸ݀
    SK Telecom ઁ2ഥ T Hackaton ୭਋࢚ࣻ
    (઱)۟झ۽ࠁ ઺ࣗӝস ഛੋ
    Echelon Asia Summit 2016, TOP 11 ࢶ੿
    ೠച ੋ߬झ౟ݢ౟(٘ܿ೒۞झ) ߂ ޷ېীࣇ ߮
    ୊ாೖఎ۽ࠗఠ ୨ 15রਗ ై੗ ਬ஖
    2018 IF Design Award
    प೷प ହস ؘݽؘ੉ ؀࢚ (җ೟ӝࣿ੿ࠁాनࠗ)
    2018 ೠҴ࢑স਷೯ ై੗ਬ஖
    ೠചѤࢸҗ IoT ೒ۖಬ সޖഈড(MOU) ୓Ѿ
    (઱)۟झ۽ࠁ ߮୊ӝস ੋૐ
    ઺ࣗӝস୒ ୭਋ࣻ ୒֙ӝস ࢶ੿
    (઱)ೊ୊೒ۨ੉ 1রਗ ై੗ ਬ஖
    (઱)۟झ۽ࠁ ӝࣿোҳࣗ ࢸ݀
    ೠҴ۽ࠈ࢑সഈഥ(KAR) ഥਗࢎ оੑ
    ஠஠য়࠳ۨੋ / ஠஠য় ੋ߬झ౟
    ݢ౟۽ࠗఠ 40রਗ ై੗ ਬ஖
    ೻੉झఋ౟স Global Demoday 1ਤ
    ࣻ୹ഄनӝস࢚ ࢚ࣻ (KOTRA)
    Beyond TIPS 2017 ୭਋࢚ࣻ ࢚ࣻ (઺
    ࣗ߮୊ӝসࠗ/ೠܿਗ)
    Next level
    9
    2014

    View Slide

  10. My History
    2016 2017
    April
    2015 2017
    Jan
    2018
    োࣁ؀೟Ү ޛܻ೟җ ੑ೟
    ೠҴ٣૑ణ޷٣যҊ١೟Ү ઔস
    ೟Ү জ(োজ) ѐߊ
    3000ݺ੄ ࢎਊ੗
    ۟झ۽ࠁ ೤ܨ
    Software Engineer
    C++, Javascript, Swift
    ޖੋ೦ҕӝ ѐߊ
    Naver D2 Startup Factory Speech
    Korea Robot Aircraft Competition
    ݧ੬੉ ࢎ੗୊ۢ
    RoR Web application tutor
    DevOps manager
    ӝࣿোҳࣗ੄ SWѐߊ ੹୓ ҙܻ
    ӝദࠗఠ ߓನө૑ ݽٚ җ੿ਸ ҙܻ
    10
    2013

    View Slide

  11. What is DevOps? 11

    View Slide

  12. Legacy codes No issue management No git rules No code review
    Problems 12

    View Slide

  13. Legacy codes No issue management No git rules No code review
    Problems 13

    View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. Issue management
    • Kanban, not Scrum
    • Weekly conference call
    • Daily stand-up meeting
    • Version-based scheduling
    • VOC by creating JIRA issue
    18

    View Slide

  19. Backlog

    View Slide

  20. View Slide

  21. Due date

    View Slide

  22. View Slide

  23. Tracking issues’ status

    View Slide

  24. Development workflow 24

    View Slide

  25. Bug fix workflow 25

    View Slide

  26. Daily stand-up meeting
    Not a real offline stand-up meeting
    26

    View Slide

  27. Daily stand-up meeting
    1. Yesterday’s work
    2. Today’s work
    3. An inconvenience
    27

    View Slide

  28. View Slide

  29. View Slide

  30. Our own git flow
    • Bug fixes ——-——-———- hotfix branch
    • Others ——————-——— feature branch
    • Release commit ——-—-— release branch
    • master and develop is under protection
    30

    View Slide

  31. and one more strict rule…
    The master and develop branches can only be modified via
    the GitLab MR.
    31

    View Slide

  32. View Slide

  33. Description

    View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. What is this? 37

    View Slide

  38. LGTM emoji
    LGTM means “Looks Good To Me”.
    Code reviewers use this to approve the changes.
    38

    View Slide

  39. LGTM emoji 39

    View Slide

  40. Plaid
    Ѩష੗ח ੗૕ҳۨೠ Ѫٜী ૘઺ೞח Ѧ ೖ೧ঠ ೤פ׮. ௏٘ ܻ࠭ח
    ೠ઴ ೠ઴ ੍Ҋ п ઴੄ पࣻܳ ੟ইղח Ѫ੉ ইתפ׮. ௏٘ ܻ࠭ח
    ௏٘ܳ ੹୓੸ਵ۽ ࠁҊ ؊ ௾ ୓҅ী ٜযݏח૑ ࠁח Ѫੑפ׮. ࢎ
    ࣗೠ ௏ݭ౟ٜਸ ੺؀ Ҋ۰ೞݶ উ ػ׮ח Ѫ੉ ইפ૑݅ ӒѪ੉ ௏٘
    ܻ࠭੄ ୡ੼੉ غযࢲח উ ؾפ׮.

    View Slide

  41. View Slide

  42. Jenkins is for…
    Build automation
    CI/CD pipeline
    42

    View Slide

  43. Jenkinsfile 43

    View Slide

  44. Our lovely Jenkins is doing now…
    • Build triggers
    • Push Events
    • Opened Merge Request Events
    • Comment (regex) for triggering a build
    • Extracting artifacts
    • Auto-release by tag-push
    44

    View Slide

  45. Jenkins is the first code reviewer 45

    View Slide

  46. Jenkins is the first code reviewer 46

    View Slide

  47. Build artifacts 47
    Just download and test!

    View Slide

  48. Auto-release by tag-push 48

    View Slide

  49. Auto-release by tag-push 49

    View Slide

  50. Auto-release by tag-push 50

    View Slide

  51. View Slide

  52. View Slide

  53. It’s done!

    View Slide

  54. Koriel
    ҙܻ੗੄ ৉ೡ਷ ѐߊ੗о ௏٘݅ ಞೞѱ ੘ࢿೡ ࣻ ੓ب۾
    ذח Ѫ

    View Slide

  55. Any questions?
    5 min.

    View Slide

  56. Thanks for
    visiting
    See you next time,
    Let’s call it a day!

    View Slide

  57. Contact info
    ࢲୡҳ ъթ؀۽ 311 [email protected] koriel.kr fb.me/devkoriel
    57

    View Slide