Download - Tdd retro agile_korea_게시용
![Page 1: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/1.jpg)
TDD 실천법과 도구
2년 뒤
아.. 난 몰라.. 2년 더 나이 먹었네…
TDD practices & tools, two years later…
![Page 2: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/2.jpg)
발표자소개
채수원 SUWON, CHAE
- NHN Open Publishing Team, nFORGE Dev.
- TDD실천법과 도구 저자
- Agile Coach
- node.js community octoberskyjs leader
- blog.doortts.com
- twitter.com/doortts
![Page 3: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/3.jpg)
무슨 이야기를?
- 지난 3년 동안의 이런저런 경험들
- 근원적인 고민, 정말 도움되나? TDD
- 배운 점, 바뀐 점, 느낀 점
- Last 3 years of agile coaching and TDD - Question about ‘TDD real world works?’ - What I have learned, changed in mind
topics
![Page 4: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/4.jpg)
얻어 갔으면 하는 것
- TDD를 어떻게 바라봐야 하나?
- (많은 비용을 치르고 얻은)
실패를 줄일수 있는 몇 가지 팁!
- 편하고 즐거운 20분
- 마음속에 작은 불씨 하나
- View of Real world TDD - TDD tips - small passions in your hearts
- my aims of this session
![Page 5: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/5.jpg)
안내!
듣다가 이상하더라도 다 이해해 주세요.
힘들어서 그런가 보다 하고 말에요…
저 나쁜 사람은 아니네요..
20분동안 68장의 PPT가 롤러코스터 처럼 지나갑니다!
![Page 6: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/6.jpg)
I have a question!
![Page 7: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/7.jpg)
우리끼리…
- TDD로 개발을 하고 있나요?
Are you using TDD?
let’s talk frankly…
![Page 8: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/8.jpg)
우리끼리…
- 팀 전체가 TDD 방식으로 개발을 한 적 있나요?
Does your team is using TDD?
let’s talk frankly…
![Page 9: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/9.jpg)
우리끼리…
- 주변 사람들을 몇 명쯤 변화 시켰나요?
Do you have a experience making a change other people?
let’s talk frankly…
![Page 10: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/10.jpg)
괜찮습니다. 저도 부끄러워서
어디 가서 뭐라 말 잘 못합니다.
It’s ok. I’m the same as you.
what a shame…
이미지출처: http://elgah.egloos.com/tag/%EC%AA%84%EC%A3%BD%EC%9D%BC%EC%83%9D%EA%B0%81%EC%9D%B4%EB%83%90/page/1
![Page 11: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/11.jpg)
지난 수 년 동안 배운점…
뭘.. 배웠을까나…
What I have learned for last few years ...
![Page 12: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/12.jpg)
생각보다 잘 안되더군요
-확산이 -함께 하는 것이 -그리고 주변 사람들을 변화시키는 것이
It is hard to… spread tdd practice, do together, and do change other people to do tdd
이미지출처: http://goo.gl/WFPfS
![Page 13: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/13.jpg)
대상이 없으니 감동이 적다
- TDD로 뭘 해결 할 수 있나?
- 신기함은 잠깐
- 감동도 잠깐
주객전도
At first, many developers are using TDD to do TDD. It make a man tired…
TDD is just a way to development, not a purpose
![Page 14: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/14.jpg)
재미가 없다!
- 커버리지의 압박! (수치로 체크)
no재미
became not a funny because of test coverage pressure
I cannot feel any joy of tdd
![Page 15: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/15.jpg)
감동도 잠깐..
“님아.. 지금 제 현실이 녹록치 않아염..”
현실은 시궁…
first impression of tdd is just a moment. we forget the emotion very soon…
“I know the benefit of tdd, but I’m living in the real world. we can afford it..”
![Page 16: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/16.jpg)
왜 안될까?
- TDD를 꼭 써야 하나?
- TDD가 안되는 이유?
- 개발이 잘 안되는 이유?
- 프로젝트가 실패하는 이유?
- 나만 잘 안 되는 것 같은 이유? (으응??)
…
Reason why?
Why is it so hard?
![Page 17: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/17.jpg)
한 달 안에 20년 산 포도주와 동일한 맛의 포도주를 만드는 방법은?
Do you know the way to make a normal wine’s to 20 years old wine?
![Page 18: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/18.jpg)
???
![Page 19: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/19.jpg)
원래 안 되는 것이 있습니다…?
Basically, it is impossible to do, except cheating other people. It’s very natural. but we easily think ‘There must be a way to do that’. If it can be, it’s unfair! We have to admit and accept it.
![Page 20: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/20.jpg)
정말? ほんとうに? Are you sure?
![Page 21: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/21.jpg)
XXX 방식 도입 실패의 이유..
우리 함께 생각해 보아요
Let’s think about why xxx methodology fails?
![Page 22: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/22.jpg)
그럼 반대로
in the contrary…
![Page 23: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/23.jpg)
XXX 방식 도입 성공의 이유..
우리 함께 생각해 보아요
Let’s think about it. why xxx methodology success? What is the differences?
![Page 24: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/24.jpg)
동일환 환경이 아니다! 문맥이 다르다! 신은 같은 사다리를 두 번 쓰지 않는다.. 등등등…
It depends on context! But we usually use same shovels in different contexts , and fails..
![Page 25: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/25.jpg)
몇 가지 이유들 그리고 배운 점...
what I have learned…
![Page 26: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/26.jpg)
밥 아저씨..
우리 함께 생각해 보아요
“젝일.. 내가 그리면 오징어가 된다..”
Type A Bob ross
He draws very easily, but I couldn’t. why?
![Page 27: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/27.jpg)
밥 아저씨..
“젝일.. 내가 그리면 오징어가 된다..”
우리 함께 생각해 보아요 Type B
Bob ross
![Page 28: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/28.jpg)
기술이 없어서 TDD를 못하는 경우는 없더라!
Problem depends on habit and attitude, not technic.
![Page 29: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/29.jpg)
HIGH LOW
HIGH
LOW
밀린다…
1 2
3
Importance
Urgency Tipping force
Most of people’s todo choice order
![Page 30: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/30.jpg)
그리고 대부분은 그렇게 살다가 간다… (어딜? 집에?)
It’s ok! It’s our ‘life’
![Page 31: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/31.jpg)
그런데 한편으로는...
By the way…
![Page 32: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/32.jpg)
이왕지사 축구로 밥 벌어 먹고 살기로 작성했다면 박지성 같은 축구선수가 한번 돼보자! 싶은 생각이 들기도 한다.
Become a Jisung Park
![Page 33: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/33.jpg)
박지성이 되는 방법/맨유를 만드는 방법
1. TFT를 구성해서 박지성 양성계획을 세운다
2. 히딩크를 불러 하루 8시간짜리 집중교육 코스를
3일간 받는다.
3. 교육 내용을 실천에 옮기고 전파 교육을 하라고
한다.
4. 박지성(=핵심인재) 양성 KPI를 수립한다.
공대생이 이별에 대처하는 방식... 같은..
![Page 34: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/34.jpg)
박지성이 안 되는 이유/맨유를 못 만드는 이유
1. 공을 좀 차 봤는데 골대에 잘 안 들어 간다. 잘 안되니까 왠지 차기 싫다.
2. 경기 없을 때나 시간 날 때 살짝 연습을 해 봤는데 맨유팀이나
박지성이니까 되는 거지 현실(우리팀)은 그렇지 않다 싶다.
3. 사장이 아무래도 컨설턴트에게 속은 것 같다. 원래 국내에선 안 되는 것
일거다.
4. KPI를 위해 우선 현재 우리가 잘하고 있음을 표현하기 위해 '득점
낌새율'이라는 새로운 항목을 만들어 표현한다.
5. 내년에는 득점율이 꽤 높아질 거라는 예상 보고서를 쓴다.
6. 감독이 바뀐다.
![Page 35: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/35.jpg)
으응?
이미지출처: http://sketchpan.com/?lsw0360=110186
![Page 36: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/36.jpg)
연습을 안한다 연습 할 시간을 안준다 포기가 빠르다 현실 타협 자기 합리화
그런데 어쩌라고, 원래 나란 인간… 태생이 그리 생겨 먹은걸.. 인간은 나약한 존재…
![Page 37: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/37.jpg)
無智: 문제가 무엇인지 알지 못한다.
無試: 변화를 시도하지 않는다.
無持續: 시도를 지속하지 않는다.
無改善: 개선하지 않는다.
Why we fail?
그래도 열심히 고민해 보면 실패의 과정이란…
- don’t know what is the problem - don’t try - don’t keep going - don’t make improvement
![Page 38: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/38.jpg)
사실 나의(=우리의) 고민은…
- in fact, our most important problem is…
![Page 39: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/39.jpg)
좋은 개발자/엔지니어가 되고 싶다
좋은 소프트웨어를 만들고 싶다.
좋은 개발자를 양성하고 싶다.
그리고 그 좋은 개발자들이
좋은 소프트웨어를 만들어 줬으면 싶다.
개인
회사
![Page 40: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/40.jpg)
다시 뒤로, 근원적인 부분으로 돌아가 보자…
![Page 41: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/41.jpg)
TDD가 도움이 되는게 맞나?
잘 안 되는데,
걍 하지 말까…
이런 것 안 해도 잘 만드는 경우가 많지 않나?
TDD is really work and do good?
It’s so hard!
TDD is uncomfortable. I prefer not to do tdd.
My comrade doesn’t use tdd, but he is a good programmer!
![Page 42: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/42.jpg)
당연히 본인의 경험에서 얻은 결론은
그 외의 많은 인터뷰, 사례, 질문, 아티클
등을 놓고 봤을 때 도움이 되는 건
맞는 것 같다.
TDD가 SW개발에 도움이 되나?
![Page 43: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/43.jpg)
잘하는 사람
관찰하기… Watching the expertise
![Page 44: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/44.jpg)
목표는
포인트 발견,
그리고 해당 포인트의 재현과 확산!
![Page 45: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/45.jpg)
우선.. 나는 어떠한가?
![Page 46: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/46.jpg)
원래 해야 하는 걸로 아는 사람들
이를테면…
- 협력업체 직원
- 신입사원
+ 그런거라고 내가 속인 사람들
![Page 47: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/47.jpg)
주의!!
잘 하는 것 처럼 보이는
위험한 캐러…
우리팀 1등 개발자!
![Page 48: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/48.jpg)
![Page 49: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/49.jpg)
그리고.. 다음과 같은 조건을 가진 사람이 잘하더라
Experience - 장점을 기억, 실패를 경험
Divide & Conquer <- 정신적으로 힘들다…고 생각하게 된다.
Co-operation
![Page 50: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/50.jpg)
TDD 할 때는 묻지 말고 지키자!
- 설계 먼저 하기
- Given/When/Then
no 질문, just do it!
![Page 51: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/51.jpg)
given/when/then
![Page 52: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/52.jpg)
가장 중요하면서도 괴로운 질문
"지금 작성하려고 하는 코드에서 테스트를 작
성할 수 있는 가장 간단한 것은?"
끊임 없는 질문과 접근사고의 변화가 필요
![Page 53: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/53.jpg)
Somebody Help me~~~
“누가 쫌 도와주면 좋겠어염!”
![Page 54: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/54.jpg)
코드리뷰 하자!!
![Page 55: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/55.jpg)
코드리뷰 하자!!
업무코드 테스트 코드
![Page 56: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/56.jpg)
여기 이 괄호하고 세미콜론들이 Tom의 코드를 완전히 엉망으로 만들고 있네요
Sally는 코드리뷰를 할 때 누굴 부르면 안되는 지에 대한 중요한 교훈을 하나 배웠다.
![Page 57: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/57.jpg)
짝으로 시키니 훨~씬 낫다!
![Page 58: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/58.jpg)
짝 프로그래밍 (Pair Programming)
58
![Page 59: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/59.jpg)
여전히 심란한 부분들...
![Page 60: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/60.jpg)
하면 좋긴 한데 힘들다..
안 그래도 일도 힘든데 해야 하나?
단위테스트 잘 만들면 조으다! 하지만..
안해도 잘 짜는 사람 많고, 잘 돌아가는 프로그램 많더라..?
60
흠….
![Page 61: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/61.jpg)
외국 소스들은 안그렇던데?
없으면 defect report도 의심함
기능추가 해도 테스트 코드 없으면 pull 안 받아 주더라..
61
외쿡!
![Page 62: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/62.jpg)
정리 TD;LR
![Page 63: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/63.jpg)
TDD !!
- 확실히 좋은 SW만드는데 도움이 된다!
- 결과적인 비용을 줄이는데도 도움이 된다!
- 개발 기법/테크닉은 TDD를 지속적으로
해 나가는데 있어 크게 중요한 요소는 아님
![Page 64: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/64.jpg)
잘 하려면 결국
- 습관만이 살길
- 느끼지 못하면 지속되지 않는다
기타..
- 선배의 사랑으로(=때려서) 가르치는 방법도 있…
![Page 65: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/65.jpg)
- 큰 고민 안하고 주어진 일 성실히 하며 게 사는 것도
정신 건강한 직장인(=피고용인)의 한 자세일 수 있다!
(모두가 다 제갈공명, 유비, 관우가 되야 할 필요는 없다)
- 하지만 현재 자신의 일에서 성취와 성장을
하려면 그만큼의 노력이 필요하다.
- 사람마다 소재와 소질이 다르기 때문에
당연히 동일 수준에 다다르기 위한 연습량은
다르다는 걸 이해해야 한다.
![Page 66: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/66.jpg)
만일 당신이 때때로 실패하지 않는다면, 그건 안이하게 살고 있다는 확실한 증거이다. - Woody Allen If you're not failing every now and again, it's a sign you're not doing anything very innovative.
![Page 67: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/67.jpg)
시간이 된다면 한 가지만 더!
![Page 68: Tdd retro agile_korea_게시용](https://reader034.vdocuments.net/reader034/viewer/2022042813/5485ec30b47959140d8b4fca/html5/thumbnails/68.jpg)
본인 살기도 힘든건 알지만 후배들도 챙기자
후배가 없으면 동기좀 챙기자
선배랑도 잘 지내며 선배도 챙기자
업계 선배들의 책임