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, | Programming, Testing, |
Sprint | 2-4 week, 기간이 Flexible | 1-2 week |
Change | No changes during a sprint | Flexible changes during the sprint |
개발자가 할 일을 자기가 정함 | 팀은 우선순위와 요구사항이 반영된 Strict한 규율을 따름 |