SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
If I sleep now I will have a dream, but if I study now I will make my dream com true …
Time goes now
2015.06
SE Lab
김영기 책임
린 소프트웨어 개발
(Lean Software Development)
2
Time goes now
What’s your point ?
린 소프트웨어 개발(Lean Software Development)
 린 소프트웨어 개발
 2003SUS 메리 & 톰 포펜딕 부부 제안
 도요타의 제조 프로세스(TSP)를 소프트웨어 개발에 적용한 방법론
 목표
 시스템의 낭비를 줄이고, 고객에게 더 높은 가치를 만든다
 특징
 낭비의 제거 = 지속적인 개선
• Minimizing time
• Minimizing capital invested
• Minimizing cost
 낭비의 제거  수행 속도를 높임
 낭비의 제거는 효과적으로 품질을 개선
3
Time goes now
What’s your point ?
낭비(Waste)
 낭비
 Muda – 문자 그대로 “낭비”를 의미하지만 비 부가가치 활동을 의미
 일반적으로 소프트웨어 개발에 있어서…
 린에서 정의하는 8가지 소프트웨어 낭비들 (from Poppendieck’s)
4
Time goes now
What’s your point ?
가치(Value)
 가치(Value)
 Muda의 반대 개념
 Muda – 문자 그대로 “낭비”를 의미하지만 비부가가치 활동을 의미
 Mura – “공평”을 의미하며 “흐름의 가변성”으로 해석됨
 Muri – “과중한 부담” 또는 “불합리”를 의미
 Muda가 없는 프로세스를 통해 고객만족을 위한 제품이나 서비스를 제공
 가치의 규명 : 고객 관점에서 가치를 정의하고, 기업 관점에서 가치를 창출
가치를 제대로
정의하기는 어렵다.
그 이유는 ?
5
Time goes now
What’s your point ?
흐름(Flow)
 작업 흐름(workflow)
 비즈니스 프로세스를 수행하기 위해 일어나는 일련의 업무 흐름
 작업 흐름의 최적화
 효율성 증가 = 리드 타임 감소
 품질 향상 = 에러/낭비 감소
 생산성 증가 = 비용 감소
6
Time goes now
What’s your point ?
가치 흐름(Value Stream)
 가치 흐름 매핑(Value Stream Mapping)
1. 분석하고자 하는 제품이나 서비스를 정의한다.
2. 현재 프로세스의 스텝(Step), 대기열(queue), 지연(delay)과 정보흐름(information flow)을 식별
하는 가치 흐름 맵을 생성한다.
3. 지연(delay), 낭비(waste), 제약사항(constraints)의 발견을 위해 현재의 맵을 검토한다.
4. 지연, 낭비, 제약사항을 제거하거나 줄임으로 최적화된 미래 상태(future state)의 새로운 가치
흐름 맵을 생성한다.
5. 미래 상태를 만들 수 있는 로드맵을 만든다.
6. 후에 계속해서 조정하고 최적화히기 위해 프로세스를 다시 논의 하기 위한 계획을 세운다.
7
Time goes now
What’s your point ?
가치 흐름 맵 – 예제(1/2)
 상황) 시험에 합격한 친구를 축하하기 위해 함께 축하 케이크를 먹기로 했다.
 프로세스의 시작점과 끝점을 정의한다. (누가 시작하고, 최종 결과를 누가 얻는가?)
 기본 흐름에 초점을 둔 프로세스 상의 고수준의 단계들, 재고, 그리고 큐를 정의한다.
 모든 지원 그룹과 다른 흐름을 정의한다.
You
You &
Friend
eat cake
Cake
Selection
Unpack
& slice
Bakery
Counter
Payment
You
You &
Friend
eat cake
Bakers Sales
You
You &
Friend
eat cake
Cake
Selection
Unpack
& slice
Bakery
Counter
Payment
8
Time goes now
What’s your point ?
 예제 계속
 가치를 추가하는 활동과 가치를 추가하지 않는 활동을 측정한다.
 효율성을 계산하고, 낭비, 병목지점, 개선 작업을 정의한다.
 Total Cycle Time = Value Add Time + Non Value Add Time = 42 min
 Process Cycle Efficiency =
𝑻𝒐𝒕𝒂𝒍 𝑽𝒂𝒍𝒖𝒆 𝑨𝒅𝒅 𝑻𝒊𝒎𝒆
𝑻𝒐𝒕𝒂𝒍 𝑪𝒚𝒄𝒍𝒆 𝑻𝑰𝑴𝑬
=
𝟏𝟐 𝒎𝒊𝒏
𝟒𝟐 𝒎𝒊𝒏
= 29%
가치 흐름 맵 – 예제(2/2)
Bakers Sales
You
You &
Friend
eat cake
Cake
Selection
Unpack
& slice
Bakery
Counter
Payment
Value add
None Value add
1 min 2 min 2 min 2 min 5 min
4 min 6 min 15 min 5 min
9
Time goes now
What’s your point ?
당김(Pull)
Push Systems Pull Systems
 Schedule work releases based on demand
 Plan, Work arrival trigger production
 Inherently due-date driven
 Control release rate, observe WIP level
 미래의 예측된 결과를 기반으로 Action을 결정
 Authorize work releases based on demand
 Event, demand arrival triggers production
 Inherently rate driven
 Control WIP level, observe throughput
 과거의 정보를 끌어들여 현재의 상황에 적용
Material
Information
Material
Information
Push systems do not limit WIP in the system. Pull systems deliberately establish a limit on WIP.
(Exogenous)
Schedule
Production Process
Job
(Endogenous)
Stock Void
Production Process
Job
10
Time goes now
What’s your point ?
완전성(Perfection)
 린(Lean) 활동을 통한 개선
 여전히 시간, 공간, 노력 및 실수를 줄여서 “낭비”를 제거할 수 있는 여지가 있다.
 완전성에 이르는 방법
 지속적인 개선(Kaizen)
 급진적인 개선(Innovation)
 실제로 두 가지 방법 모두 필요
11
Time goes now
What’s your point ?
린의 원리
 가치(Value)의 규정
 고객의 관점에서 가치를 창출하는 제품이나 서비스를 정확하게 규정
 고객이 원하는 가격/장소/시간에 고객이 필요로 하는 제품/서비스 제공
 가치는 동적임, 시간이 지남에 따라 변함
 가치흐름(Value Stream)의 개선
 가치흐름
 제품의 완성이나 서비스의 전달을 위한 모든 처리 단계와 과정
 제품이나 서비스의 생산공정에 대해 가치흐름을 파악, 연구 및 개선
 가치를 부가하지 않는 처리 단계 제거
 공정흐름(Flow)의 개선과 낭비 제거
 공정 내의 흐름을 단순하고, 원활하며, 실수가 없게 함으로써 낭비를 피함
 낭비 제거
 제품이나 서비스의 가치에 기여하지 못하는 것은 모두 낭비!
 낭비는 가치는 추가하지 못하면서 오히려 비용만 발생
12
Time goes now
What’s your point ?
린의 7가지 개발 원칙
원 칙 설 명
1. 낭비를 제거하라
(Eliminate waste)
 고객에게 가치를 전달하지 않는 모든 것이 낭비이다.
 모든 낭비를 제거함으로 기간을 단축하라.
2. 품질을 내재화하라
(Integrating Quality)
 결함을 예방하는 테스트를 통해 코드의 품질을 내재화하라.
3. 지식을 창출하라
(Creating Knowledge)
 잦은 반복(Iteration)과 고객의 피드백을 통해 경험과 지식을 창출하라.
4. 확정을 늦춰라
(Postpone Commitments)
 예측이 아닌 사실을 기반으로 결정을 할 수 있을 때까지 확정을 늦춰라.
5. 빨리 인도하라
(Delivering Fast)
 고객의 확실한 요구사항을 파악하기 위해 제품을 가능한 빨리 인도하라.
 품질의 내재화가 필수 조건이다.
6. 사람을 존중하라
(Respect People)
 사람을 대체 가능한 인력으로 다루지 말라.
 사람을 신뢰하고, 전문 기술을 가질 수 있도록 인재를 육성하라.
7. 전체를 최적화하라
(Optimize the whole)
 부분 최적화가 전체를 최적화하지 않을 수 있다.
 문제의 근본 원인을 찾아 전체를 최적화하라.
13
Time goes now
What’s your point ?
원칙 1. 낭비를 제거하라
 낭비
 고객에게 가치를 주지 못하는 모든 것
 낭비를 줄임  리드 타임을 단축
 낭비 제거 3 단계
3. 낭비 제거
1. 가치 인지
2. 낭비 인지
“고객이 무엇이 가치가 있다고 평가할 것인가?“
“고객에게 가치를 주지 못하는 것은 무엇인가?”
“어떻게 낭비를 제거할 것인가?”
 고객의 피드백
 고객 입장에서 생각(고객과 시장은 항상 변한다)
 7가지 대표적인 낭비 사례
 가치 흐름도 작성
 낭비를 제거할 수 있는 실행력
낭비 예제
미완성 작업(Partially done work) 배포되지 않은 코드
가외 기능(Extra Processes) 필요하지 않은 기능 추가
재학습(Relearing) 알던 것을 잊었다가 다시 생각해 내는 것
이관(Handoff) 암묵지가 전수되지 못함, 한번 이관 시 지식이 누락
작업 전환(Task Switching) 작업 전환 시간 = 낭비
지연 (Delay) 다른 일을 하는 개발자를 기다림
결함(Defect) 결함은 부가적인 작업을 추가
14
Time goes now
What’s your point ?
낭비의 종류
종 류 사 례
코딩
(Waste in code development)
 미완성 작업
 일정을 지키기 못하고, 사용을 못하게 된 가능성이 있다.
 해결책: 코드 모듈화, 반복적인 개발
 결함
 결함 수정 및 반복 테스트 필요
 해결책: 테스트 스윗의 갱신, 고객 피드백
프로젝트 관리
(Waste in project management)
 추가적인 프로세스
 낭비적이고, 불필요한 문서화
 해결책: 문서 리뷰
 코드 이관
 이관 시 지식의 손실
 해결책: 이관 횟수를 줄인다  프로세스 간소화
 여분의 기능
 고객이 필요로 하지 않는 기능
 해결책: 고객과의 지속적인 상호작용을 통한 피드백
개발자
(Waste in workforce potential)
 작업 전환
 다중 작업의 비효율성
 해결책: 출시를 위한 각각의 작업에 집중
 인프라 활용이나 정보를 얻기 위한 대기
 개발자는 대기하기에는 값비싼 인력
 개발자 스스로 갖은 정보에 기반하여 판단하고 행동
15
Time goes now
What’s your point ?
원칙 2. 품질을 내재화하라
 품질의 내재화
 결함 발생 전 예방을 위한 테스트를 통한 품질의 내재화
 결함 수정을 위한 테스트가 아님
 품질 내재화의 대표적인 방법
 TDD, Continuous Integration, Pair Programming, Manage Trade-offs
16
Time goes now
What’s your point ?
Defect Prevention Process
Action Team
(Cross-organization Members)
Pervasive Actions
Process Owner
Process Improvement Team
Process Changes
Or
Tip and Technique
Root Cause &
Suggested Actions
Defect Causal Analysis Meeting
Timely Introduction
Stage Kick-off
Meeting
Reduce
Defect
Insertion
17
Time goes now
What’s your point ?
원칙 3. 지식을 창출하라
 소프트웨어 개발 = 지식 창출 프로세스
 “요구사항  설계  개발  테스트  고객 피드백”이 진행될수록 구체적인 경험(지식) 창출
 지식을 창출하는데 도움이 되는 것들
 Pair Programming, Code Reviews, Documentation
 Wiki, Knowledge sharing sessions, Trainning, Use Tools for Manage
 지식 창출 프로세스의 방해 요소
 요구 사항과 코딩의 분리 : 개발된 코드를 사용하는 고객 피드백이 제품에 미반영
 초기에 확정된 설계 : 초기 설계를 구현하는 중 얻는 지식을 코드에 반영하지 못함
 어떤 프로젝트가 좋은 프로젝트인가?
A Project
B Project
 개발 초기에 최대로 상세한 요구사항 수집
 완벽한 초기 설계
 명세서와 매우 가깝게 구현된 최종 결과물
 개발 기간 내내 시장 변화에 따라 변경된 요구사항들
 요구사항의 변화에 따라 개발 기간 내내 바뀌는 코드들
 초기 설계와 전혀 다른 최종 결과물
?
?
18
Time goes now
What’s your point ?
원칙 4. 확정을 늦춰라
 왜 확정을 늦추는가?
 결정을 미루라는 것이 아니다.
 예측 불가능하고 위험한 상황 : 정보를 최대한 많이 가지고 있을 때의 결정이 유리
 S/W 개발 환경 = 대부분 예측이 불가능한 상황
 완벽한 명세서를 가지고 개발을 시작하는 것 = 미신
 더 많은 지식을 가진 상태에서 결정을 하라.
 결정은 하되 변화를 수용할 수 있어야 한다.
• 의존성을 깨뜨려라
• 옵션을 유지하라
 돌이킬 수 없는 결정은 마지막 결정의 순간에 하라
 결정 전 가능한 많이 학습 : 설계  구현  피드백의 반복
<
19
Time goes now
What’s your point ?
원칙 5. 빨리 인도하라
 빠른 인도의 장점
 고객의 불확실성 감소  사실에 기반한 결정
 불필요한 개발로 인한 낭비 감소  비용 우위
 빠른 인도를 위한 필요조건
 Have the right people, Keep It Simple, Work as a Team
 낭비의 제거(Eliminate Waste), 품질의 내재화(Build Quality In)
 일의 양 제한 : 안정적이고 반복 가능한 속도 유지를 위한 WIP 제한
 대기행렬이론을 개발에 적용
 가동률을 강조하면 오히려 정체를 일으켜 가동률이 떨어진다
 배치 크기를 작게하고 진행중인 작업량을 줄여 주기시간을 줄여라
처리시간
어떤 시스템이 더
빠르게 일을 처리
하는가 ?
Queue
권장 출시 주기 : 2주
20
Time goes now
What’s your point ?
예제
 각 줄 서기  한 줄 서기
Ref : http://egloos.zum.com/cuttyshark/v/4993360
21
Time goes now
What’s your point ?
원칙 6. 사람을 존중하라 (1/2)
 경청
 피드백
의사 선생..
팔을 머리 위로 들 때면,
두통이 심해져요
그러면, 절대로
팔을 머리 위로
올리지 마세요
[ 잘못된 피드백 ]
좋은 피드백을 위해서는 ..
- 구체적으로 이야기하고,
- 상대의 인격을 비하하면 안되고,
- 부정적인 피드백을 피하고,
- 단순한 언어를 사용해야 한다.
22
Time goes now
What’s your point ?
원칙 6. 사람을 존중하라 (2/2)
 대화
 합의
"네가 어제 '어머니 얘는 암것도 못해요'라고 말했을 때 (관찰) 엄청 화가 났어 (느낌).
시댁에 가면 안그래도 긴장하고 불편한데 네가 그 말 하니까 완전 당황스럽더라 (느낌 again).
난 시댁에서 너랑도 시어머니랑도 즐겁고 재미있게 잘 지내고 싶어. 너랑 시어머니한테 사랑 받고 싶기도 하
고(필요/욕구).
그러니까 다음부터는 시댁에서는 가벼운 말이라도 한번만 더 생각하고 말해주었으면 좋겠어 (요청/부탁)"
대화로 부처가
될 수 있다.
사람마다 생각하는
합의의 수준이 다르다
23
Time goes now
What’s your point ?
원칙 7. 전체를 최적화하라
 문제의 근원을 생각하고 전체적인 관점에서 최적화
 가치 흐름에 초점을 맞춰라
 완전한 제품을 인도하라
 소프트웨어만이 아닌 완전한 제품을 개발
 완전한 제품은 완전한 팀에 의해 만들어진다
 측정을 통한 개선
 주기적으로 프로세스 역량을 측정
 인도되는 비즈니스 가치로 팀의 역량을 평가
 고객 만족을 평가
Ref: http://www.slideshare.net/innover/ndc08-20109236
24
Time goes now
What’s your point ?
References
25
Time goes now
What’s your point ?

Contenu connexe

Tendances

Agile - Les stories INVEST, 3C et SMART
Agile - Les stories INVEST, 3C et SMARTAgile - Les stories INVEST, 3C et SMART
Agile - Les stories INVEST, 3C et SMARTSébastien GAUDIN
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019Paulo Clavijo
 
カネとAgile #RSGT2018
カネとAgile #RSGT2018カネとAgile #RSGT2018
カネとAgile #RSGT2018Itsuki Kuroda
 
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Masashi Umezawa
 
210927 PMBOK第7版の概要
210927 PMBOK第7版の概要210927 PMBOK第7版の概要
210927 PMBOK第7版の概要Yukio TADA
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント増田 亨
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718Mao Ohnishi
 
デザイン思考による価値創造
デザイン思考による価値創造デザイン思考による価値創造
デザイン思考による価値創造UX Academy
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルMikiya Okuno
 
価値提案から始めよう
価値提案から始めよう価値提案から始めよう
価値提案から始めようTakeshi Kakeda
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)영기 김
 
PMBOKで学ぶプロジェクトマネジメントの基礎
PMBOKで学ぶプロジェクトマネジメントの基礎PMBOKで学ぶプロジェクトマネジメントの基礎
PMBOKで学ぶプロジェクトマネジメントの基礎Hiroyuki Tanaka
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し増田 亨
 
スケーラブルな Deep Leaning フレームワーク "Apache MXNet” を AWS で学ぶ
スケーラブルな Deep Leaning  フレームワーク "Apache MXNet” を AWS で学ぶスケーラブルな Deep Leaning  フレームワーク "Apache MXNet” を AWS で学ぶ
スケーラブルな Deep Leaning フレームワーク "Apache MXNet” を AWS で学ぶAmazon Web Services Japan
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer増田 亨
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかYoshitaka Kawashima
 
Windowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろうWindowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろうkeitasudo1
 
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieWstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieMaciej Grajcarek
 

Tendances (20)

Agile - Les stories INVEST, 3C et SMART
Agile - Les stories INVEST, 3C et SMARTAgile - Les stories INVEST, 3C et SMART
Agile - Les stories INVEST, 3C et SMART
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 
カネとAgile #RSGT2018
カネとAgile #RSGT2018カネとAgile #RSGT2018
カネとAgile #RSGT2018
 
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
 
210927 PMBOK第7版の概要
210927 PMBOK第7版の概要210927 PMBOK第7版の概要
210927 PMBOK第7版の概要
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
 
凝集度と責務
凝集度と責務凝集度と責務
凝集度と責務
 
デザイン思考による価値創造
デザイン思考による価値創造デザイン思考による価値創造
デザイン思考による価値創造
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
 
価値提案から始めよう
価値提案から始めよう価値提案から始めよう
価値提案から始めよう
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)
 
PMBOKで学ぶプロジェクトマネジメントの基礎
PMBOKで学ぶプロジェクトマネジメントの基礎PMBOKで学ぶプロジェクトマネジメントの基礎
PMBOKで学ぶプロジェクトマネジメントの基礎
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
スケーラブルな Deep Leaning フレームワーク "Apache MXNet” を AWS で学ぶ
スケーラブルな Deep Leaning  フレームワーク "Apache MXNet” を AWS で学ぶスケーラブルな Deep Leaning  フレームワーク "Apache MXNet” を AWS で学ぶ
スケーラブルな Deep Leaning フレームワーク "Apache MXNet” を AWS で学ぶ
 
Atomic Architecture
Atomic ArchitectureAtomic Architecture
Atomic Architecture
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
 
Windowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろうWindowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろう
 
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieWstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
 

En vedette

배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터영기 김
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략Ji-Woong Choi
 
Linux containers
Linux containersLinux containers
Linux containersLuavis Kang
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 
[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기Luavis Kang
 
[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing준일 엄
 
스크럼(Scrum)
스크럼(Scrum)스크럼(Scrum)
스크럼(Scrum)영기 김
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)영기 김
 
Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Jongwon Lee
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)영기 김
 

En vedette (11)

배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략
 
Linux containers
Linux containersLinux containers
Linux containers
 
What is agile
What is agileWhat is agile
What is agile
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 
[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기
 
[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing
 
스크럼(Scrum)
스크럼(Scrum)스크럼(Scrum)
스크럼(Scrum)
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)
 
Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1Istqb 4-테스트설계기법-2015-1
Istqb 4-테스트설계기법-2015-1
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)
 

Similaire à 린 소프트웨어 개발(Lean software development)

Sk planet 이야기
Sk planet 이야기Sk planet 이야기
Sk planet 이야기종범 고
 
Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬정 희찬
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개태준 문
 
화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법Jinsoo Hwang
 
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기Hyunjung Kim
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발혁 권
 
4강. 프로토 타이핑 (prototyping)
4강. 프로토 타이핑 (prototyping)4강. 프로토 타이핑 (prototyping)
4강. 프로토 타이핑 (prototyping)Ho Hyun Lee
 
Kakao agile 2nd story
Kakao agile 2nd storyKakao agile 2nd story
Kakao agile 2nd story호정 이
 
문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반
문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반
문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반대박성진 DaeBak.Sungjin
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개Brian HAN 한진규
 
12 해결한 도출
12 해결한 도출12 해결한 도출
12 해결한 도출humana12
 
린스타트업 이해와 Case study(Lean Startup and Case Study)
린스타트업 이해와 Case study(Lean Startup and Case Study)린스타트업 이해와 Case study(Lean Startup and Case Study)
린스타트업 이해와 Case study(Lean Startup and Case Study)Matthew Lee
 
Agile sw development 101
Agile sw development 101Agile sw development 101
Agile sw development 101Kiwon Kyung
 
Agile의 본질과 실천
Agile의 본질과 실천 Agile의 본질과 실천
Agile의 본질과 실천 Hyungseok Shim
 
프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험Jihye OK
 
클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정VMware Tanzu Korea
 
프로덕트 매니지먼트하기
프로덕트 매니지먼트하기프로덕트 매니지먼트하기
프로덕트 매니지먼트하기YOO SE KYUN
 
An Agile Retrospective Clinton Keith Gdc 2008 Agd Kor
An Agile Retrospective Clinton Keith Gdc 2008 Agd KorAn Agile Retrospective Clinton Keith Gdc 2008 Agd Kor
An Agile Retrospective Clinton Keith Gdc 2008 Agd KorPaul Jung
 

Similaire à 린 소프트웨어 개발(Lean software development) (20)

Sk planet 이야기
Sk planet 이야기Sk planet 이야기
Sk planet 이야기
 
Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
 
화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법화해 제품팀이 일하는 방법
화해 제품팀이 일하는 방법
 
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발
 
4강. 프로토 타이핑 (prototyping)
4강. 프로토 타이핑 (prototyping)4강. 프로토 타이핑 (prototyping)
4강. 프로토 타이핑 (prototyping)
 
Mibis ch15
Mibis ch15Mibis ch15
Mibis ch15
 
Kakao agile 2nd story
Kakao agile 2nd storyKakao agile 2nd story
Kakao agile 2nd story
 
문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반
문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반
문제를 드라이브하라, 퍼스널 애자일 / 퍼스널 칸반
 
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designerITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개
 
12 해결한 도출
12 해결한 도출12 해결한 도출
12 해결한 도출
 
린스타트업 이해와 Case study(Lean Startup and Case Study)
린스타트업 이해와 Case study(Lean Startup and Case Study)린스타트업 이해와 Case study(Lean Startup and Case Study)
린스타트업 이해와 Case study(Lean Startup and Case Study)
 
Agile sw development 101
Agile sw development 101Agile sw development 101
Agile sw development 101
 
Agile의 본질과 실천
Agile의 본질과 실천 Agile의 본질과 실천
Agile의 본질과 실천
 
프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험
 
클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정
 
프로덕트 매니지먼트하기
프로덕트 매니지먼트하기프로덕트 매니지먼트하기
프로덕트 매니지먼트하기
 
An Agile Retrospective Clinton Keith Gdc 2008 Agd Kor
An Agile Retrospective Clinton Keith Gdc 2008 Agd KorAn Agile Retrospective Clinton Keith Gdc 2008 Agd Kor
An Agile Retrospective Clinton Keith Gdc 2008 Agd Kor
 

Plus de 영기 김

Ms Azure fundamentals
Ms Azure fundamentalsMs Azure fundamentals
Ms Azure fundamentals영기 김
 
AWS Certified Cloud Practitioner
AWS Certified Cloud PractitionerAWS Certified Cloud Practitioner
AWS Certified Cloud Practitioner영기 김
 
Microservices
Microservices Microservices
Microservices 영기 김
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction영기 김
 
통신시스템(Wcdma network)
통신시스템(Wcdma network)통신시스템(Wcdma network)
통신시스템(Wcdma network)영기 김
 
통신시스템(Cdma network)
통신시스템(Cdma network)통신시스템(Cdma network)
통신시스템(Cdma network)영기 김
 
통신시스템(Gprs network)
통신시스템(Gprs network)통신시스템(Gprs network)
통신시스템(Gprs network)영기 김
 
소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화영기 김
 
통신시스템(Gsm network)
통신시스템(Gsm network)통신시스템(Gsm network)
통신시스템(Gsm network)영기 김
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처영기 김
 
통신시스템(Cellular concepts)
통신시스템(Cellular concepts)통신시스템(Cellular concepts)
통신시스템(Cellular concepts)영기 김
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조영기 김
 
애자일 S/W 개발
애자일 S/W 개발애자일 S/W 개발
애자일 S/W 개발영기 김
 

Plus de 영기 김 (13)

Ms Azure fundamentals
Ms Azure fundamentalsMs Azure fundamentals
Ms Azure fundamentals
 
AWS Certified Cloud Practitioner
AWS Certified Cloud PractitionerAWS Certified Cloud Practitioner
AWS Certified Cloud Practitioner
 
Microservices
Microservices Microservices
Microservices
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction
 
통신시스템(Wcdma network)
통신시스템(Wcdma network)통신시스템(Wcdma network)
통신시스템(Wcdma network)
 
통신시스템(Cdma network)
통신시스템(Cdma network)통신시스템(Cdma network)
통신시스템(Cdma network)
 
통신시스템(Gprs network)
통신시스템(Gprs network)통신시스템(Gprs network)
통신시스템(Gprs network)
 
소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화
 
통신시스템(Gsm network)
통신시스템(Gsm network)통신시스템(Gsm network)
통신시스템(Gsm network)
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
 
통신시스템(Cellular concepts)
통신시스템(Cellular concepts)통신시스템(Cellular concepts)
통신시스템(Cellular concepts)
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
애자일 S/W 개발
애자일 S/W 개발애자일 S/W 개발
애자일 S/W 개발
 

린 소프트웨어 개발(Lean software development)

  • 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 2015.06 SE Lab 김영기 책임 린 소프트웨어 개발 (Lean Software Development)
  • 2. 2 Time goes now What’s your point ? 린 소프트웨어 개발(Lean Software Development)  린 소프트웨어 개발  2003SUS 메리 & 톰 포펜딕 부부 제안  도요타의 제조 프로세스(TSP)를 소프트웨어 개발에 적용한 방법론  목표  시스템의 낭비를 줄이고, 고객에게 더 높은 가치를 만든다  특징  낭비의 제거 = 지속적인 개선 • Minimizing time • Minimizing capital invested • Minimizing cost  낭비의 제거  수행 속도를 높임  낭비의 제거는 효과적으로 품질을 개선
  • 3. 3 Time goes now What’s your point ? 낭비(Waste)  낭비  Muda – 문자 그대로 “낭비”를 의미하지만 비 부가가치 활동을 의미  일반적으로 소프트웨어 개발에 있어서…  린에서 정의하는 8가지 소프트웨어 낭비들 (from Poppendieck’s)
  • 4. 4 Time goes now What’s your point ? 가치(Value)  가치(Value)  Muda의 반대 개념  Muda – 문자 그대로 “낭비”를 의미하지만 비부가가치 활동을 의미  Mura – “공평”을 의미하며 “흐름의 가변성”으로 해석됨  Muri – “과중한 부담” 또는 “불합리”를 의미  Muda가 없는 프로세스를 통해 고객만족을 위한 제품이나 서비스를 제공  가치의 규명 : 고객 관점에서 가치를 정의하고, 기업 관점에서 가치를 창출 가치를 제대로 정의하기는 어렵다. 그 이유는 ?
  • 5. 5 Time goes now What’s your point ? 흐름(Flow)  작업 흐름(workflow)  비즈니스 프로세스를 수행하기 위해 일어나는 일련의 업무 흐름  작업 흐름의 최적화  효율성 증가 = 리드 타임 감소  품질 향상 = 에러/낭비 감소  생산성 증가 = 비용 감소
  • 6. 6 Time goes now What’s your point ? 가치 흐름(Value Stream)  가치 흐름 매핑(Value Stream Mapping) 1. 분석하고자 하는 제품이나 서비스를 정의한다. 2. 현재 프로세스의 스텝(Step), 대기열(queue), 지연(delay)과 정보흐름(information flow)을 식별 하는 가치 흐름 맵을 생성한다. 3. 지연(delay), 낭비(waste), 제약사항(constraints)의 발견을 위해 현재의 맵을 검토한다. 4. 지연, 낭비, 제약사항을 제거하거나 줄임으로 최적화된 미래 상태(future state)의 새로운 가치 흐름 맵을 생성한다. 5. 미래 상태를 만들 수 있는 로드맵을 만든다. 6. 후에 계속해서 조정하고 최적화히기 위해 프로세스를 다시 논의 하기 위한 계획을 세운다.
  • 7. 7 Time goes now What’s your point ? 가치 흐름 맵 – 예제(1/2)  상황) 시험에 합격한 친구를 축하하기 위해 함께 축하 케이크를 먹기로 했다.  프로세스의 시작점과 끝점을 정의한다. (누가 시작하고, 최종 결과를 누가 얻는가?)  기본 흐름에 초점을 둔 프로세스 상의 고수준의 단계들, 재고, 그리고 큐를 정의한다.  모든 지원 그룹과 다른 흐름을 정의한다. You You & Friend eat cake Cake Selection Unpack & slice Bakery Counter Payment You You & Friend eat cake Bakers Sales You You & Friend eat cake Cake Selection Unpack & slice Bakery Counter Payment
  • 8. 8 Time goes now What’s your point ?  예제 계속  가치를 추가하는 활동과 가치를 추가하지 않는 활동을 측정한다.  효율성을 계산하고, 낭비, 병목지점, 개선 작업을 정의한다.  Total Cycle Time = Value Add Time + Non Value Add Time = 42 min  Process Cycle Efficiency = 𝑻𝒐𝒕𝒂𝒍 𝑽𝒂𝒍𝒖𝒆 𝑨𝒅𝒅 𝑻𝒊𝒎𝒆 𝑻𝒐𝒕𝒂𝒍 𝑪𝒚𝒄𝒍𝒆 𝑻𝑰𝑴𝑬 = 𝟏𝟐 𝒎𝒊𝒏 𝟒𝟐 𝒎𝒊𝒏 = 29% 가치 흐름 맵 – 예제(2/2) Bakers Sales You You & Friend eat cake Cake Selection Unpack & slice Bakery Counter Payment Value add None Value add 1 min 2 min 2 min 2 min 5 min 4 min 6 min 15 min 5 min
  • 9. 9 Time goes now What’s your point ? 당김(Pull) Push Systems Pull Systems  Schedule work releases based on demand  Plan, Work arrival trigger production  Inherently due-date driven  Control release rate, observe WIP level  미래의 예측된 결과를 기반으로 Action을 결정  Authorize work releases based on demand  Event, demand arrival triggers production  Inherently rate driven  Control WIP level, observe throughput  과거의 정보를 끌어들여 현재의 상황에 적용 Material Information Material Information Push systems do not limit WIP in the system. Pull systems deliberately establish a limit on WIP. (Exogenous) Schedule Production Process Job (Endogenous) Stock Void Production Process Job
  • 10. 10 Time goes now What’s your point ? 완전성(Perfection)  린(Lean) 활동을 통한 개선  여전히 시간, 공간, 노력 및 실수를 줄여서 “낭비”를 제거할 수 있는 여지가 있다.  완전성에 이르는 방법  지속적인 개선(Kaizen)  급진적인 개선(Innovation)  실제로 두 가지 방법 모두 필요
  • 11. 11 Time goes now What’s your point ? 린의 원리  가치(Value)의 규정  고객의 관점에서 가치를 창출하는 제품이나 서비스를 정확하게 규정  고객이 원하는 가격/장소/시간에 고객이 필요로 하는 제품/서비스 제공  가치는 동적임, 시간이 지남에 따라 변함  가치흐름(Value Stream)의 개선  가치흐름  제품의 완성이나 서비스의 전달을 위한 모든 처리 단계와 과정  제품이나 서비스의 생산공정에 대해 가치흐름을 파악, 연구 및 개선  가치를 부가하지 않는 처리 단계 제거  공정흐름(Flow)의 개선과 낭비 제거  공정 내의 흐름을 단순하고, 원활하며, 실수가 없게 함으로써 낭비를 피함  낭비 제거  제품이나 서비스의 가치에 기여하지 못하는 것은 모두 낭비!  낭비는 가치는 추가하지 못하면서 오히려 비용만 발생
  • 12. 12 Time goes now What’s your point ? 린의 7가지 개발 원칙 원 칙 설 명 1. 낭비를 제거하라 (Eliminate waste)  고객에게 가치를 전달하지 않는 모든 것이 낭비이다.  모든 낭비를 제거함으로 기간을 단축하라. 2. 품질을 내재화하라 (Integrating Quality)  결함을 예방하는 테스트를 통해 코드의 품질을 내재화하라. 3. 지식을 창출하라 (Creating Knowledge)  잦은 반복(Iteration)과 고객의 피드백을 통해 경험과 지식을 창출하라. 4. 확정을 늦춰라 (Postpone Commitments)  예측이 아닌 사실을 기반으로 결정을 할 수 있을 때까지 확정을 늦춰라. 5. 빨리 인도하라 (Delivering Fast)  고객의 확실한 요구사항을 파악하기 위해 제품을 가능한 빨리 인도하라.  품질의 내재화가 필수 조건이다. 6. 사람을 존중하라 (Respect People)  사람을 대체 가능한 인력으로 다루지 말라.  사람을 신뢰하고, 전문 기술을 가질 수 있도록 인재를 육성하라. 7. 전체를 최적화하라 (Optimize the whole)  부분 최적화가 전체를 최적화하지 않을 수 있다.  문제의 근본 원인을 찾아 전체를 최적화하라.
  • 13. 13 Time goes now What’s your point ? 원칙 1. 낭비를 제거하라  낭비  고객에게 가치를 주지 못하는 모든 것  낭비를 줄임  리드 타임을 단축  낭비 제거 3 단계 3. 낭비 제거 1. 가치 인지 2. 낭비 인지 “고객이 무엇이 가치가 있다고 평가할 것인가?“ “고객에게 가치를 주지 못하는 것은 무엇인가?” “어떻게 낭비를 제거할 것인가?”  고객의 피드백  고객 입장에서 생각(고객과 시장은 항상 변한다)  7가지 대표적인 낭비 사례  가치 흐름도 작성  낭비를 제거할 수 있는 실행력 낭비 예제 미완성 작업(Partially done work) 배포되지 않은 코드 가외 기능(Extra Processes) 필요하지 않은 기능 추가 재학습(Relearing) 알던 것을 잊었다가 다시 생각해 내는 것 이관(Handoff) 암묵지가 전수되지 못함, 한번 이관 시 지식이 누락 작업 전환(Task Switching) 작업 전환 시간 = 낭비 지연 (Delay) 다른 일을 하는 개발자를 기다림 결함(Defect) 결함은 부가적인 작업을 추가
  • 14. 14 Time goes now What’s your point ? 낭비의 종류 종 류 사 례 코딩 (Waste in code development)  미완성 작업  일정을 지키기 못하고, 사용을 못하게 된 가능성이 있다.  해결책: 코드 모듈화, 반복적인 개발  결함  결함 수정 및 반복 테스트 필요  해결책: 테스트 스윗의 갱신, 고객 피드백 프로젝트 관리 (Waste in project management)  추가적인 프로세스  낭비적이고, 불필요한 문서화  해결책: 문서 리뷰  코드 이관  이관 시 지식의 손실  해결책: 이관 횟수를 줄인다  프로세스 간소화  여분의 기능  고객이 필요로 하지 않는 기능  해결책: 고객과의 지속적인 상호작용을 통한 피드백 개발자 (Waste in workforce potential)  작업 전환  다중 작업의 비효율성  해결책: 출시를 위한 각각의 작업에 집중  인프라 활용이나 정보를 얻기 위한 대기  개발자는 대기하기에는 값비싼 인력  개발자 스스로 갖은 정보에 기반하여 판단하고 행동
  • 15. 15 Time goes now What’s your point ? 원칙 2. 품질을 내재화하라  품질의 내재화  결함 발생 전 예방을 위한 테스트를 통한 품질의 내재화  결함 수정을 위한 테스트가 아님  품질 내재화의 대표적인 방법  TDD, Continuous Integration, Pair Programming, Manage Trade-offs
  • 16. 16 Time goes now What’s your point ? Defect Prevention Process Action Team (Cross-organization Members) Pervasive Actions Process Owner Process Improvement Team Process Changes Or Tip and Technique Root Cause & Suggested Actions Defect Causal Analysis Meeting Timely Introduction Stage Kick-off Meeting Reduce Defect Insertion
  • 17. 17 Time goes now What’s your point ? 원칙 3. 지식을 창출하라  소프트웨어 개발 = 지식 창출 프로세스  “요구사항  설계  개발  테스트  고객 피드백”이 진행될수록 구체적인 경험(지식) 창출  지식을 창출하는데 도움이 되는 것들  Pair Programming, Code Reviews, Documentation  Wiki, Knowledge sharing sessions, Trainning, Use Tools for Manage  지식 창출 프로세스의 방해 요소  요구 사항과 코딩의 분리 : 개발된 코드를 사용하는 고객 피드백이 제품에 미반영  초기에 확정된 설계 : 초기 설계를 구현하는 중 얻는 지식을 코드에 반영하지 못함  어떤 프로젝트가 좋은 프로젝트인가? A Project B Project  개발 초기에 최대로 상세한 요구사항 수집  완벽한 초기 설계  명세서와 매우 가깝게 구현된 최종 결과물  개발 기간 내내 시장 변화에 따라 변경된 요구사항들  요구사항의 변화에 따라 개발 기간 내내 바뀌는 코드들  초기 설계와 전혀 다른 최종 결과물 ? ?
  • 18. 18 Time goes now What’s your point ? 원칙 4. 확정을 늦춰라  왜 확정을 늦추는가?  결정을 미루라는 것이 아니다.  예측 불가능하고 위험한 상황 : 정보를 최대한 많이 가지고 있을 때의 결정이 유리  S/W 개발 환경 = 대부분 예측이 불가능한 상황  완벽한 명세서를 가지고 개발을 시작하는 것 = 미신  더 많은 지식을 가진 상태에서 결정을 하라.  결정은 하되 변화를 수용할 수 있어야 한다. • 의존성을 깨뜨려라 • 옵션을 유지하라  돌이킬 수 없는 결정은 마지막 결정의 순간에 하라  결정 전 가능한 많이 학습 : 설계  구현  피드백의 반복 <
  • 19. 19 Time goes now What’s your point ? 원칙 5. 빨리 인도하라  빠른 인도의 장점  고객의 불확실성 감소  사실에 기반한 결정  불필요한 개발로 인한 낭비 감소  비용 우위  빠른 인도를 위한 필요조건  Have the right people, Keep It Simple, Work as a Team  낭비의 제거(Eliminate Waste), 품질의 내재화(Build Quality In)  일의 양 제한 : 안정적이고 반복 가능한 속도 유지를 위한 WIP 제한  대기행렬이론을 개발에 적용  가동률을 강조하면 오히려 정체를 일으켜 가동률이 떨어진다  배치 크기를 작게하고 진행중인 작업량을 줄여 주기시간을 줄여라 처리시간 어떤 시스템이 더 빠르게 일을 처리 하는가 ? Queue 권장 출시 주기 : 2주
  • 20. 20 Time goes now What’s your point ? 예제  각 줄 서기  한 줄 서기 Ref : http://egloos.zum.com/cuttyshark/v/4993360
  • 21. 21 Time goes now What’s your point ? 원칙 6. 사람을 존중하라 (1/2)  경청  피드백 의사 선생.. 팔을 머리 위로 들 때면, 두통이 심해져요 그러면, 절대로 팔을 머리 위로 올리지 마세요 [ 잘못된 피드백 ] 좋은 피드백을 위해서는 .. - 구체적으로 이야기하고, - 상대의 인격을 비하하면 안되고, - 부정적인 피드백을 피하고, - 단순한 언어를 사용해야 한다.
  • 22. 22 Time goes now What’s your point ? 원칙 6. 사람을 존중하라 (2/2)  대화  합의 "네가 어제 '어머니 얘는 암것도 못해요'라고 말했을 때 (관찰) 엄청 화가 났어 (느낌). 시댁에 가면 안그래도 긴장하고 불편한데 네가 그 말 하니까 완전 당황스럽더라 (느낌 again). 난 시댁에서 너랑도 시어머니랑도 즐겁고 재미있게 잘 지내고 싶어. 너랑 시어머니한테 사랑 받고 싶기도 하 고(필요/욕구). 그러니까 다음부터는 시댁에서는 가벼운 말이라도 한번만 더 생각하고 말해주었으면 좋겠어 (요청/부탁)" 대화로 부처가 될 수 있다. 사람마다 생각하는 합의의 수준이 다르다
  • 23. 23 Time goes now What’s your point ? 원칙 7. 전체를 최적화하라  문제의 근원을 생각하고 전체적인 관점에서 최적화  가치 흐름에 초점을 맞춰라  완전한 제품을 인도하라  소프트웨어만이 아닌 완전한 제품을 개발  완전한 제품은 완전한 팀에 의해 만들어진다  측정을 통한 개선  주기적으로 프로세스 역량을 측정  인도되는 비즈니스 가치로 팀의 역량을 평가  고객 만족을 평가 Ref: http://www.slideshare.net/innover/ndc08-20109236
  • 24. 24 Time goes now What’s your point ? References