SlideShare a Scribd company logo
1 of 11
익스트림 프로그래밍
2014.11.12
ITSM 팀
정희찬
켄트 벡, 신시아 안드레스 지음
김창준, 정지호 옮김
인사이트
초판 3쇄 (2009년 9월 4일)
Agile
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Agile
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을
도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고
있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다:
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
가치 있게 여긴다. 이 말은, 왼쪽에 있는 것들도 가치가 있지만,
우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
가치 (Values)
• 의사소통 (Communication)
• 단순성 (Simplicity)
• 피드백 (Feedback)
• 용기 (Courage)
• 존중 (Respect)
 지식의 부족? 의사소통의 부족?
 의사소통의 부재로 인한 문제인가 자문
 의사소통에 대한 지속적인 개선
 단순성 < 복잡성의 제거
 프로세스, 프로그램, 의사소통 등
 제대로 하는 것이 어떻게 하는 것인지 모른다.
 오늘 제대로가 내일을 보장하지 않는다.
 점진적 개선
 최대한 빠르게, 최대한 많이
 의사소통의 핵심
 단순함, 피드백 등에 대한 근본적인 가치
 행동? 인내? 용기의 발현의 다른 형태
 다른 이 보다 본질적으로 더 가치 있는 사람은 없다.
팀이 신봉하는 가치에 팀의 행동이 어울리도록 만드는 것이 가장 중요!
원칙 (Rules)
 인간성 (Humanity)
소프트웨어는 사람이 개발한다.
 경제성 (Economics)
기술적 성공 < 비즈니스 목표와 필요
 상호이익 (Mutual Benefit)
사용자, 발주자(Sponsor), 개발자 등 관련된 모든 사람에게 이익이 되어야 함.
 자기 유사성 (Self Similarity)
해결책의 구조를 다른 맥락, 다른 사이즈에도 적용.
정답이 아닌 해답을 적용
 개선 (Improvement)
일단 시작 후 지속적인 개선. 현실과 이상의 간극을 좁히기 위한 매일 같은 노력
 다양성 (Diversity)
문제를 해결하기 위한 다양한 기술, 사고방식, 관점들의 존재를 인정.
갈등을 부정하는 것이 아니라 인정하고 생산적으로 풀어내는 방식
 반성 (Reflection)
왜 일하는지, 왜 성공했는지, 왜 실패했는지 분석하고 배우는 팀.
원칙 (Rules)
 흐름 (Flow)
가치 있는 SW를 끊임없이 제공하기 위한 점진적, 계속, 자주 개발의 단계를 동시에 작업함.
 기회 (Opportunity)
문제를 기회로 전환할 사고방식과 접근 자세. 강점을 늘리고 약점을 최소화.
 잉여 (redundancy)
Plan B. 소모적인 중복과 잉여가 되지 않도록 함.
 실패 (Failure)
실패는 허비된 시간과 노력이 아니고 항상 감수 해야할 가장 짧은 길.
 품질 (Quality)
품질을 희생하면 프로젝트가 성공하는가? 더 이상 제로섬 게임이 아님.
 아기 발걸음 (Baby Step)
단계를 작게 하고 실패해도 다시 시작하자. 느리게 하자는 말은 아님.
 받아들인 책임 (Accepted Responsibility)
책임과 권한은 항상 같이 한다는 점.
실천 방법 (Practices)
 함께 앉기 (Sit Together)
물리적 공간의 중요성, 의사소통을 위한 고민
 전체 팀 (Whole Team)
팀의 정체성, 기술과 시야를 지난 모든 관련된 사람을 팀에 포함. 팀의 규모?
 정보를 제공하는 작업 공간 (Informative Workspace)
팀 공간은 팀의 프로젝트로 채워라. 스토리 카드, 차트. 살아있는 정보?
 활기찬 작업 (Energized Work)
생산성의 최대치를 위한 근무 시간.
 짝 프로그래밍 (Pair Programming)
두 사람이 한대의 컴퓨터. 자주 바꾸고 혼자 생각할 시간도 주고…
 스토리 (Story)
요구사항과 다른 개념. 기능단위로 짧은 글, 그림, 설명, 이름 등 필요
 여유 (Slack)
일정을 느슨하게 잡는다는 의미가 아님. 약속한 시간 내에 작업을 마치는 것을 뜻함. 포기할 수 있는
Task를 가지도록 함.
실천 방법 (Practices)
 일주일별 주기 (Weekly Cycle)
한번에 일주일 분량의 계획, 주간회의, 구현 스토리 채택, 스토리에 따른 Task 할당
 분기별 주기 (Quarterly Cycle)
한번에 한 분기 분량의 계획, 팀과 프로젝트 방향성, 목표 검토. 제약조건, 병목 등을 검토.
 10분 빌드 (Ten-minute Build)
10분안에 시스템을 빌드하고 테스트를 돌릴 수 있도록 자동화. 자주할 수 있도록 최소한의 시간동안
자동화하는 점이 중요.
 지속적 통합 (Continuous Integration)
구성원들의 작업을 자주 통합. 통함과 빌드의 결과는 완제품.
 테스트 우선 프로그래밍 (Test Driven Development)
프로그램 구현 전에 테스트를 먼저 작성. TDD는 Testing과 다름.
 점진적 설계 (Incremental Design)
설계는 매일, 점진적으로. 최대한 설계를 뒤로 미룸.
Really possible?
 팀의 미션, 비전, 핵심 가치
 함께 앉기 (Sit Together) ●
 전체 팀 (Whole Team) ○ - Role 정의
 정보를 제공하는 작업 공간 (Informative Workspace) ○ - 방법 고민
 활기찬 작업 (Energized Work) ○ - 근무시간 준수
 짝 프로그래밍 (Pair Programming)
 스토리 (Story)
 여유 (Slack) ○ - 우선순위 선별
 일주일별 주기 (Weekly Cycle) ○ - 주간회의
 분기별 주기 (Quarterly Cycle) ○ - 분기별 목표 수립
 10분 빌드 (Ten-minute Build) ○ - 자동화
 지속적 통합 (Continuous Integration) ○ - 자동화
 테스트 우선 프로그래밍 (Test Driven Development) ○ - 가장 중요
 점진적 설계 (Incremental Design) ○ - 가장 중요
Constraints
?

More Related Content

What's hot

스토리포인트가이드
스토리포인트가이드스토리포인트가이드
스토리포인트가이드YoungKi Hong
 
애자일 게임 개발이란?
애자일 게임 개발이란?애자일 게임 개발이란?
애자일 게임 개발이란?Kay Kim
 
Sk planet 이야기
Sk planet 이야기Sk planet 이야기
Sk planet 이야기종범 고
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용Kevin Kim
 
위대한개발문화
위대한개발문화위대한개발문화
위대한개발문화신승환
 
Agile 방법론
Agile 방법론Agile 방법론
Agile 방법론Astin Choi
 
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)Kay Kim
 
개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례
개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례
개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례Woogon Shim
 
애자일 게임 프레임워크
애자일 게임 프레임워크애자일 게임 프레임워크
애자일 게임 프레임워크agilekorea
 
스크럼 리뷰 이지원 발표용
스크럼 리뷰 이지원 발표용스크럼 리뷰 이지원 발표용
스크럼 리뷰 이지원 발표용지원 이
 
Agile Adoption Success Factors
Agile Adoption Success FactorsAgile Adoption Success Factors
Agile Adoption Success FactorsJune Kim
 
협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0Sangcheol Hwang
 
애자일 하라
애자일 하라애자일 하라
애자일 하라진수 허
 
사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼Junyi Song
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발Jaehoon Oh
 
애자일 코치
애자일 코치애자일 코치
애자일 코치영기 김
 
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)Jeongho Shin
 

What's hot (19)

스토리포인트가이드
스토리포인트가이드스토리포인트가이드
스토리포인트가이드
 
스크럼과 Xp
스크럼과 Xp스크럼과 Xp
스크럼과 Xp
 
애자일 게임 개발이란?
애자일 게임 개발이란?애자일 게임 개발이란?
애자일 게임 개발이란?
 
Sk planet 이야기
Sk planet 이야기Sk planet 이야기
Sk planet 이야기
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용
 
위대한개발문화
위대한개발문화위대한개발문화
위대한개발문화
 
Agile 방법론
Agile 방법론Agile 방법론
Agile 방법론
 
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
 
개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례
개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례
개발 생산성과 품질 향상을 위한 글로벌기업의 애자일 도입 및 적용사례
 
애자일 게임 프레임워크
애자일 게임 프레임워크애자일 게임 프레임워크
애자일 게임 프레임워크
 
스크럼 리뷰 이지원 발표용
스크럼 리뷰 이지원 발표용스크럼 리뷰 이지원 발표용
스크럼 리뷰 이지원 발표용
 
Agile Adoption Success Factors
Agile Adoption Success FactorsAgile Adoption Success Factors
Agile Adoption Success Factors
 
협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0
 
애자일 하라
애자일 하라애자일 하라
애자일 하라
 
애자일의 모든것
애자일의 모든것애자일의 모든것
애자일의 모든것
 
사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼사용자 스토리 기반의 스크럼
사용자 스토리 기반의 스크럼
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
 
애자일 코치
애자일 코치애자일 코치
애자일 코치
 
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
 

Similar to Itsm팀 내부세미나 익스트림프로그래밍_정희찬

Agile의 본질과 실천
Agile의 본질과 실천 Agile의 본질과 실천
Agile의 본질과 실천 Hyungseok Shim
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)영기 김
 
애자일 전파를 위한 혼자만의 싸움 전략
애자일 전파를 위한 혼자만의 싸움 전략애자일 전파를 위한 혼자만의 싸움 전략
애자일 전파를 위한 혼자만의 싸움 전략AgileKoreaConference Alliance
 
Agile sw development 101
Agile sw development 101Agile sw development 101
Agile sw development 101Kiwon Kyung
 
화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법Jinsoo Hwang
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개태준 문
 
애자일, 한때의 유행인가
애자일, 한때의 유행인가애자일, 한때의 유행인가
애자일, 한때의 유행인가Seungbin Cho
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발혁 권
 
클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정VMware Tanzu Korea
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사Open Source Consulting
 
개발자들 오리엔테이션
개발자들 오리엔테이션개발자들 오리엔테이션
개발자들 오리엔테이션Park JoongSoo
 
나는 PM이다! 이재왕 발표자료
나는 PM이다! 이재왕 발표자료나는 PM이다! 이재왕 발표자료
나는 PM이다! 이재왕 발표자료Dong-Hwan Han, Ph.D.
 
아무도 알려주지 않는 팀으로 일하는 법(스타트업)
아무도 알려주지 않는 팀으로 일하는 법(스타트업)아무도 알려주지 않는 팀으로 일하는 법(스타트업)
아무도 알려주지 않는 팀으로 일하는 법(스타트업)수보 김
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
AboutAgile
AboutAgileAboutAgile
AboutAgilemjaykim7
 

Similar to Itsm팀 내부세미나 익스트림프로그래밍_정희찬 (20)

Agile의 본질과 실천
Agile의 본질과 실천 Agile의 본질과 실천
Agile의 본질과 실천
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)
 
애자일 전파를 위한 혼자만의 싸움 전략
애자일 전파를 위한 혼자만의 싸움 전략애자일 전파를 위한 혼자만의 싸움 전략
애자일 전파를 위한 혼자만의 싸움 전략
 
Agile sw development 101
Agile sw development 101Agile sw development 101
Agile sw development 101
 
화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
 
애자일, 한때의 유행인가
애자일, 한때의 유행인가애자일, 한때의 유행인가
애자일, 한때의 유행인가
 
애자일 한때의 유행인가?
애자일 한때의 유행인가?애자일 한때의 유행인가?
애자일 한때의 유행인가?
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발
 
클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정
 
애자일프랙티스
애자일프랙티스애자일프랙티스
애자일프랙티스
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
 
개발 관리론
개발 관리론개발 관리론
개발 관리론
 
개발자들 오리엔테이션
개발자들 오리엔테이션개발자들 오리엔테이션
개발자들 오리엔테이션
 
나는 PM이다! 이재왕 발표자료
나는 PM이다! 이재왕 발표자료나는 PM이다! 이재왕 발표자료
나는 PM이다! 이재왕 발표자료
 
아무도 알려주지 않는 팀으로 일하는 법(스타트업)
아무도 알려주지 않는 팀으로 일하는 법(스타트업)아무도 알려주지 않는 팀으로 일하는 법(스타트업)
아무도 알려주지 않는 팀으로 일하는 법(스타트업)
 
AKC2020 인썸니아 이성훈
AKC2020 인썸니아 이성훈AKC2020 인썸니아 이성훈
AKC2020 인썸니아 이성훈
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
AboutAgile
AboutAgileAboutAgile
AboutAgile
 
What is agile
What is agileWhat is agile
What is agile
 

Itsm팀 내부세미나 익스트림프로그래밍_정희찬

  • 2. 켄트 벡, 신시아 안드레스 지음 김창준, 정지호 옮김 인사이트 초판 3쇄 (2009년 9월 4일)
  • 3. Agile We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 4. Agile 우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다: 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다. 이 말은, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
  • 5. 가치 (Values) • 의사소통 (Communication) • 단순성 (Simplicity) • 피드백 (Feedback) • 용기 (Courage) • 존중 (Respect)  지식의 부족? 의사소통의 부족?  의사소통의 부재로 인한 문제인가 자문  의사소통에 대한 지속적인 개선  단순성 < 복잡성의 제거  프로세스, 프로그램, 의사소통 등  제대로 하는 것이 어떻게 하는 것인지 모른다.  오늘 제대로가 내일을 보장하지 않는다.  점진적 개선  최대한 빠르게, 최대한 많이  의사소통의 핵심  단순함, 피드백 등에 대한 근본적인 가치  행동? 인내? 용기의 발현의 다른 형태  다른 이 보다 본질적으로 더 가치 있는 사람은 없다. 팀이 신봉하는 가치에 팀의 행동이 어울리도록 만드는 것이 가장 중요!
  • 6. 원칙 (Rules)  인간성 (Humanity) 소프트웨어는 사람이 개발한다.  경제성 (Economics) 기술적 성공 < 비즈니스 목표와 필요  상호이익 (Mutual Benefit) 사용자, 발주자(Sponsor), 개발자 등 관련된 모든 사람에게 이익이 되어야 함.  자기 유사성 (Self Similarity) 해결책의 구조를 다른 맥락, 다른 사이즈에도 적용. 정답이 아닌 해답을 적용  개선 (Improvement) 일단 시작 후 지속적인 개선. 현실과 이상의 간극을 좁히기 위한 매일 같은 노력  다양성 (Diversity) 문제를 해결하기 위한 다양한 기술, 사고방식, 관점들의 존재를 인정. 갈등을 부정하는 것이 아니라 인정하고 생산적으로 풀어내는 방식  반성 (Reflection) 왜 일하는지, 왜 성공했는지, 왜 실패했는지 분석하고 배우는 팀.
  • 7. 원칙 (Rules)  흐름 (Flow) 가치 있는 SW를 끊임없이 제공하기 위한 점진적, 계속, 자주 개발의 단계를 동시에 작업함.  기회 (Opportunity) 문제를 기회로 전환할 사고방식과 접근 자세. 강점을 늘리고 약점을 최소화.  잉여 (redundancy) Plan B. 소모적인 중복과 잉여가 되지 않도록 함.  실패 (Failure) 실패는 허비된 시간과 노력이 아니고 항상 감수 해야할 가장 짧은 길.  품질 (Quality) 품질을 희생하면 프로젝트가 성공하는가? 더 이상 제로섬 게임이 아님.  아기 발걸음 (Baby Step) 단계를 작게 하고 실패해도 다시 시작하자. 느리게 하자는 말은 아님.  받아들인 책임 (Accepted Responsibility) 책임과 권한은 항상 같이 한다는 점.
  • 8. 실천 방법 (Practices)  함께 앉기 (Sit Together) 물리적 공간의 중요성, 의사소통을 위한 고민  전체 팀 (Whole Team) 팀의 정체성, 기술과 시야를 지난 모든 관련된 사람을 팀에 포함. 팀의 규모?  정보를 제공하는 작업 공간 (Informative Workspace) 팀 공간은 팀의 프로젝트로 채워라. 스토리 카드, 차트. 살아있는 정보?  활기찬 작업 (Energized Work) 생산성의 최대치를 위한 근무 시간.  짝 프로그래밍 (Pair Programming) 두 사람이 한대의 컴퓨터. 자주 바꾸고 혼자 생각할 시간도 주고…  스토리 (Story) 요구사항과 다른 개념. 기능단위로 짧은 글, 그림, 설명, 이름 등 필요  여유 (Slack) 일정을 느슨하게 잡는다는 의미가 아님. 약속한 시간 내에 작업을 마치는 것을 뜻함. 포기할 수 있는 Task를 가지도록 함.
  • 9. 실천 방법 (Practices)  일주일별 주기 (Weekly Cycle) 한번에 일주일 분량의 계획, 주간회의, 구현 스토리 채택, 스토리에 따른 Task 할당  분기별 주기 (Quarterly Cycle) 한번에 한 분기 분량의 계획, 팀과 프로젝트 방향성, 목표 검토. 제약조건, 병목 등을 검토.  10분 빌드 (Ten-minute Build) 10분안에 시스템을 빌드하고 테스트를 돌릴 수 있도록 자동화. 자주할 수 있도록 최소한의 시간동안 자동화하는 점이 중요.  지속적 통합 (Continuous Integration) 구성원들의 작업을 자주 통합. 통함과 빌드의 결과는 완제품.  테스트 우선 프로그래밍 (Test Driven Development) 프로그램 구현 전에 테스트를 먼저 작성. TDD는 Testing과 다름.  점진적 설계 (Incremental Design) 설계는 매일, 점진적으로. 최대한 설계를 뒤로 미룸.
  • 10. Really possible?  팀의 미션, 비전, 핵심 가치  함께 앉기 (Sit Together) ●  전체 팀 (Whole Team) ○ - Role 정의  정보를 제공하는 작업 공간 (Informative Workspace) ○ - 방법 고민  활기찬 작업 (Energized Work) ○ - 근무시간 준수  짝 프로그래밍 (Pair Programming)  스토리 (Story)  여유 (Slack) ○ - 우선순위 선별  일주일별 주기 (Weekly Cycle) ○ - 주간회의  분기별 주기 (Quarterly Cycle) ○ - 분기별 목표 수립  10분 빌드 (Ten-minute Build) ○ - 자동화  지속적 통합 (Continuous Integration) ○ - 자동화  테스트 우선 프로그래밍 (Test Driven Development) ○ - 가장 중요  점진적 설계 (Incremental Design) ○ - 가장 중요

Editor's Notes

  1. 우리의 최고 가치는 유용한 소프트웨어의 빠르고 지속적인 공개를 통해 고객을 만족시키는 것이다. 연구결과에 따르면 작은 기능을 고객에게 빨리 전달할 수록 품질은 높아진다. 기능을 사용 할 수 있다면 바로 사용하면 되고 아직 부족하면 계속 개발할 지 여부를 결정 할 수 있다. 개발 후반부에 접어들었다 할지라도, 요구 사항 변경을 확인한다. 애자일 프로세스는 고객의 경쟁 우위를 위해 변화를 이용한다. 애자일 개발에서는 고객도 팀의 일원이 된다. 시장의 요구는 변하기 때문에 고객의 요구사항이 시간에 따라 변하는것은 당연하다. 팀은 이를 요구사항의 변경으로 보지 않고 시장의 요구를 더 정확히 알게 된 것으로 본다. 개발 중인 소프트웨어를 2주에서 2개월 사이, 혹은 더 짧은 간격으로 자주 인도한다. 프로젝트 전체 과정 동안 비즈니스를 하는 사람과 개발자는 계속 함께 일해야 한다. 프로젝트를 빨리 진행하기 위해서는 고객, 개발자와 같은 이해 당사자간의 빈번한 대화가 필수적이다. 이를 위해서 함께 같은 장소에서 일하는게 좋다. 의욕적인 개인을 중심으로 프로젝트를 구성한다. 환경과 필요한 것을 지원하고 그들이 그 일을 해 낼 것이라는 믿음을 갖고 일을 맡긴다. 프로젝트에서 가장 중요한 것은 사람이다. 사람에게 장애가 되는 환경은 모두 바꿔야 한다.  개발 팀 내부에서 정보를 전달 및 공유하는 가장 효율적이고 효과적인 방법은 직접 일대일로 대화하는 것이다. 의사소통에서 가장 효과적인것은 직접 이야기 하는 것이다. 문서에 모든 것을 담으려 할 필요는 없다. 개발 중인 소프트웨어가 진척 상황의 일차적 척도이다. 문서가 30% 완성되었다고 해도 시스템이 완성된게 없다면 아무 의미가 없다. 중요한 건 일이 끝나는 것이다. 애자일 프로세스는 지속 가능한 개발을 촉진한다. 스폰서, 개발자, 사용자는 꾸준히 지속가능한 속도를 유지할 수 있어야 한다. 소프트웨어 개발은 마라톤이지 100m 달리기가 아니다. 과도한 근무는 집중력을 떨어뜨리고 피로를 누적시켜 오히려 일을 망치게 된다. 우수한 기술과 좋은 설계에 대한 지속적인 관심은 진행 속도를 향상시킨다. 빨리 개발하기 위해 품질을 낮추는것은 어리석은 생각이다. 초반부터 좋은 품질을 유지하기 위해 노력한다면 오히려 개발이 진행되는 동안 개발속도를 빨라진다. 단순성(아직 끝내지 않은 일의 양을 최대화하는 기술)은 필수적이다. 할 수 있는 하는게 좋다. 불필요하게 어려운 기술을 사용한다거나 미래를 생각해서 복잡한 구조를 선택하는 것은 개발 속도를 느리게 할 뿐이다. 최고의 아키텍처, 요구 사항, 설계는 자기 조직적인 팀에서 나온다. 팀은 최고의 결정을 하기위해 각 멤버가 전체 분야에 참여한다. 팀 전체는 이 결정에 대한 책임 역시 공유한다. 규칙적으로, 팀은 좀더 효과적인 방법을 반영해야 하고, 적절히 그 동작을 조율하고 조정해야 한다. 프로젝트 상황은 계속 변한다. 변화를 따라가려면 팀이 일하는 방식도 수시로 변해야 한다.
  2. 우리의 최고 가치는 유용한 소프트웨어의 빠르고 지속적인 공개를 통해 고객을 만족시키는 것이다. 연구결과에 따르면 작은 기능을 고객에게 빨리 전달할 수록 품질은 높아진다. 기능을 사용 할 수 있다면 바로 사용하면 되고 아직 부족하면 계속 개발할 지 여부를 결정 할 수 있다. 개발 후반부에 접어들었다 할지라도, 요구 사항 변경을 확인한다. 애자일 프로세스는 고객의 경쟁 우위를 위해 변화를 이용한다. 애자일 개발에서는 고객도 팀의 일원이 된다. 시장의 요구는 변하기 때문에 고객의 요구사항이 시간에 따라 변하는것은 당연하다. 팀은 이를 요구사항의 변경으로 보지 않고 시장의 요구를 더 정확히 알게 된 것으로 본다. 개발 중인 소프트웨어를 2주에서 2개월 사이, 혹은 더 짧은 간격으로 자주 인도한다. 프로젝트 전체 과정 동안 비즈니스를 하는 사람과 개발자는 계속 함께 일해야 한다. 프로젝트를 빨리 진행하기 위해서는 고객, 개발자와 같은 이해 당사자간의 빈번한 대화가 필수적이다. 이를 위해서 함께 같은 장소에서 일하는게 좋다. 의욕적인 개인을 중심으로 프로젝트를 구성한다. 환경과 필요한 것을 지원하고 그들이 그 일을 해 낼 것이라는 믿음을 갖고 일을 맡긴다. 프로젝트에서 가장 중요한 것은 사람이다. 사람에게 장애가 되는 환경은 모두 바꿔야 한다.  개발 팀 내부에서 정보를 전달 및 공유하는 가장 효율적이고 효과적인 방법은 직접 일대일로 대화하는 것이다. 의사소통에서 가장 효과적인것은 직접 이야기 하는 것이다. 문서에 모든 것을 담으려 할 필요는 없다. 개발 중인 소프트웨어가 진척 상황의 일차적 척도이다. 문서가 30% 완성되었다고 해도 시스템이 완성된게 없다면 아무 의미가 없다. 중요한 건 일이 끝나는 것이다. 애자일 프로세스는 지속 가능한 개발을 촉진한다. 스폰서, 개발자, 사용자는 꾸준히 지속가능한 속도를 유지할 수 있어야 한다. 소프트웨어 개발은 마라톤이지 100m 달리기가 아니다. 과도한 근무는 집중력을 떨어뜨리고 피로를 누적시켜 오히려 일을 망치게 된다. 우수한 기술과 좋은 설계에 대한 지속적인 관심은 진행 속도를 향상시킨다. 빨리 개발하기 위해 품질을 낮추는것은 어리석은 생각이다. 초반부터 좋은 품질을 유지하기 위해 노력한다면 오히려 개발이 진행되는 동안 개발속도를 빨라진다. 단순성(아직 끝내지 않은 일의 양을 최대화하는 기술)은 필수적이다. 할 수 있는 하는게 좋다. 불필요하게 어려운 기술을 사용한다거나 미래를 생각해서 복잡한 구조를 선택하는 것은 개발 속도를 느리게 할 뿐이다. 최고의 아키텍처, 요구 사항, 설계는 자기 조직적인 팀에서 나온다. 팀은 최고의 결정을 하기위해 각 멤버가 전체 분야에 참여한다. 팀 전체는 이 결정에 대한 책임 역시 공유한다. 규칙적으로, 팀은 좀더 효과적인 방법을 반영해야 하고, 적절히 그 동작을 조율하고 조정해야 한다. 프로젝트 상황은 계속 변한다. 변화를 따라가려면 팀이 일하는 방식도 수시로 변해야 한다.