FIRE WIKI : 용어 정리

Keywords

  • XP

  • Pair Programming

  • TDD

  • Scrum

XP

유래

  • 전통적인 방식의 Practice를 Extreme하게 적용하는 것

XP is a light weight methodology for small to medium sized teams developing software in the face of vague or rapidly changing requirements
- Kent Beck

목적

고객에게 최고의 가치를 가장 빨리!

특징

  • Specific planning approach

  • On-Site Customer

  • Continusous Testing

  • 가볍다

    • 프로세스를 최소한으로 가져가서 프로그래머에게 부담을 적게 준다

  • Discipline

    • 따라야할 practice들이 있다

  • SW 개발

    • 항상 SW가 실행가능하길 원한다

Practices 종류

  • Simple Design

  • Pair Promgramming

  • Constant Testing

  • Continous Testing

  • Refactoring

    • xp에서는 변화할 미래를 생각해서 개발하는 것 보다 지금 당장 개발해야 하는 것에 집중

    • 따라서 차라리 리팩토링을 통해 코드 품질 높이려 함.

  • Coding Standard

  • Small Release

타겟

  • 막연함 속에서 일하거나 요구사항이 빠르게 변하는 소~중 사이즈 개발팀에 적합

Pair Programming

두명이 같이서 코딩하는 것

필요한 것

  • Testing

    • Unit Testing

    • Functional Testing

유의점

  • 문제가 지나치게 단순할 경우(익숙할 경우) 이득 거의 x

  • 프로그래머 수준이 너무 높은 경우 차라리 각자 작업하는 것이 낳음

  • 관계가 평등해야 함

  • ‘일반적으로’ 효율과 생산성 측면에서 이득이 있다고 할 수 x → (Kim Man Lui and Keith C.C. Chan(2006). Pair programming productivity: Novice–novice vs. expert –expert. Int. J. Human-Computer Studies, 64, 915– 926.)

    • 단, 여기에서도 복잡한 과제와 학습을 위한 경우엔 뚜렷이 긍정적인 효과가 있다고 봄.

TDD

Test Driven Programming

= Test First Programming

목적

  • Clean Code that works

어려운 점

  • 시간이 부족해서 계속 미루다가… 끝

  • Code 자체가 Testable하지 않음

해결법

  • Testable Code를 작성한다

    • Separation of Concern

    • SRP

특징

  • 미래의 고통을 지금으로 가져온다

  • 내 코드 퀄리티에 대한 책임감 증가

    • 그냥 짜고 QA한테 주고 끝!이 아니게 됨

장점

  • 요구사항이 명확해진다

  • 문서로써의 사용

    • Specification by example

Scrum

Compare

Scrum vs XP

공통점

  • 개발 프로세스를 Sprint로 쪼갬

  • 개발 전 Planning Meeting함

  • 그 미팅에서 유저 스토리 핀포인트

  • 스프린트 미팅 전 Planning Meeting

  • 목적이 비슷함

    • Delivering a high quality product as fast as possible

차이점

Scrum

XP

Focus

Management, Productivity,
Working Product

Programming, Testing,
릴리즈보다는 작동하는 bug없는 시스템

Sprint

2-4 week, 기간이 Flexible

1-2 week

Change

No changes during a sprint

Flexible changes during the sprint

개발자가 할 일을 자기가 정함

팀은 우선순위와 요구사항이 반영된 Strict한 규율을 따름