Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
애자일 S/W 개발
1. If I sleep now I will have a dream, but if I study now I will make my dream com true …
Time goes now
Made in 2013.01
SE Lab
김영기책임
애자일S/W 개발
2. 2
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일개발이란무엇인가?
3. 3
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
기존개발방법론
Build First
Version
Modify until
client is satisfied
Maintenance
Maintenance
Development
Build and Fix
Waterfall
Iteration Model
기존개발방법론의문제
과도한초과근무
심각한품질문제
계속되는문제점과사투
납기지연
4. 4
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일헌장
http://agilemanifesto.org/
5. 5
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일방법론(1/2)
‘Agile’의의미
Marked by ready ability to move with quick easy grace
Having a quick resourceful and adaptable character
기민한, 날쌘(Ref http://agile.egloos.com/4368289)
Agile 방법론의등장배경
S/W 개발환경의변화
결과물의Time to market(적시배포)가중요해짐
개발생산성저하
기존방법론의한계
문서및절차위주의기존방법론
•변화에신속한대응이어려움
개발자의개발능력의차이불인정
Waterfall model의문제점
불명확하고, 변화하는사용자의요구사항
개발된모듈들의통합의어려움
Software 품질의하락
•충분한테스트가이루어지지않음
6. 6
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일방법론(2/2)
Agile방법론의정의
특정한방법론을지칭하는것이아님Agile개발을가능하게해주는다양한방법론들을통칭함(Wikipedia)
SW개발환경등주위변화를빠르게수용하고, 이에능동적으로대응하는여러방법론통칭
특징
더나은의사소통
지속적인변화관리
우선순위에따라중요한것먼저
대표적인Agile방법론
Agile
Disciplined
인원규모
소규모
대규모
Criticality
낮음
높음
Dynamism
잦은요구사항변화
요구사항변화통제
개인성향
능동적
규범에잘따름
문화
혼란극복
질서유지
익스트림프로그래밍
(XP: eXtreme Programing)
Agile방법론의대표주자로Agile방법론보급에큰영향을끼침
고객과함께2주정도의반복개발을하고, 테스트와우선개발을특징
-극단적인효율성추구(동료, 고객, 관리자와의의사소통을중시)
스크럼
(Scrum)
한달마다동작가능한제품을반복적인개발주기(Sprint)를중심
개발팀의짧은미팅(Stand-up Meeting)이프로젝트관리의중심
일의진행동안에는누구도팀을방해할수없음
FDD
(Feature-DrivenDevelopment)
기능마다2주정도의반복개발을실시
다른Agile접근방법의장점을조합(UML 설계기법과의연관성이있음)
이해당사자에게정확하고, 의미있는진행정보를제공
ETC
이외에도다음과같은Agile 방법론들이있다.
-CrystalFamily(규모에따라다른접근방법), Lean (불필요한요소제거) …
7. 7
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일의핵심
8. 8
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
매주가치전달하기
매주고객에게가치를전달하려면…
큰문제들을작은문제들로세분화하라
가장중요한것에먼저집중하라
소프트웨어가제대로동작하는지확인하라
피드백을구하라
필요하다면계획을바꾸어라
책임감을가져라
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
애자일에서가장우선시하는것은신속하고지속적으로가치있는소프트웨어를
고객에게전달함으로써고객만족을이루는일이다
9. 9
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일프로젝트계획
애자일로계획하기
현실적이고, 유연해야한다
정보의공개는기본
프로젝트범위, 비용, 출시날짜등에관한결정은사실을바탕으로
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
10. 10
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
완료의의미
잔디깎기아르바이트
여러분의할머니가앞마당의잔디를정리하기위해이웃집소년을고용했다. 소년이다음과같은일을마쳤다면, 이소년은정말자신의일을다했다고생각할까?
개발결과를전달한다는것은…
코드를출시가능한상태로만들기위해해야할모든일을수행
•분석, 설계, 코딩, 테스트, UX와디자인모두를포함한다
출시되기에부족하다면, 아직완료되지않았다는뜻이다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
작동하는소프트웨어는프로젝트의진척을알수있는주된척도이다.
어떻게잔디를갈퀴질할것인지에대한계획서작성
우아한잔디무늬에대한디자인제시
섬세하면서포괄적인청소계획수립
11. 11
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
S/W 프로젝트에대한세가지진실
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
<
1. 프로젝트초기에모든요구사항을수집하기는불가능하다.
2. 수집한요구사항을무엇이든변하기마련이다.
3. 시간이나비용이허용하는것보다항상할일이더많다.
모든것을만족시키는단하나의방법론은없다상황과맥락에따른최선의선택을하자
12. 12
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일팀
13. 13
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Setting the Stage
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
14. 14
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일팀
애자일팀은…
팀원각각의역할을미리정의하지않는다.
직위나역할에상관없이누구나프로젝트에필요한일을한다.
분석, 코딩, 설계, 테스트를지속적으로실행한다.
하나의팀(품질은팀모두의책임)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
전통적인방법
한단계씩완성하고
넘어가는시스템
애자일
분석과개발, 테스트활동이
끊임없이진행되는개발과정
VS
VS
15. 15
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일팀
애자일팀의특징
같은공간에서일한다.
참여하는고객
프로젝트가진행동안“업무전문가들(Business people)”과“개발자” 는매일함께일해야한다.
자기조직화(Self-Organizing)
최고의아키텍처, 요구사항, 그리고설계는자기조직화된팀에서나온다.
책임감과자율성
의욕이가득한사람으로팀을구성하고, 그들에게필요한환경과지원을한후, 이들이업무를완성할것이라믿어야한다.
교차가능팀(Cross-functional Team)
팀구성원은다방면에걸쳐많이알고관심을
갖는사람(Generalist)가좋다.
특정기술에종속되지말아야한다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
16. 16
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일팀
애자일팀에서의역할(Role)
애자일개발팀
애널리스트–사용자스토리작성, 세부사항분석, 태스크완료확인
개발자–소프트웨어작성, 추정치정하기, 기술적인결정내리기
테스터–개발스토리에대한테스트
프로젝트관리자–프로젝트진행확인, 걸림돌없애기
UX 디자이너
기타–DB Admin, System Admin, Technical Writer, Trainer …
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
고객
개발팀
애자일프로젝트에서역할이란구체적이지않으며누구나여러가지역할을수행할수있다고이해하는것이필요하다
무엇을개발할지
결정한다.
우선순위를정한다.
어떻게개발할지
결정한다.
17. 17
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일팀
애자일팀구성Tip
제너럴리스트를찾아라.
애매모호한상황을개의치않는사람을찾아라.
제멋대로행동하는사람이아닌, 팀플레이어를찾아라.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Technician
Generalist
Specialist
Professional
깊이
너비
경험
18. 18
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱소개
19. 19
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
프로젝트실패
대부분의프로젝트는시작하기도전에실패한다.
적절한기대치를알지못해서…
껄끄러운질문을하지못해서…
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
이거누가운전하는건가요?
난멀미나는데...
아직도착안했어?
왼쪽, 오른쪽,
잠깐… 오른쪽..
어디로가는거죠?
에어컨좀
틀어줘요!
너무시끄러워..
20. 20
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
프로젝트실패이유
대부분의프로젝트가실패하는이유는...
사람들이생각하는의미가다르게해석된다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
현명한선택을하기위해, 목표, 비전, 프로젝트의상태에대하여팀원과소통하기
이해관계자들이적절한결정을내릴수있도록필요한프로젝트정보제공하기
21. 21
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
껄끄러운질문은언제하는가?
이런질문은프로젝트초기에해야한다.
팀의프로젝트경험은얼마나되는가?
예산은얼마나배당되어있는가?
프로젝트는누가지휘하는가?
유사한프로젝트경험이있는가?
…
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
필요하지만껄끄러운질문은이때해야한다.
22. 22
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱(Inception Deck)
인셉션덱
프로젝트성공률을높이기위한아이디어
프로젝트관련자들이함께모여..
프로젝트에대한기대치를동일하게하기위해..
서로적절한질문을통하여…
생각을공유한다
S/W 프로젝트시작전에꼭물어야하는10가지질문으로구성
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
인셉션(Inception)은어떤활동이나단체를시작, 설립하는단계라는사전적의미가있다. 인셉션을프로젝트초기단계에고객과개발팀이서로를알아가는과정을갖는일정기간(1~2주)이며, "인셉션덱(Inception Deck)"은이기간동안사용하는도구이다
23. 23
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트(Inception Deck)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
24. 24
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
25. 25
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL1 -우리가왜여기에모였는가?
프로젝트를진행하는이유를팀원들이이해하면…
더많은정보를충분히고려한보다나은결정
서로대립하는세력과Trade-off의균형유지
자율적으로생각하고판단하는능력으로혁신적인해결책모색
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
26. 26
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL2 –엘리베이터피치만들기
좋은엘리베이터피치는…
프로젝트의핵심을분명히이해할수있다.
팀원으로하여금고객의입장에서생각하도록한다.
핵심을공략한다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
27. 27
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL3 –제품상자디자인하기
제품광고를제작하면서아래와같은점을알수있다.
우리제품이고객에게끌릴만한점이무엇인지
•기능보다는혜택이무엇인지
이제품만의장점이무엇인지
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
28. 28
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL4 –하지말아야할것정리하기
범위내–프로젝트를진행할때꼭해결해야할중요사항
반드시구체적이지않아도좋다.
범위외–다음릴리즈나이프로젝트에서해결할수없는것들
미해결–더고민한후결정해야할사항
나중에범위내, 혹은범위외의범주로옮겨져야한다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
29. 29
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL5 –프로젝트관련자알아보기
어떤그룹의사람들이이프로젝트와관련있는지알았다면,
그들과대화를나누고, 각그룹마다연락가능한사람을만들자
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
단것이
도움이
된다.
30. 30
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL6 –해결책보여주기
해결책을이야기함으로써얻는이점들
어떤도구나기술을사용할지추측할수있다.
프로젝트의제약사항이나범위를시각화해볼수있다.
리스크에대해상의해볼수있다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
31. 31
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL7 –야근거리가될만한것들파악하기
리스크(Risk)를미리파악하면좋은점
프로젝트를하는동안감수해야할문제점들을일찍파악
납득할수없는이야기에대한반론의기회를준다.
팀의결속력을강하게하고, 서로의경험을배울수있는기회가
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
32. 32
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL8 –규모정하기
프로젝트가얼마나걸리는지예측해보는것으로, 정확하지않아도언제쯤소프트웨어가출시될지알아야한다.
작은단위로생각하기
작고다룰수있는크기로나누어야한다. (Iteration based)
규모에적당한기대치를세우기
현재상태의가능한정보를기반으로합리적인기간을예측하여
관련자에게알려주어야한다. 상황이변경되면계획은수정
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
33. 33
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL9 –기회비용파악하기
프로젝트의제약을파악하고, 이에대한대책을생각하자
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
* They can’t all be ‘ON’
* No two can occupy the same level
34. 34
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
인셉션덱리스트
IL10 –우선순위파악하기
계획을세웠으면, 이를구현하기위해필요한것과비용을알아내야한다.
최고의팀구성
최종결정권자파악
비용에대한예측
모든정보의수집
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
고객
이프로젝트는언제끝나는건가요?
그리고비용은얼마나드는건가요?
35. 35
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
사용자스토리
36. 36
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
문서작성의문제점
소프트웨어개발시문서에의존하게되면..
문서를좀더자세히작성하면문제가해결된다.(?)
나는그녀가돈을훔쳐갔다고말하지않았어요
나는그녀가돈을훔쳐갔다고말하지않았어요
나는그녀가돈을훔쳐갔다고말하지않았어요
나는그녀가돈을훔쳐갔다고말하지않았어요
나는그녀가돈을훔쳐갔다고말하지않았어요
나는그녀가돈을훔쳐갔다고말하지않았어요
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
변화를받아들이지못한다.
고객이원하는것이아닌적혀있는명세에따라개발한다.
실제20%만제대로된요구사항이다.
잘못된추측과가정이난무한다.
많은시간을낭비한다.
내가말한것이아님
내가말한것이그게아니라..
다른사람이훔친것같은데.
빌려간건데...
돈이아닌다른것을훔친..
37. 37
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
사용자스토리(User Story)
사용자스토리
고객이소프트웨어에원하는기능을짧게표현해놓은것이다
작은인덱스카드에적는다.
필요한것만짧게…
자세히모르는세부사항은나중으로미룬다.
가장정확하고효과적으로정보를전달하는방법은직접대면하면서이야기하는것이다
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
개발시요구사항에관하여서로소통할수있도록해주는무엇이필요하다. 고객이원하는핵심사항이
적혀있고, 계획할때사용가능하면서도, 짧고, 무엇을하고자했는지알수있는그무엇이..
좋은사용자스토리는
고객에게가치가있어야한다.
그리고스토리를완료하기위해필요한정보를포함해야한다.
가치= 돈을주고사고싶다
38. 38
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
좋은사용자스토리의요소
좋은사용자스토리는다음요소를갖추어야한다. (INVEST)
독립적이다. (Independent)
다른스토리에종속되지않아야한다.
협상가능해야한다. (Negotiable)
너무세세하게작성하지말아야한다.
가치가있어야한다. (Valuable)
추정가능해야한다.(Estimable)
적당한크기여야한다. (Sized right)
하나의이터레이션에서개발할수있어야한다.
테스트가능해야한다. (Testable)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
사용자스토리템플릿
스토리의세측면을반영
서술: 고객의요구사항을문서화하기보다는표현하기위한것
대화: 대화를통해세부사항을구체화
테스트: 스토리의완료여부를판단
39. 39
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
사용자스토리워크숍
User Story Workshop
개발팀과고객이함께모여,
개발하고자하는시스템에필요한사용자스토리를수집
Workshop Tip
Step 1. 크고이것저것붙일수있는벽면이많은방을구하라
Step 2. 그림을많이그려라
Step 3. 스토리많이쓰기
Step 4. 그외모든것에대해브레인스토밍하라
Step 5. 리스트를깔끔하게정돈하자
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
40. 40
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일추정
41. 41
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일추정
일반적인추정을할때의가정
대략적인추정치는그저추측일뿐이다.
대부분현실성이떨어지는, 낙관적인추측일뿐이다.
정확하게측정된추정치란있을수없다.
실제인셉션기간에정한추정치의400%까지달라지는게현실이다.
추정치가말해줄수있는사실은…
“이주어진시간과비용으로프로젝트가가능한가?”
추정치가제공하는기능은다음과같다.
미래의계획을짤수있는정보를제공
추정치는추측일뿐이라는사실을상기
S/W 개발에는본래복잡성이있다는걸인지시켜준다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
소프트웨어의추정의주된목적은프로젝트의결과를예측하는것이아니다. 프로젝트의목표가통제가능할만큼충분히현실적인지알아보기위한것이다.
42. 42
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
상대적인추정
상대적인크기구하기
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
이걸먹는데
10초가걸린다면…
요만큼을먹어치우는데
걸리는시간은대략얼마?
쿠키2개
쿠키6개
쿠키8개+ 우유
IF쿠키2개= 10초
THEN 쿠키6개= 30초
AND쿠키8개+ 우유= 60초
상대적인크기를구하는간단한원리가애자일에서의추정과계획의기초가된다.
43. 43
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
사용자스토리점수
사용자스토리점수(Story Point)
절대적인측정단위는아니지만, 수치적인상대치로추정이가능
10점짜리사용자스토리는5점짜리보다두배의시간이걸린다.
해당업무의크기와복잡도에기초하여부가
모든Story를점수별참조스토리활용하여점수별로분류
사용자스토리점수추정시장점
상대적인추정이가능사람들은상대적인추정에더강함
작업기간이아닌크기에초점을맞춘다
기간은, 나중에한주기당완료상태를기반으로경험적으로산출
추정치들을합산할수있다.
물리적인시간을기준으로추정누가하느냐에따라변동이크다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
44. 44
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
플래닝포커(Planning Poker)
Planning Poker 추정
광대역델파이기법(Wideband Delphi)을바탕으로일정을추정하는반복적인접근방법
한사람추정치보다팀원전체의추정치가정확하다
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
?
$
#
1
4
5
3
3
3
토론…
1. 고객이스토리를읽는다.
2. 팀원들이추정치를정한다.
3. 팀원들이서로토론한다.
4. 팀원들이다시추정치를정한다.
(의견이일치될때까지반복)
45. 45
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획기초사항
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
팀이얼마나빨리개발하는지알고…
스토리의상대적인
크기가정해지면...
출시일이언제쯤일지예상할수있다!!!
46. 46
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획
47. 47
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획
정적인계획의문제점
변화에대응이힘들다
팀원이바뀌고,
팀의능력이생각과다르고,
일정이줄어들고,
요구사항이끊임없이변경된다.
애자일에서계획은다음조건을만족해야한다.
고객에게중요한가치를전달
가시성이높고, 투명하고, 정직해야한다.
현실적으로실행가능해야한다.
필요하다면계획을조정하고, 변경할수있는유연함이필요하다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
48. 48
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획
애자일로계획을세운다는것은…
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
팀이사용자스토리를얼마나신속하게잘동작하면서도출시가능한소프트웨어로
만들수있는지를측정해서언제쯤소프트웨어가완성될지추측하는작업에불과하다.
마스터
스토리
리스트
소프트웨어를
만드는
팀의업무속도
(Point 단위)
사용자스토리를출시가능한소프트웨어로만드는1~2주동안의기간
#이터레이션= 총작업량/ 팀의업무속도
예) #이터리에션= 100 Point / 매이터레이션마다10 Point = 10 이터레이션
49. 49
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
작업량을줄여야한다.
다시말해계획을
다시세워야한다.
애자일계획을세우는방식은스토리를측정하고, 우선순위를정해서마스터스토리를만들고, 팀의속도를추정한다음, 출시날짜를정하는순서로이루어진다.
50. 50
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획
범위에유연하라
사용자스토리는계속해서추가, 삭제될수있다.
계획을현실적으로유지하고, 팀이욕심을부리지않도록해야한다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
51. 51
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획세우기(1/4)
1단계: 마스터스토리리스트작성하기
보통1~6개월정도의작업량을가진다
릴리즈정의
함께묶어전달했을때고객에게가치가있는스토리들을논리적
으로분류해놓은그룹이다.
출시할만한최소한의기능을모아놓은세트(Minimal Marketable Feature Set, MMF)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
52. 52
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획세우기(2/4)
2단계: 크기정하기
애자일추정참조…
3단계: 우선순위정하기
항상중요한것을먼저개발해야한다.
고객이우선순위를정하지만, 개발자도고객에게추천가능
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
53. 53
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일계획세우기(3/4)
4단계: 팀의업무속도측정하기
과거유사한소프트웨어개발경험에서..
프로젝트초기의1~2개의이터레이션결과에서..
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
모든스토리가같은크기라면…
-팀의업무속도= 완성된스토리/ 이터레이션
모든스토리의크기가같지않다면…
-팀의업무속도= 완성된스토리포인트/ 이터레이션
54. 54
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
5단계: 날짜예상하기
애자일계획세우기(4/4)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
날짜에맞추어출시
기능세트별로출시
무슨일이있어도
출시일은지켜야돼!!!
일정이변경되어도
이기능들은
꼭넣어야돼
애자일계획을세우는방식은스토리를측정하고, 우선순위를정해서마스터스토리를만들고, 팀의속도를추정한다음, 출시날짜를정하는순서로이루어진다.
55. 55
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
이터레이션관리
56. 56
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
이터레이션관리
이터레이션관리
고려사항
모든내용을다적어놓을만한시간이없다
•빠르고정확하게, 필요한정보를제때에제공하는분석을해야한다
완료된기능은완벽히작동되어야한다
•잘설계하고, 꼼꼼히테스트해서, 완전히통합할수있는코드를갖도록해야한다
기능이다잘작동하는지확인하기위해기다릴수는없다
•프로젝트의시작부터시스템이건강하고, 문제가없는지살펴야한다
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
애자일프로젝트에서이터레이션을이용하여어떻게일을처리하는지를의미한다
57. 57
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일이터레이션
이터레이션
스토리를작동하는소프트웨어로개발하는1~2주간의기간
애자일프로젝트에서개발을완성하기위해필요한엔진역할
고객에게가치있는것을생산하는것이이터레이션의목적
•잘작동하고, 테스트된소프트웨어를생산해야한다
이터레이션중간에스토리를바꾸지않는다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
58. 58
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
이터레이션실행예
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
59. 59
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일커뮤니케이션
60. 60
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일커뮤니케이션계획
이터레이션에서해야하는4가지
스토리계획회의(SPM)
다음이터레이션에할작업준비하기
쇼케이스
지난이터레이션에서작업했던스토리에대한피드백받기
이터레이션계획회의(IPM)
다음이터레이션에서스토리들을어떻게작업할지계획세우기
미니회고(Mini Retrospective)
향상될부분이있는지지속적으로찾아보기
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Iteration (n)
SPM
IPM
Daily Stand-up Meeting
SPM : Story Planning Meeting
IPM : Iteration Planning Meeting
61. 61
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일커뮤니케이션
스토리계획회의
Just in Time 으로다음이터레이션준비를검토
쇼케이스
업무성과를공개하고, 피드백을받는다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Iteration (n)
IPM
이번이터레이션스토리데모하기
고객의피드백받기
Show the
valuable things
쇼케이스
다음이터레이션계획하기
미니회고하기
Iteration (n)
SPM
Ready to work ?
해야할과제는다완성했는가?
다음이터레이션에서작업할스토리를개발할준비가되었는가?
62. 62
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일커뮤니케이션
다음이터레이션계획하기
다음이터레이션에서무엇을할지계획을세운다.
팀의속도를재검토하고, 다음에는또어떤스토리들이준비되어있는지확인
팀이얼마만큼의스토리를개발할수있다고약속
미니회고진행하기
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
회고의최우선지침우리가무엇을발견하든, 여기있는모든사람이
그당시에자신들이알고있던정보와기술, 능력,
당시에사용가능했던자원그리고주어진상황에
미루어, 그들이할수있는최선을다했다는것을
진정으로이해하고믿는다.
-회고는마녀사냥이아니다.
우리가잘하고있는것은무엇인가?
우리가더향상시켜야하는것은무엇인가?
Iteration (n)
IPM
프로젝트가어떤상황인지파악하기
팀의속도재검토하기
어떤스토리를개발할지확정하기
Planning
the next week
쇼케이스
다음이터레이션계획하기
미니회고하기
Iteration (n)
IPM
프로젝트가어떤상황인지파악하기
팀의속도재검토하기
어떤스토리를개발할지확정하기
쇼케이스
다음이터레이션계획하기
미니회고하기
63. 63
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Daily Stand-up Meeting
일일스탠드업미팅
문제를풀기위한자리가아니다.
누구나참여가능하지만, 팀원만발언할수있다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Iteration (n)
Daily Stand-up Meeting
팀원들과함께할활동구성하기
짧게하기(10분)
앉지말기
1. 어제무엇을했는가?
2. 오늘은무엇을할것인가?
3. 내작업속도를늦추거나방해하는요소가있는가?
64. 64
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
애자일커뮤니케이션
10 Levels of Intimacy in today’s communication
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
65. 65
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
작업환경-시각적인작업환경조성하기
66. 66
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
진행상태보기(1/2)
릴리즈상황판
스토리보드(현재이터레이션의사용자스토리진행현황)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
완성된스토리
아직남아있는스토리
보아하니
거의절반정도
끝난것같군~
67. 67
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
진행상태보기(2/2)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
번다운차트
팀의속도–얼마나빠르게진행되고있는가?
언제쯤끝날것인가?
68. 68
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
프로젝트가원하는것…
인셉션덱의결과가모두볼수있도록되어있는가?
모두가과제를왜시작했는지, 무엇을원하는지알아야한다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
69. 69
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
의도를보여주기
작업동의서와공유하는가치
공통된도메인언어(Metaphor)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
이것이바로
우리가일하는방식이다!!!
Our Slang ?
No, It is Jargon
밥을고슬고슬하게해서요,
그위에소금에절여서양념장에무친오이를썰어서넣어주세요.
그리고쓴맛을뺀도라지를양념장에무쳐서오이옆에넣어주시고요,
소고기를채썰어서양념해서볶은후함께올려주세요,
더불어고사리도볶은후올려주시고요, 그리고계란프라이를제일위에올려주세요.
마지막으로이모든것을그냥그릇이아닌불에달군돌솥에넣어주세요..
돌솥비빔밥하나요!!!
70. 70
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
개발자책상…
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
71. 71
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
단위시험
72. 72
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
S/W 테스팅의목적
품질향상을위하여결함을발견하는것이다
품질수준에대한확신과정보를얻는다.
명세를만족시키는지확인한다.
사용자및비즈니스요구사항충족확인
결함의예방을통한리스크감소
S/W 테스팅의제한성(Limits of testing)
모든입력값을테스트할수없다.
완벽한테스트는불가능하다.
테스트는결함이없음을보여주기위한것이아니다.
S/W 테스팅의목적
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
73. 73
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스팅범위(Big Picture)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
V-Model
Different View
System Engineering
Requirements
Design
Construction
Unit Testing
Integration Testing
System Testing (Software)
System Testing (Final)
Methods
Combinations of
methods in class
Packages of classes
OO:
Include use-cases
Function
Module
Module combination
Integration tests
System tests
Unit tests
74. 74
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스팅타입
Block-, Gray, -& White-Box Testing
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Black box
… requirements
Actual output
compared with
required output
White box
Gray box
… requirements &
key design elements
Input determined by...
Result
…design
elements
Confirmation
of expected
behavior
As for black-and white box testing
75. 75
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
단위테스트
단위테스트는
각각이독립적으로테스트되어야한다.
최소한한번은모든컴포넌트가테스트되어야한다.
결함을쉽게골라낼수있어야한다.
테스트범위가작을수록, 결함을고치기가쉬워진다.
Isolatable, Repeatable, Automatable, Easy to Write
단위테스트의효과
빠르게디버깅할수있다.
개발시간을단축시킨다.
더좋은설계를하도록유도한다.
회귀테스트를쉽게하도록한다.
미래의결함비용을줄인다.
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
76. 76
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스트단위
Unit
독립적으로테스트할수있는소프트웨어의코드조각
Unit Test
단위테스트코드는다른코드부분을호출한다.
단위테스트는임의의가정에대한정확성을검증한다.
만약가정이사실이아닌것으로판명된다면, 단위테스트는실패
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
public class MyMath
{
public int Add(int i, int j)
{
return i + j;
}
}
public void MyAddTest()
{
MyMath m = new MyMath();
Assert.AreEqual(m.Add(2, 3), 5);
}
77. 77
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Unit Test Roadmap
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Unit test plan
Products of
prior testing
Test
results
Code
under test
Identify largest
trouble spots
Requirements
Detailed design
Test set
IEEE, 1986
78. 78
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스트환경
Driver
테스트입력을공급하거나테스트항목을호출하고테스트결과를보고하는프로그램.
Stub
특정시스템컴포넌트의개발이완료되지않은상황에서도필요한시험을진행하기위해생성된더미컴포넌트
단위테스트환경구성
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Test cases
Driver
Test Results
Module to Test
Stub
Stub
Stub
79. 79
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
TDD Tools
xUnit
Test Framework for Specific Language
JUnit, NUnit, CPPUnit, PyUnit, VBUnit, PearlUnit…
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
80. 80
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
고급단위테스팅이슈
가상객체(Mock Objects)
무엇을, 얼마나테스트해야하나?
발견되는결함의수
추가된기능
테스트수행시간(Test Running Time Optimize)
코드커버리지(Code Coverage)
테스트구성관리
지속적인통합(Continuous Integration)
단일/ 분산개발(Local / Remote Development)
고급단위테스팅
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
81. 81
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
리팩토링(Refactoring)
82. 82
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
리팩토링
리팩토링의정의
왜리팩토링을해야하는가?
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
리팩토링(Refactoring) n. :
현재존재하는코드를재구성하는잘다듬어진기법으로,
S/W의외부적행동변화없이내부적구조를변경하는방법
리팩토링하기(Refactor) v. :
리팩토링을연속적으로적용하여소프트웨어를재구성하는것
소프트웨어디자인개선
코드를쉽게이해하게함
버그를쉽게찾을수있음
개발기간을단축
83. 83
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
리팩토링
언제리팩토링을해야하는가?
‘3’의원칙
새로운기능을추가할때
버그를수정해야할때
코드의이해하는데도움을줌
코드리뷰를수행할때: 새로운아이디어를보다쉽게적용
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
뜨거운라면을맨손으로먹겠다
다시한번…
새로운방법을찾았다
1. 어떤일을첫번째로한다면그냥그일을하라
2. 비슷한일을다시한다면내키지않아도, 같은일을중복하라
3. 어떤비슷한일을세번째로한다면리팩토링하라
수정할부분의코드를이해하는데도움을줌
새로운기능이쉽게추가될수있도록디자인을변경할수있게함
84. 84
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
코드의나쁜냄새(Bad Smells in Codes)
정의
잠재적인문제를가리키는프로그램코드의증상들
특성
코드디자인이취약한경우나타남(But Not Bug)
개발속도지연, 결함(Defect),시스템장애(Failure)발생원인
•예) 지나치게긴메소드, 중복된메소드나코드등
코드의나쁜냄새는리팩토링을시작해야함을알려줌
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
int func1() {
….
}
<Long Method>
int func1() {
…
result = calc(a,b,c);
…
print_result(result);
…
}
int result (int a, int b, int c) {
…
return result;
}
void print_result(int r)
{
…
}
•복잡한내용
•이해가어려움
•유지보수가어려움
•기능별재사용이어려움
•메소드가간략해짐
•이해가쉬워짐
•유지보수가쉬워짐
•기능별재사용가능
코드의나쁜냄새와리팩토링의예
85. 85
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
리팩토링과테스트
리팩토링과테스트
테스트는리팩토링에필수요소임
리팩토링후‘소프트웨어의외부적행동변화없음’을확인하는방
•테스트(주로단위테스트, 필요시패키지테스트)
리팩토링에사용될테스트의조건
자동화: 리팩토링작업중매우많이테스트수행테스트자동화
테스트수행직후결과(Pass/Fail)확인가능할것
•판단시간을줄임
테스트수행시점
리팩토링전: 결함없는코드임을확인
리팩토링중각단계마다(코드수정직후):
•코드수정이기능에영향을주는지확인
리팩토링후
•리팩토링작업이기능에영향을주는지확인
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
86. 86
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
리팩토링분류기법
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
이름
설명
대표기법
메소드정리(Composing Methods)
•긴메소드를정리하는데필요한기법
•긴메소드에서작은메소드를추출하는방법
•메소드추출을위해변수를정리하는방법
•메소드의쉬운이해를위해코드를개선하는방법
Extract Method, Replace Temp withQuery, Split Temporary Variable
객체간기능이동
(Moving Features Between Objects)
•객체간기능이동을통해‘책임’울명확하게지정
•객체간메소드를이동하는방법
•객체간필드를이동하는방법
•새로운객체를추출하고, 기능을정리하는방법
MoveMethod, Move Field
데이터조직화
(Organizing Data)
•데이터를좀더쉽게다루기위한기법
•데이터필드의접근성제어방법
•다양한타입을객체로변경하는방법
•객체간의링크를단순화하는기법
SelfEncapsulate Field
조건형식간소화
(Simplifying Conditional Expressions)
•조건형식을단순화하기위한기법
•조건형식을단순화하는방법
•컨트롤플래그를제거하는방법
•switch문을제거하는방법
Decompose Conditional
메소드호출간소화
(Making Method Calls Simpler)
•인터페이스를직관적으로만드는기법
•메소드의이름변경및파라메터조정하는방법
•메소드를기능별로분리하는방법
Rename Method, Add Parameter
일반화다루기(Dealing with Generalization)
•효율적인상속관계를만드는기법
•상속구조에서메소드의위치를이동하는방법
•새로운클래스생성&상속구조변경방법
•생성자의위치를이동하는방법
Pull Up Field, Pull Up Method, Push Down Field, Push Down Method
87. 87
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Coding Standard
Coding Standard (Small View)
일치된coding style and practices
clean code and “적절한” code를정의한다.
정신없는코드를제거한다. (ex. 너무많은arguments)
목표는누가그코드를보더라도쉽게이해할수있으며,
누가만든코드인지코드만으로판별을못하게한다.
Standards evolve over time
Coding 영역외에서도사용이된다. (Documents, E-mail)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
88. 88
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스트주도개발(TDD)
89. 89
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스트주도개발(TDD)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Testing
TDD
Design
Implement
Test
Design
Implement
Test
90. 90
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
테스트주도개발
Workflow
0. Read Requirement
1. Add a test
2. Run Test (Make it Fail)
3. Implementation
4. Run Test (Make it Work)
5. Refactoring (Make it Better)
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Need
Simple code
Bad smell?
통과
Simplicity
Test
Refactoring
Code
실패하는
테스트코드
작성
테스트를
통과하는
코드작성
코드의
중복을
제거
N번
Refactoring
The only tests
relevant to TDD is
Black-box Unit Testing
91. 91
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Writing Good Tests (1/2)
Better Test Practices
Tests must be Small
Easy to understand
They do not break when other parts of the code are changed
One behavioral-assert per test
Test must be Expressive
Test code should communicate its intent
It should not take more than 2 minutes for readers to understand what is going on.
Tests must be Maintainable
When a test breaks, what it contains should be easiest to fix
Tests must execute Fast
Slow running tests increase Build Viscosity
Tests are Specifications, not Verifications
Specify what should the code do to function correctly
Tests are should talk the Domain Language
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
92. 92
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Writing Good Tests (2/2)
Better Test Practices (cont.)
Tests must run at will
Able to write and execute tests without worrying about how to execute them
Test must be Isolated
Very little set-up and minimum collaborators
Tests must be Thorough
Test all behavior, not methods
Test must be Automated
Write them such that methods on objects are invoked by code rather then by hand
Tests must be Self-Verifiable
Setup test expectation and compare outcome with expectations for verdicts
Tests must be Repeatable
The same conditions must yield same results
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
93. 93
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
지속적인통합
94. 94
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
지속적인통합(Continuous Integration)
지속적인통합이란…
팀구성원들이작업한것을자주통합하는S/W 개발실천방법
지속적으로퀄리티컨트롤을적용하는프로세스를실행
소프트웨어의질적향상
소프트웨어배포시간의단축
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
개발자
개발자
개발자
변경사항Commit
Polling
Feedback
빌드스크립트
CI 서버
Code Repository
통합빌드머신
소스코드컴파일
DB 통합
테스트수행
소프트웨어배포
95. 95
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
지속적인통합(Continuous Integration)
지속적인통합의장점
S/W 위험요소감소
결함조기발견
S/W 상태측정이가능
불확실성감소
프로젝트가시성향상
빌드상태, 품질지표제공
반복적인프로세스감소
배포가능한S/W생성
팀원모두가최신의빌드결과를공유
개발팀의S/W 제품에대한자신감향상
CI는XP의Practices 중하나…
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
Check in Code
Build
Kicks Off
Tests are Run
Results
Sent
< 1 hour
96. 96
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
지속적인통합(Continuous Integration)
S/W 위험요소들과자동화프로세스
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
S/W 위험요소
자동화프로세스
CI자동화Tool
■배포가능한S/W부재
-빌드실패
-DB 동기화실패
-배포실패
-소스컴파일
-DB Script 테스트
-릴리즈
■뒤늦은결함발견
-회귀테스트부재
-테스트적용범위부재
-테스트수행
-테스트적용범위측정
■프로젝트가시성부재
-자동화된피드백부재
-S/W 시각화역량부재
-통합결과피드백
-각종다이어그램생성
-Dash board
■저품질S/W
-코딩표준비준수코드
-설계지침비준수코드
-중복코드
-복잡한코드
-코딩표준준수여부검사
-설계지침준수여부검사
-중복코드검사
-코드복잡도검사
97. 97
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
지속적인통합(Continuous Integration)
CI 수행지침
Maintain a Single Source Repository
Automate the Build
Make Your Build Self-Testing
Everyone Commits To the Mainline Every Day
Every Commit Should Build the Mainline on an Integration Machine
Keep the Build Fast
Test in a Clone of the Production Environment
Make it Easy for Anyone to Get the Latest Executable
Everyone can see what’s happening
Automate Deployment
애자일의핵심
애자일팀
인셉션덱소개
인셉션덱리스트
사용자스토리
애자일추정
애자일계획
이터레이션관리
애자일커뮤니케이션
작업환경
단위시험
리팩토링
테스트주도개발
지속적인통합
98. 98
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Agile 방법론-eXtreme Programming & SCRUM
99. 99
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
XP Introduction
익스트림프로그래밍(http://www.extremeprogramming.org)
기본개념은여러가지효과가좋은실천방법(XP Rules)을극한으로실천하는것
전통적인소프트웨어개발방법론과는달리문서를강조하지않고변경을장려
모호하고빠르게변하는요구사항을가지고일을하는중소규모팀을위한경량화된방법론(Kent Beck)
XP 특징
5명에서10명정도로구성된프로그래머가고객과함께한장소에서일한다.
개발은점진적으로이루어지고, 각단계마다산출물의기능을덧붙여나간다.
요구사항정의시에는사용자가새로운기능을스토리형태로구체적으로작성한다.
프로그래머는엄격한코딩규칙을준수하고, 짝(Pair)을이루어일하며, 단위테스트를실시한다.
요구사항, 아키텍처, 디자인은프로젝트중간에언제든지발생한다.
100. 100
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
XP Process and Rules
익스트림프로그래밍프로세스
개발프로세스는Iteration과Small Releases가특징
XP Practices는개인, 소규모팀, 조직에적용가능한것으로분류됨
Rules of XP (http://www.extremeprogramming.org/rules.html)
개인
소규모팀
조직
Planning
Managing
Designing
Coding
Testing
User storiesare written.
Release planningcreates the release schedule.
Make frequent small releases.
The project is divided into iterations.
Iteration planningstarts each iteration
Give the team a dedicated open work space.
Set a sustainable pace.
A stand up meetingstarts each day.
The Project Velocityis measured.
Move people around. Fix XPwhen it breaks.
Simplicity.
Choose a system metaphor.
Use CRC cardsfor design sessions.
Create spike solutions to reduce risk.
No functionality is added early
Refactorwhenever and wherever possible
The customer is always available.
Code must be written to agreed standards.
Code the unit test first.
All production code is pair programmed.
Only one pair integrates code at a time.
Integrate often.
Set up a dedicated integration computer.
Use collective ownership.
All code must have unit tests.
All code must pass all unit testsbefore it canbe released.
When a bug is foundtests are created.
Acceptance testsare run often and the scoreis published
101. 101
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
XP Values
Communication
Feedback
Simplicity
Courage
Respect
잘되는가장
단순한방법으로한다
팀원간의상하관계나
중요도의차이는없다고생각한다.
프로그래밍과설계에있어서
개발자간의의사소통에노력한다
사업목적에대하여프로젝트팀과
고객의이해를도우며서로조율한다.
코드를작성하기전테스트케이스를,
가장간단한솔루션을선택할수있는,
빠르고즉각적인피드백을줄수있는,
코드를리팩토링할수있는..
그런용기!!!
우리가
추구하는가치들
102. 102
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
XP Practices
Practices
프로젝트를진행하면서지켜야하는규칙
고정된것이아니라팀원들의논의하에조정또는개선이가능하다.
아래의12가지Practices를개발동안에실천하는것이XP방법론의핵심
On-Site Customer (WholeTeam)
개발은whole team의지속적인의사소통으로이루어진다
팀원들은다른팀원들과최소의노력, 기다림으로의사소통및개발
The Planning Game
개발계획을대략적으로수립을먼저하고점진적으로개선한다
Small Releases
결과물(S/W)를매iteration마다release한다최종산출물에대한예측
Testing (TDD)
“동작하는깨끗한코드(clean code that works)”를개발이목표
Simple Design
지속적인테스트와코드개선을S/W 디자인을simple하게유지
Pair Programming
모든코드는최소한한번의리뷰를거치게된다
Refactoring
동일한기능에대한디자인이지속적으로개선이되도록한다
Continuous Integration
매일여러번의통합과정을수행한다위험요소제거및비용절감
Collective Ownership
모든개발자들은어떤부분의코드라도접근하고수정을할수있어야한다
Coding Standard
목표는누가그코드를보더라도쉽게이해할수있으며, 누가만든코드인지코드만으로판별을못하게한다(일치된coding style)
Metaphor
팀원들간의의사소통을위해서필요하다
이상적인모델과언어는Actual problem domain에있다
40-HourWeek
피로누적에따른project 위험을낮출수있다
인위적인요소를고려피로와스트레스는생산성을낮춘다
103. 103
Time goes now
What’s your point ? This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
SCRUM Introduction
Scrum의 정의 (http://www.scrumalliance.org)
반복적이며 점진적인 소규모 팀 중심의 개발 방법론
팀을 여러 가지 분열과 방해 요소로부터 보호
빠르고 반복적으로 실제 동작하는 Software 제공
요구사항에 변경에 빠르게 대처
소통을 향상하고 협동심을 극대화
SCRUM Elements
SCRUM Team
프로젝트 팀을 의미하며 일반적으로 5~10명으로 구성된다
- Scrum Master : 방해 요소의 제거
- Product owner : 무엇이 언제, 어느 주기에 되어야 하는지를 결정
Product Backlog
Product의 현재 파악된 모든 requirement들의 리스트
- Product Owner에 의하여 관리되며, 필요 시 수정 가능
Sprint Backlog
이번 Sprint에서 개발을 할 예정이거나 하고 있는 우선 순위로 리스트 된
Product Backlog item들
현재 수행 중인 Sprint 기간 동안에는 변경되지 않음
Sprint 개발과 테스트가 진행되도록 지정된 기간 (2~4주)
Daily Stand-up Meetings
스크럼 팀이 매일 진행하는 Stand-up 미팅 (15분 정도)
다른 팀도 참석 가능하나 발언은 오직 SCRUM 팀만 가능
팀원들의 개발 상황과 현황을 Tacking
Burndown Chart
Sprint 기간 동안에 개발된 Sprint Backlog 비율을 표시하는 chart
개발 진행 속도와 추진 사항을 한 눈에 심플하게 볼 수 있음
지속적인 업데이트와 관리가 용이해야 함
Incremental Delivery
Sprint 과정의 결과물
테스트가 되었으며, 동작이 되는 실전 배치가 가능한 개발 결과
Progress
752 762
664
619
304
264
180
104
0 20
100
200
300
400
500
600
700
800
900
5/3/2002
5/5/2002
5/7/2002
5/9/2002
5/11/2002
5/13/2002
5/15/2002
5/17/2002
5/19/2002
5/21/2002
5/23/2002
5/25/2002
5/27/2002
5/29/2002
5/31/2002
Date
Remaining Effort in Hours
104. 104
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
SCRUM Process
105. 105
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
스크럼주요요소
제품책임자가참여.
제품책임자가최신제품
Backlog를가져온다.
팀전체가참여한다.
회의후스프린트계획을정리
팀전체가동의할계획인지확인
제품책임자가계획우선순위의
타당성확인
Sprint Planning Meeting
아이템의목적을정의
우선순위정리(내림차순정렬)
(Business Need최우선)
추정치는팀에의해산정기록
스프린트에적당한아이템배분
상위아이템들의추정치정리
Product Backlog
팀전체가참여한다.
문제점과장애요인들을찾아낸다.
Daily Scrum
매스프린트종료후데모를함
동작되는테스트된S/W 보여줌
이해당사자와제품책임자에게
피드백을받는다.
Sprint Demo
이터레이션길이를4주이하로
고정한다.
항상제때에마친다.
팀이외부로부터방해받거나
통제되지않게한다.
팀은하기로약속한것들을
해낸다.
Sprint
구체적인개선안들을도출
개선안들의실제적용
팀전원과제품책임자가참석
Sprint Retrospective
106. 106
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Scrum for Enterprise
107. 107
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Agile Adopting
선택적Agile 기법적용
Agile 기법의선택적적용
프로젝트/팀단위최적화
Start here …
Extends …
Pervades …
XP
Engineering practices
Scrum
Elements
Lean
Sprit
Kanban
Process Design
XP
Engineering practices
Inner-Team communication Support
108. 108
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement
Reference
도서
Web Site
http://agilewarrior.wordpress.com/articles/
www.scrum.org
http://www.extremeprogramming.org/
109. 109
Time goes now
What’s your point ?
This presentation created by Youngki, Kim
Do not modify arbitrarily without agreement