6. 드라이버의 역할
직접 운전대를 잡고 운전을 하는 역할.
운전 중 현재 진행하는 것을 말로 표현하며 진행하며,
네비게이터와의 대화 역시 함께 진행해야한다.
네비게이터의 역할
전체 지도를 보며 목적지에 다다르는 길을 안내.
운전 중 의문이 드는 점이나 잘못 흘러가고 있는
상황에 대해 대화로 바로잡는다.
Rally Driving
Harmony of Driver and Navigator
6
7. 코더의 역할
직접 키보드를 잡고 코딩을 진행하는 역할.
코딩 중 현재 진행하는 것을 말로 표현하며 진행하며,
조언자와의 대화 역시 함께 진행해야한다.
조언자의 역할
프로젝트의 요구사항과 전체 구조를 이해하고
현재 구현 중인 부분에 대한 솔루션 안내.
코딩 중 의문이 드는 점이나 잘못 흘러가고 있는
상황에 대해 대화로 바로잡는다.
Pair Programming
Harmony of Coder and Adviser
7
두 사람의 실력이 비슷하다면,
코더와 조언자는 주기마다 역할을 바꿀 수 있음.
8. 프로젝트 상황 공유
해당 코드의 책임자가 자리를 비울때
페어를 진행했던 사람이 있기에
팀차원에서 리스크를 줄일 수 있음.
더불어 코드레벨로 정확히
팀의 상황을 공유 할 수 있음.
더 좋은 구현
함께 대화를 진행하며 프로젝트의 구조를
논하고 스펙에 대한 이야기를 나누면서 개발
하면 더 효율적인 구현이 나올 가능성이 큼.
개인마다의 개발 경험이 합쳐지면
더 넓은 스펙트럼의 시야가 생김.
전체 진행속도
각자가 따로 개발을 하는 것보다는
시간이 더 들어갈수 있음.
그러나 개발자의 딴짓(?)을 막을수 있어서
시간을 효율적으로 활용이 가능하기도 함.
10. 개발에서 테스트 / 테스트 코드란
= 작성한 코드가 우리가 생각했던 의도대로 잘 작동하는지
검증하는 코드
11. 11
2 실패하는 테스트 코드를 한번에 하나 이상 작성하지 않는다.
3
현재 실패하고 있는 테스트를 통과하기에 충분한 양을 넘는
제품 코드를 작성하지 않는다.
1 실패하는 테스트를 작성하기 전에는 제품 코드를 작성하지 않는다.TDD Principle
of Robert C. Martin
12. 12
Result - 필요한 부분만 집중해서 구현하기 때문에 코드가 얽히지 않음.
- 최대한 역할을 나누고 기능을 세분화 시키면서 TDD를 진행하면
자연스럽게 클린코드의 원칙을 수행하게 됨.
- 제품 코드와 별개로 연습코드를 짤수 있는 이면지,
혹은 Playground가 존재한다고 생각 할 수 있다.
- 결국 테스트 코드에 남는 것들이 기능들의 종류를 대변하므로
테스트 코드 자체가 결과물의 문서 그 자체가 된다.
TDD의 기대 효과
Android Testing Session in Devcamp 2016 : https://goo.gl/oqm1HP
14. 요구사항은 항상 바뀌며, 한정된 시간안에 그럴듯한
결과물을 내야하는 상황. 그러면서 프로젝트의 견고함
은 유지되어야하고, 그러면서 프로젝트의 이슈를 효율
적으로 팀원들과 커뮤니케이션 해야하는게
우리 개발자들의 숙명 ㅠㅠ
변화를 인정하는 빠른 대응 방법
개발 -> 테스트 -> 릴리즈 -> 피드백 적용 -> 개발
위 사이클을 빠르게 진행하기
TDD를 이용한 점진적인 방법으로 필요한 기능들 위
주로 Feature들을 구현해나가기
결과물은 빌드 자동화와 지속적 통합을 활용해서
유저에게 전달될 산출물의 건강을 수시로 체크하기
Scrum
eXtreme
Programming
Lean
Startup
팀의 상태와 프로젝트의 상황을 빠른 주기로 공유하
고, 조직이 나아갈 방향을 실용주의적으로 결정
15. 개발과 직접적으로 연관된
애자일을 배워볼수 있는 책
조직에 애자일을 쉽게
적용 할 수 있게하는 책
익스트림 프로그래밍
켄트 벡, 신시아 안드레스 저
김창준, 정지호 역
스크럼과 XP
S헨릭 크니버그 저
심우곤, 엄위상, 한주영 역 15
22. E-Mail: ace.jckim@gmail.com
내일 부터 습관화!
학교 프로젝트, 공모전
본인이 속한 개발 팀
여러분이 문화를 만드세요.
페어 프로그래밍
부끄럽다고 생각하지말고
동료와 함께 생각하며 개발
TDD, 테스팅
한번에 많은 양을 짜서 승부를
보기보다는 점진적으로 필요
한 부분에 집중해서 구현하기.
클린코드를 실천하기 쉬움.
Conclusion