2. Who am i
•
Agile 은 Culture 이다
•
Agile 은 Traditional 과 상호 보완적
Hope
Agile 이 문화로 정착 되길….
경기원
전임강사(2011~ ) Agile 관련 교육과정 개발 및 강의
Agile Coach(2008 ~ ) 조직 및 프로젝트 지원
Agile 확산(2008 ~ 2010)
사내강사(2008 ~ 2010)
SI 프로젝트
LG CNS
전문기술교육팀
kwkyung@lgcns.com
kiwon.kyung@gmail.com
1/40
3. 들어가며…
“30년간 변하지 않은 SW공학 30가지 이슈”
1. 초기 요구사항의 50% 이상이 완전하지 못하다.
5. 문서를 작성하는 것은 두 번째로 비싼 소프트웨어 활동이다.
16. 약 5%의 응용 프로그램이 전체 결함의 50%를 내포한다.
출처 : Capers Jones 'Estimating Software Costs‘ (2007년)
2/40
4. LG CNS Agile History
확산 Road-map
Agile
도입기
Agile
적용기
Agile
잘하기
2008~2009
2010~2011
2012 ~
Agile 도입을 위한
컨설팅
LG CNS Agile 수립
Agile Pilot 수행
Agile BP 발굴 및
변화관리
Agile 적용 활성화
Agile Engineering
기법 적용 시도
Agile Contents 개선
(Pure 및 Hybrid Agile)
현장 BP 발굴 & 공유
3/40
선진사 적용 사례
체험을 통한 Agile
적용 점검
Agile 이행 고도화
Agile Eng 기법 내재화
Agile Coach 육성
5. LG CNS Agile History
적용현황
1 적용건수
2 실천기법 적용
157건
7개, 2%
5~6개
17%
61건
71건
3~4개
35%
22건
3건
1~2개
46%
‘08 ‘09 ‘10 ‘11
4 야근 및 특근
3 Agile 재적용 희망
90% ▲
4/40
6. LG CNS Agile History
정성적 효과
프로젝트
설문결과를
정량화 함
Quality
92%
•
•
Feedback 을 통한 검증
Productivity
83%
•
의사소통 리스크 조기 식별/해결
•
참여 & 책임감
Satisfaction
83%
•
고객참여 및 요구사항 도출 용이
•
고객 불안감 해소
5/40
내부 품질 강화
7. LG CNS Agile History
정량적 효과
LG CNS
전체 평균 대비
백분율로 환산
6%
고객만족도
14%
프로젝트 생산성
4%
개발 생산성
6/40
9. LG CNS Agile History
Agile 교육
협력사를
개발자를
Agile 기본(2day)
ALP/Agile(1day) 스토리텔링
Smart PM Plus(4h/2day)
더 나은 코드작성을 위한
리펙토링(2day)
Agile Coach 육성 프로그램
변화인식
실습으로 배우는 TDD(2day)
Agile 적용실무(3day)
위한
위한
위한
리더를 위한 실용적
실무자를
을 위한
개발예정
S/W 공학(3h/2day)
8/40
클린코드 개발 워크샵(3day)
10. LG CNS Agile History
회사 내 공감대
2008년
2012년
Why Agile ?
How to Agile !
Well
9/40
11. Agile 에 대한 오해…
“Agile Manifesto” “Document”
애자일 은
Agile 인데
문서작성을
문서, 있을 건
안 한데…
정말!!
다 있네.. 뭐!
와우~
10/40
12. Agile 에 대한 오해…
“스크럼미팅 이 전부인 것처럼 이야기…”
애자일 은 …
아침에 모여서
벽에 Post-it 옮기며
미팅하는 거야 …
11/40
13. Agile 에 대한 오해…
“소규모에 적합하지, 대규모(SI)는 맞지 않다 ?”
12/40
14. Agile 에 대한 오해…
“분석/설계 는 거의 없이(?) 바로 코딩 ?”
13/40
15. Agile 에 대한 오해…
“기존 방법론(방식)을 대체하는 것 ?”
애자일 이
IE
OO
CBD
SOA …
방법론 이야 ?
아닌 것 같아
14/40
16. Agile 에 대한 오해…
“애자일 은 국내 하도급 법 과 상충 ?”
애자일
정말
만의 문제
문제가
Agile 과 관계 없이
일까요 ?
관리 회의가 아닌
되나요 ?
모든 미팅 및 회의는
"업무 협의 또는
개인별 진척
하도급 법 위반의
가능성이 있습니다.
“상호 업무 공유 관점에서의 회의 라면…”
15/40
상호 공유"
회의로 인식하도록!
17. Agile 에 대한 오해…
“외부 감리 대응이 어려울 것이다 ?”
Sp#1 Sp#2
감리는
산출물을 내놓으라
하는데 어떻게…?
감리 ?
16/40
Sp#N
18. Thinking
Traditional
Agile
목표는 같다(프로젝트 성공, 행복, 배움)
틀리고 맞고 가 아님
상당 부분은..
그 동안 해오던 방식과 크게 다르지 않다
다만..
Agile 가치 및 철학을 잘 실천 하려면 시간과
노력이 필요하며
유연하고 균형 있는 생각 및 실천이 필요함
17/40
20. Same, Difference think
S/W개발 Process Model
Traditional
Agile
순차모델(Waterfall)
OO,CBD 등에서…
반복모델(Iterative)
Increment , Evolutional
Waterfall ?
“반복개발을 Agile 만의 차별화 요소 라고 할 수 있을까요 ?”
19/40
22. Same, Difference think
Iteration Type
Traditional
Agile
A
A
I
I
I
통
전
T
D
T
T
합
개
D
I
A
T
A
전
개
A
A
A
A
D
D
D
D
D
I
I
리
I
I
I
리
T
T
T
뷰
T
T
T
뷰
리뷰
T
A
I
I
T
D
I
T
D
D
I
D
I
T
통합
A
A
D
D
I
T
리뷰
리뷰
리뷰
리뷰
리뷰
SW통합
“반복의 유형은 정해진 게 아니며 다양합니다”
21/40
SW통합
23. Same, Difference think
Project Planning
Traditional
프로젝트 계획(공정도)
주요 Milestone
Agile
22/40
Product Planning(Milestone)
Release Planning
Sprint(=iteration) Planning
반복주기 별 Re-Planning
계획은 가능한 팀원 모두 참여
25. Same, Difference think
Sprint Planning Meeting
Traditional
Agile
초기 개발 계획
필요시(진척 지연 발생)
24/40
반복 주기 말 또는 시작
Re-Planning
Sprint Goal 공유
Team Velocity 공유
26. Same, Difference think
Daily Scrum Meeting
Traditional
Agile
모닝 미팅
진척 점검 미팅(PM)
3 Question
15분, 서서, 매일
공유가 목적
ISSUE 해결은 아님
모두 이야기 함
Task-board 활용
Burn-down chart
“Scrum Meeting 목적에 충실, 관리목적 활용 지양!”
25/40
27. Same, Difference think
Sprint Review Meeting
Traditional
Agile
고객 데모
프로젝트 후반부에…
고객의 Feedback 을
이끌어냄
Yes, But 신드롬을 예방
26/40
28. Same, Difference think
Sprint Retrospective
Traditional
Agile
Project L&L
Self-organization
“누구를 위한 활동 이어야 할까요 ?”
27/40
29. Same, Difference think
DONE ?
Traditional
Agile
0~100%
0 or 100%
A
I
I
T
T
리뷰
리뷰
리뷰
SW통합
30% Done Output ?
D
리뷰
T
D
T
I
A
I
D
A
D
A
30% Done Output ?
공정 별 Task 진척
개발단계 Program List
28/40
User Story 완료 기준
Done = Working
31. Same, Difference think
진척 율 신드롬
Traditional
Project
Agile
Start
End
To Day
A Project : 95%
B Project : 75%
“A 프로젝트 : OPEN(X)
B 프로젝트 : OPEN(O) 왜 ?”
30/40
32. Same, Difference think
Yes, But 신드롬
Traditional
네!
Agile
월요일 아침
Agile 이란 게 있는데
미팅도 하고, 프로그램을
둘이 개발하고
개발하기 전에 테스트 코드를
먼저 작성 한다고 하는데
그게 뭔지 금요일
오후 5시까지
정리 해주세요…
네!
팀원2
팀원1
팀장
31/40
33. Same, Difference think
Pair Programming
Traditional
Agile
짝이란 이름은 아니었지만
적용을 위한 전략 및 코칭 필요
비슷한 경험 있음
에러 때문에 하루 종일
고민 했는데 옆 동료는
5분만에 찾은 기억 없으신가요 ?
“요령과 발생할 수 있는 문제점 그리고 대처방식을
사전에 알려주어야 한다.”
32/40
34. Same, Difference think
TDD
Traditional
Agile
Saligo 원칙
TLP
TFP
TDD
이미지출처 : http://psk810.springnote.com/pages/6900359/attachments/4425421
33/40
•
•
개발 후 테스트 코드 작성
테스트 자동화 가능(CI 연계)
•
개발 전 테스트에 대한
Thinking
36. Same, Difference think
요구사항 확정
Traditional
Agile
요구사항은 프로젝트 전반에 걸쳐
요구사항은 확정 해야 함
물론 변경 통제를 함
요구사항 정의/명세
User Story
Use Case 명세
Product Backlog
변경된다.
35/40
38. Agile Mindset
“Agile Practices 그대로 따라 하면 되지 않나요 ?”
Best
Agile Practices 를 그대로 따라 하기 보다는
Insight 를 가지고 우리(팀,프로젝트)들 만의 것으로…
Project 는 Unique 합니다.
“Agile 을 목적이 아닌 수단으로”
37/40
40. Agile Mindset
“우리가(팀,프로젝트) Agile을 하고 있는지 어떻게
알 수 있나요 ?”
두 가지 질문을 스스로에게 해보세요.
우리는 매주(반복주기) 가치 있는 것을 고객에게 인도 하는가 ?
우리는 계속 발전하기를 위해 노력하고 있는가 ?
만약 이 질문에 "네" 라고 대답할 수 있다면
여러분은 애자일 을 하고 있는 것입니다.
출처 : 애자일 마스터 (233p)
39/40
41. Agile Mindset
심리학 인문학도 중요!!!
Linda Rising has a Ph.D
아리조나 주립대학 교수
http://www.lindarising.org
•
똑똑한 사람보다 노력하는 사람이 더 많이 배우고 가르칠 수 있다.
•
애자일 은 빨리 실수를 경험해야 하는 게 아닐까 ?
Fail early, Fail often
Fail Fast, Learn constantly
Failure is an option
Without failure, how can learning happen?
Try again , Fail again, Fail Better
40/40