애자일소프트웨어개발방법론 Agile Methodology 김창준 ( 애자일컨설팅대표 ) june@agileconsulting.co.kr
애자일컨설팅은 국내에서애자일소프트웨어개발방법론을전문적으로컨설팅하기시작한최초의회사 삼성전자 / 전기, 삼성 SDS, LG 전자, LGCNS, 팬택앤큐리텔, SKT, SK Communications, 한미연합사령부, 다음커뮤니케이션, NHN, 엔씨소프트, 한국생명공학연구원등에교육, 컨설팅, 코칭등제공
프로젝트성공과실패 성공적인프로젝트들을떠올려보자. 어떤공통점이있는가. 실패한프로젝트들을떠올려보자. 어떤패턴이보이는가.
Agile? 1. able to move quickly with skill and control 2. able to think quickly and intelligently
Agile Methodology 1990 년대중반이후부터덩치크고무거운방법론들에대한대안들이대두되기시작. 변화대응력, 민첩성등을특징으로함. 2001 년스노우버드에서로다른방법론의수장들이모여서서로의공통점을논의. 애자일방법론이라는이름을지음. 현재전세계적으로애자일방법론에대한높은관심을보이고, 점차많은성공사례들이발표되고있음.
애자일의효과
방법론별성공률비교
프로젝트성공원인
40.00 35.00 30.00 25.00 20.00 15.00 10.00 5.00 0.00 방법론별생산성비교 U.S. Average Productivity CMM1 CMM3 CMM5 Iterative OO Six-Sigma TSP/PSP Waterfall Agile/XP 100 1,000 10,000 100,000 FP (log scale) From Applied Software Measurement 3E, Capers Jones FP/Staff Month
애자일적용사례 GMS 프로젝트 ( 임베디드 ) 구성인력절반이상이임베디드초보
일정수준이하로결함률유지 70000 60000 50000 40000 30000 20000 10000 0 0 줄에서 6 만줄로코드증가했는데 Gross Lines of Code Dec ec-98 Apr pr-99 Aug ug-99 Dec ec-99 Apr pr-00 Aug ug-00 Dec ec-00 Apr pr-01 Aug ug-01 Dec ec-01 12 10 8 6 4 2 0 Number of Defects Dec-98 Apr-99 Aug-99 Dec-99 Apr-00 Aug-00 Dec-00 Apr-01 Aug-01 Dec-01 그동안결함률을일정수준이하로유지
생산성 : 임베디드업계표준에비해 292% (ESLOC/hr) 결함률 : 3 년간전체버그 51 개 임베디드업계표준 441 개 ( 동일코드크기기준 )
해외적용회사 / 프로젝트 Hewlett-Packard, IBM, Oracle, Sun Microsystems Sabre Airline Solutions, Microsoft, Google, Yahoo, Nokia, Ericsson, British Telecom, Philips Research, General Electric Healthcare, SAP, Siemens, BBC, US Federal Reserve
국내도입상황 SI 업계 : 삼성 SDS, LG CNS, 티맥스등 웹서비스업계 : NHN, 다음커뮤니케이션, 야후코리아등 게임업계 : 엔씨소프트, 네오플, 티쓰리엔터테인먼트, 엔트리브, 웹젠등 임베디드업계 : 삼성전자, LG 전자, 아이디스등 금융업계 : 퍼스트데이타코리아 ( 신용결제 VAN 사업 ) 연구조직 : 한국생명공학연구원, 서울대 / 이화여대산학협동등
애자일의핵심특징
분석설계구현테스트전개
분석설계구현테스트전개 여기까지석달걸렸는데생각한것보다조금더걸렸고한 60% 진행됐으니까 흠 두어달더있으면되겠네요.
설마가사람잡는경우
확률 / 통계의설명력 : 과거와미래에연결점이 있을때
프랙탈 ( 자기유사성 )
1 달 가치 계획조정 1 주 가치 계획조정 1 일 가치 계획조정 1 시간 가치 계획조정 10 분
리스크 / 투명성 / 가치 t
리스크 / 투명성 / 가치 t
리스크 / 투명성 / 가치 t
리스크 예측가능성 변화적응력학습속도
연속된작은개선의놀라움 매시도당 0.1% 의성공률개선이있다고한다면 1000 번의반복후에는 성공률 2.7 배
개발자 확률 갑갑해대리 90% 을화통사원 90% 90% 병따개과장정말로대리무다리사원 기똥찬사원 90% 경운기과장 90%
0.9 + 0.9 + 0.9 + 0.9 + 0.9 + 0.9 + 0.9 7 = 0.9
0.9 0.9 = 0.81
0.9 0.9 0.9 = 0.729
그리고
0.9 7 0.48
협력
버그발견의확률론 한사람이 1 시간동안핵심적인버그를발견할확률이 0.1 이라고하고, 사람이총 7 명이라고하면, 모든사람이버그를발견할확률은? 0.1^7 = 0.0000001 한사람이라도버그를발견할확률은? 1-0.9^7 = 0.53 한사람이뭔가새로운것을학습했을때, 그지식을모든사람과공유할수있다면
또는
애자일은협력을통해집단학습을가속화시키고, 결과적으로프로젝트생산성을향상시킨다.
애자일방법론의핵심 1) 세상이변하고 2) 우리가더똑똑해지는 상황하에서는 협력과집단지성을통해, 서로학습하면서큰프로젝트를여러개의작은프로젝트인것처럼만들어프랙탈적으로시도하는것이훨씬유리하다.
해외정부지원사례 Agile-ITEA (Mobile-D) 유럽연합 (9 개국 ) 에서임베디드분야를위한애자일방법론연구, 도입을지원 필립스, 노키아등참여
역사상가장생산적인팀중하나였던윈도우용볼랜드쿼트로프로개발팀은그생산성이업계평균에비해최소 20 배가넘었다. 숫자로만이야기한다면, 같은숫자의사람들로 20 년걸리는일을이사람들은 1 년이면할수있었다는말이된다.
SACWIS 주범위자동화아동복지정보시스템 (Statewide Automated Child Welfare Information System) 동일요구사항하에모든주에서 시스템을구현해야함 플로리다주대미네소타주
플로리다 1990 년프로젝트시작초기의경비예상 $32M 1998 년완료로계획 현재 109 명이작업중현재까지 $170M 사용 (2002 년 ) $230M 로추정비용정정 2005 년으로완료시점정정 IBM 컨설턴트투입
미네소타 1999 년프로젝트시작완료계획 : 99 년 9 월 Phase 1 00 년중반 Phase II 예상비용 $1.1M 2000 년초완료 8 명총 $1.1M 소요
극과극? 같은일을하는시스템인데 1990 년프로젝트시작초기의경비예상 $32M 1998 년완료로계획현재 109 명이작업중현재까지 $170M 사용 (2002 년 ) $230M 로추정비용정정 2005 년으로완료시점정정 IBM 컨설턴트투입 1999 년프로젝트시작예상비용 $1.1M 완료계획 : 99 년 9 월 Phase 1 00 년중반 Phase II 2000 년전반기완료 8 명총 $1.1M 소요
왜?
성공하는프로젝트의특징 무슨특징이있었나? 어떤조건과상황이그런성공을가능하게했을까?
성공적인팀의 7 가지특징 전세계에성공적인팀들을조사했더니다음 7 가지공통점이있었다. 특히처음세가지는거의모두에게해당했다.
Frequent Delivery 지난 6 개월간실행되고, 테스트했고, 사용가능한코드를사용자커뮤니티에최소 2 회이상제공했는가?
Reflective Improvement 지난 3 개월간최소한번은모두모여서작업습관에대해고민하고토론해봤는가? 무엇이우리의속도를높이고또무엇이속도를떨어뜨리며뭐를개선할수있는지토론해봤는가?
Osmotic Communication 당신의질문이답을가진사람의눈혹은귀에도달하는데 30 초미만이걸리는가? 최소며칠에한번은다른팀원의대화에서뭔가나에게유용한것을엿듣는가?
Personal Safety 50% 이상추정이잘못되었다고상사에게말할수있는가? 매력적인이직제안이있었다고말할수있나? 팀회의에서스케쥴에대해상사에게반대표현을할수있나? 서로의설계에대해오랜논쟁후에기분좋게 disagree 할수있나?
Focus 각자자신이해야할최고우선순위일 2 개가무엇인지모든사람이알고있나? 최소이틀연속, 매회 2 시간이상인터럽트없는시간을보장받을수있나?
Easy Access to Expert Users 시스템의사용에대해질문이생긴시점부터전문사용자가답할때까지평균 3 일이하가걸리는가? 몇시간이내에도가능한가?
Technical Environment with Automated Tests, Configuration Management, and Frequent Integration 물리적으로옆에있지않으면서시스템테스트를종료할때까지자동실행할수있는가? 모든개발자가자기코드를 CMS 에넣는가? 주당최소 2 회는통합하는가?
extreme Programming 익스트림프로그래밍
XP 란? 사회적변화의메커니즘개발스타일개선으로가는길인간성과생산성을화해하려는시도소프트웨어개발규율 (discipline)
개선 지금상황과상관없이여러분은언제나더나아질수있다. 더나아지는일은언제나스스로부터시작할수있다. 더나아지는일은언제나오늘부터시작할수있다.
XP 의차별성 짧은개발주기점진적계획접근방법비즈니스쪽의변화요구를포용자동화된테스트에의존커뮤니케이션시구두전달, 테스트, 소스코드에의존진화적설계개인들의긴밀한협력에의존단기적, 장기적모두이득이되는실천방법에의존
가치
의사소통 단순성 피드백 용기 존중
원칙
원칙 받아들인책임 흐름 인간성 경제성 상호이익 품질 자기유사성아기발걸음개선잉여다양성 기회 실패 반성
원칙 받아들인책임 흐름 인간성 경제성 상호이익 품질 자기유사성아기발걸음개선잉여다양성 기회 실패 반성
다양성잉여 원칙 반성 실패 기회 개선아기발걸음자기유사성 품질 상호이익
원칙 반성 실패 기회 개선 품질 상호이익
실천방법
10 의제곱수들
초 분 시 반일 일 주 월 짝프로그래밍 테스트우선프로그래밍 10 분빌드 점진적설계 지속적통합 정보를제공하는작업공간 함께앉기 전체팀 활기찬작업 일주일별주기스토리 여유 분기별주기 코드공유 코드와테스트 진짜고객참여 사용별지불 팀지속성 팀크기줄이기 매일배치 근본원인분석 점진적배치 단일코드기반 범위협상계약
초 분 시 반일 일 주 월 짝프로그래밍 테스트우선프로그래밍 10 분빌드 점진적설계 지속적통합 정보를제공하는작업공간 함께앉기 전체팀 활기찬작업 일주일별주기스토리 여유 분기별주기 코드공유 코드와테스트 진짜고객참여 사용별지불 팀지속성 팀크기줄이기 매일배치 근본원인분석 점진적배치 단일코드기반 범위협상계약
적용사례
Analysis Design Coding Testing - Maintenance
Analysis Design Coding Testing - Maintenance Epic User Story (prioritized) User Research/Analysis/Model Task Analysis/Model Contextual Inquiry Requirements Workshop
Analysis Design Coding Testing - Maintenance CRC Card Whiteboard Quick Design Session Spike Solution Light-weight UML Refactoring Simple System
Analysis Design Coding Testing - Maintenance Pair Programming Test Driven Development Continuous Integration Collective Code Ownership
Analysis Design Coding Testing - Maintenance Four Quadrants Exploratory Testing Computer Aided Testing Acceptance Testing Usability Testing Stress Testing Bug Hunt
Analysis Design Coding Testing - Maintenance Simple Configuration Management Bug Test Root Cause Analysis
Analysis Design Coding Testing Maintenance Learning Pair Work Project Retrospective/Review Interation Retrospective/Review Daily Scrum Meeting Self-controlled Measurement