개발자가행복해지는 Agile 김수현, 강석현 삼성전자소프트웨어센터 2016.11.17
Presenter 김수현 Agile Process Office, Software R&D center Samsung Electronics 주요경력 - Software Engineering & Programmer - Open Source Compliance & Community - Agile Coach (Certified Scrum Master) - Agile Evangelist
애자일이란? http://agilemanifesto.org/ Waterfall Model (winston W. Royce) Concept of Adaptive Software Development (Edmonds, E.A.) Rapid App. Development (James Martin) Scrum (Ken Schwaber, Jeff Sutherland) Adaptive Software Development(ASD) (Jim Highsmith, Sam Bayer) FDD (Jeff De Luca) DSDM (DSDM Consortium) Agile Manifesto 1970 1974 1991 1995 1996 1980 1990 Crystal clear (Alistair Cockburn) XP (Kent Beck, Ward Cunningham and Ron Jeftries) 2000 2001 2003 Lean SW Dev. (Marry & Tom Poppendieck) Rational Unified Process (RUP) *IBM
애자일과기업규모와의상관관계? Google 검색 Trends Agile 적용기업 SW 인력규모변화 Waterfall Process Agile Process 2006 2016 61% < 100 people 12% 100~250 people 38% < 100 people 31% 100~1.000 people 27% 250+ people 15% 1,001~5,000 people 16% 5,001+ people 2004 2006 2008 2010 2012 2014 2016 출처 : VersionOne 2016 10 th STATE of AGILE REPORT
Focus 애자일스럽다? 1 단계 2 단계 3 단계 Organization Engineering Process 출처 : scrumalliance.org
애자일프로세스? Daily Stand-up Agile 방법론만족도조사결과 - 성취목표의명확한파악및업무공유강화 - 담당업무에대한주도적인일정관리로업무효율강화 User Story Workshop [ Waterfall 대비평균 24% 향상 ] - 프로세스 35%, 과제가시화 33%, 의사소통 25% - 팀워크 19%, 개발생산성 & 품질 18% 프로세스 Sprint Planning 개발생산성 만족도 5.00 4.00 3.00 팀웍 Agile 적용후 Waterfall 2.00 Sprint Review 팀원간의의사소통 1.00 0.00 과제의 가시화 TL 과의 의사소통 SW 품질 Sprint Retrospective PL 과 의사소통
다음에해야할백로그는? Unit-Testing (63%) Continuous- Integration (50%) Test-Driven Development (33%) Continuous Deployment (27%) Pair-Programming (24%) 각 Iteration 에서의완료기준을강화하여 Potentially Shippable Product 추구 구현완료코드리뷰완료단위시험완료통합시험완료시스템시험완료사용자문서완료배포완료
Presenter 강석현 Tizen Platform Lab, Software R&D center Samsung Electronics 주요경력 - 2004년부터모바일개발업무시작 - 국방부, 농촌진흥청등스마트정보화사업 - 방송통신위원회, SKT, KT 마케팅컨쇼시엄 - 2012년삼성전자이직
Drop the beat Main Practice User Centric 매주사용자검증을통한사용자피드백에따른제품개선 Whole Team 개발자, 디자이너, PM(Product Manager) 이같은장소, 시간에서작업 Pair Work 개발자, 디자이너, PM 모두 Pair Work 수행 Test Driven Development 기능구현전해당기능의테스트코드부터작성
Main Practice (1) User Centric 매주사용자검증을통한제품개선및 Feature 우선순위조절 Product 제품가치증가 User Centric 사용자가원하는기능을우선시하여개발및불필요한기능스펙아웃 가정했던사항들의빠른불확실성제거 ( 뜬구름잡는개발 X) 개발자만족도증대 일방적인기획 & 디자인이아닌사용자피드백이적용된요구사항전달 사용자피드백을통한주인의식함양
Main Practice (2) Whole Team 개발자, 디자이너, PM 이같은장소, 시간에서작업 빠른의사결정 Whole Team 같은장소및정해진근무시간에서같이작업 Product 에대한의사결정을내릴수있는권한보유 공감대기반하나의팀 각역할자별로유연한업무배치 역할, 직책과상관없이모두동등한팀원 ( 영어호칭사용 )
Main Practice (3) Pair Work 개발자, 디자이너, PM 모두 Pair Work 수행 ( 개발자의경우매일 Pair 변경 ) 유연한대응 Pair Work 조직개편및휴가등으로팀원부재시유연한백업체제구축 신규인력투입시업무적응이쉬움 도전및배움의장 각자다른기술을보유한개발자끼리기술교류로인한기술력증대 새로운기술및방법에대한도전의식고취
Main Practice (4) TDD 기능구현전해당기능의테스트코드부터작성 개발자를위한최소한의안전장치 Test Driven Development TDD 를위한초기투자시간이필요. 단, 코드유지보수에사용되는시간이더크게감소 Side Effect 발생우려로잘못된코드도그대로방치하는현상방지 잦은변경에대한부담감해방 테스트코드사전확보로사용자검증후잦은기능변경에따른유연한대응가능 작은수정에도모든기능을다시수동으로테스트해야하는상황방지
업무중궁금했던사항 ( 프로젝트별유연대응필요 )
궁금사항 (1/4) Pair Work 시각자따로일할때보다효율이떨어지지않나요? 기본적인 Performance 는 2 보다는다소적은 1.5 정도로파악 퀄리티향상, 오류최소화및유지보수성증대를통한장기적인관점에서는높은효율 모듈별담당이 1 명씩이라 Pair Work 이불가능합니다. 모듈별담당자가아니라 Team Code 로공동관리 ex) 4 개의모듈을한팀으로묶음 인력변동이있어도유연한백업가능
궁금사항 (2/4) 우리프로그램은사용자가없는데적용가능한가요? 사용자가없는프로그램은존재할수없음 고객은외부사용자뿐만아니라누구나될수있음 디자이너가없는프로젝트의경우, 인터뷰는누가하나요? Whole Team 이기때문에역할자별업무는고정적이지않음 PM & Developer 가사용자인터뷰가능
궁금사항 (3/4) 코드리뷰는언제하나요? 개발자 Pair 가매일바뀐다면별도코드리뷰는필요없음 단, Solo Work 후다른개발자에게코드리뷰를요청하는경우있음 개발자간경험 / 실력이많이다른데 Pair Work 괜찮은가요? 경험 / 실력이많이다른경우 Pair Work 로팀개발역량향상가능 Pair Work 를통하여부족한개인역량을끌어올릴수있음
궁금사항 (4/4) 제품수정권한이팀내없습니다. 적용이가능할까요? 권한이팀내에없다면사용자인터뷰피드백에따른제품개선이느려짐 의사결정권한을이양받거나, 결정권자를팀내에포함시키길추천 Pair Work 중의견충돌로트러블이생긴적은없나요? 서로비판만하지않고사소한일에도칭찬을하는분위기조성필요 수평적조직구조를통한일방적인비난회피
THANK YOU Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED