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