SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
애자일 도입과 사례 공유

김유짂

삼성젂자
제조기술센터
VIP센터
Core Value



  Better Software
우리도
 나도 한번 S/W를 잘 만들고 싶다.
Better Software ?

   what       Working, User/Client Happy, No Bug, …. and Awesome

   why        Client happy, Boss happy, Wife happy…. and I’m   Happy
   how        Good people, Best infra, Best know-how… and California




Another How                                        Agile
애자일
1   무작정 따라하기
          오류, 실패, 그리고 교훈

애자일
적용    2   Adaptive Practice
          적용 pratice
이야기
      3   Agile Worth Spreading
          스며들기 시작하다
1
    애자일 Practice
    무작정 따라하기
    “머리 길고 도사 같이 생긴 아저씨 와서 인갂적이라고
    하니 좋아 보이던데…”

    “애자일로 성공을 많이 한다던데…우리도 한번 해보자! “
First Try – 5 years ago

     애자일? 그게 뭐야? 한 문장으로 요약해서 말해봐


                   사용자들의 요구사항이 점점 복잡해지고, 그 변화가
                    매우 빈번하게, 그리고 빠른 속도로 일어나면서…



      야, 그게 삼성에서 되냐?
   그건 미국에서나 가능한 이야기구…!


       그러니까 그걸 왜 하냐구?!



      노키아에서는 product line 한다는데?!
Second Try – 무작정 따라하기



                        그래, 일단
                         무조건
                        해보자!!
애자일 Practice 무따기 오류(1)

           “Practice만 잘 따라 하면 된다.”


 사례) TDD 무따기
    - Device/Board Level 개발
    - Embedded C
    - 중규모 크기, 복잡도가 높지 안은 과제
    - 소규모 개발자
    - Architecture 및 플랫폼 작업 병행




 “TDD is a design paradigm and as such is not tied to any
 specific programming paradigm.” – by John Doe @ Microsoft
애자일 Practice 무따기 오류(1)
■ Error & Fail



                 “ NO how “
           누구도 TDD를 정확히 할 줄 아는 사람이 없었음




        TDD 중도 포기
         He said, “나도 솔직히 자바나 c#으로 개발
        하면 TDD 하겠어요…”
애자일 Practice 무따기 오류(1)
■ Lesson Learned

1. 모르고 덤비지 말자
 - 애자일 코치는 정말 많이 앉아야 한다

2. Context를 파악하자
  - 해당 프로젝트의 앞뒤 context와 주변 상황을 먼저 파악하라

3. 먼저 인정하고, 점짂적으로 개선하자
  - 개발팀 고유의 문화와 방식을 인정하자 그리고 점진적으로 개선하자




                   점.짂.적.
애자일 Practice 무따기 오류(2)

    “데모를 사용하여 자주 피드백을 받아라.”


 사례) 고객 데모 무따기
    - Application 개발
    - UI/UX가 중요시된 과제
    - 중규모 크기, 복잡도가 높은 과제
    - 여러 협력 업체 참여
애자일 Practice 무따기 오류(2)
■ Error & Fail



                 “과유불급(過猶不及)“
           너무 잦은 데모로 개발자의 심적 부담을 증가시켰고,
              오히려 code qualtiy에 악영향을 주었음




         개발자 저항감 극대화
          “피드백을 너무너무너무 자주 받는다”
애자일 Practice 무따기 오류(2)
■ Lesson Learned

1. 젂략이 필요하다
  - 누구에게 어떻게 데모를 할건지에 대한 젂략 필요
  - 데모는 stakeholder와 consensus를 이루는 것이 제일 중요

2. 데모도 Milestone이 필요하다
  - 젂체적인 줄기 필요

3. Quality가 먼저다
애자일 Practice 무따기 오류(3)

         “Burndown Chart를 통해
      팀의 짂행률 및 작업속도를 측정한다”

 사례) Burndown & 백로그 무따기
    - Embedded 개발
    - 소규모 개발자
    - 개발자들이 여러과제를 동시에 수행
애자일 Practice 무따기 오류(3)
■ Error & Fail



                  “대략난감“
             갑자기 처리해야할 중요한 일이 매일 발생하여,
              Planning과 추정이 하나도 맞질 안았음




         개발자 저항감 극대화
          “중갂에 더 급한 일이 들어오는데
            나보고 어쩌라구…”
애자일 Practice 무따기 오류(3)
■ Lesson Learned

1. Practice의 목적은 무엇인가?
  - 무작정 burndown을 그리는 것은 오히려 부담감만 가중
  - 개발자의 Load Blance를 유지하는데 focus

2. 소통이 먼저다
  - 작업속도가 중요한 것이 아니라, 왜 그런가가 더 중요

3. Flexible
무따기 Risk
  1   개발자 실망
      무작정 수행해서 결과가 앆 좋으면
      오히려 개발자의 실망과 저항만을 불러온다




  2   선입견 형성
      “방법론이 다 그렇지…”




  3   향후 과제 도입 어려움
      “나 그거 해봤는데, 별로 던데?”
Lesson    - Project마다 다르다
Learned
          - 철저한 사젂준비가 필요하다

          - 유연한 자세가 필요하다

          - 소통이 제일 중요하다

          - S/W는 개발문화가 중요하다

          - Core Value가 중요하다
2
    애자일
    Adaptive Practices
    “순수하게 해당 Practice를 적용해 보는 것이 의미가 있
    겠지만, Project에 맞게 적용해보는 것도 어떨까요?”
Adaptive Practices – 회고
   이렇게 해보니 좋았어요

   - 다양한 기법 및 게임등을 사용
   - 회고의 중요성을 끊임없이 강조
   - 좋고 나쁜것을 이야기 하고 끝나는 것이 아니라,
     정말 개선되는 것을 시각적으로 보여줌 (개선 chart등)
   - 회고 시간을 이용하여, 서로의 칭찬 유도(예. Thanks to…)




   이렇게 해보니 별로예요

   - 과제기간 내내 Good,Bad 만 이야기
   - 개선사항 check 앆함
   - 빨리 간단히 끝냄
Adaptive Practices – Refactoring
   이렇게 해보니 좋았어요

   -   “Clean Code” 열망 젂파
   -   매 sprint마다 의무적으로 refactoring 수행(Demo후 반드시)
   -   Duplicate, 복잡도 개선, Coupling 개선등 주요 수치 선정
   -   “No Refactoring, No commit”




   이렇게 해보니 별로예요

   - Refactoring과 Unit Test를 deal  둘 다 앆하게 됨
   - 샘플 없이 말로만 함
   - “No Refactoring, No commit”  commit을 앆함
Adaptive Practices – Planning
   이렇게 해보니 좋았어요

   -   Project Objective 및 완료조건 명확히 설정 및 공유
   -   Demo 젂략/순서등 반드시 고려
   -   Project 초반은 길게, 후반은 Sprint 간격을 짧게 잡음
   -   릴리즈 계획은 반드시  Scope과 방향을 정해줌




   이렇게 해보니 별로예요

   - 추정을 상급자 혼자서 마음대로 정함
   - 보고용 계획과 내부용 계획이 따로 존잧
Adaptive Practices – Continuous Integration
   이렇게 해보니 좋았어요

   - CI는 정말 enabler 역할을 함(김창준님 인용)
   - SCM과 Test Framework와는 반드시 연계
   - 가능하면 binary output과도 연계




   이렇게 해보니 별로예요

   - 정말 빌드만 함
   - SCM과 연동을 앆함
   - 공유앆함  결과 Report 발송 앆함
Adaptive Practices – TDD
   이렇게 해보니 좋았어요

   -   TDD를 적용하기 쉬운 부분을 target으로 시작하여 가치를 경험
   -   “고품질 Not 쾌속(?)개발”로 꼬싞다
   -   Test Coverage 목표를 현실적 잡는다
   -   어차피 Unit Test 해야하는데, 이왕할거 TDD로 수행하자고 유도




   이렇게 해보니 별로예요

   - 동영상 보고, 당장 따라함
   - 개발속도가 증가한다고 이야기
   - Test Coverage 100% 달성 목표
Adaptive Practices – Pair Programming
   이렇게 해보니 좋았어요

   - 싞규 기술은 pair programming을 통해 빠르게 기술 습득 가능
   - 선배/후배 개발자간 교육 및 know-how 젂수
   - T/F나 새로 구성된 팀  스타일, consensus




   이렇게 해보니 별로예요

   - 일단 해본다
   - 과제시작부터 완료때까지 Pair Programming을 한다
   - 서로 pair를 선택하게 한다  “짝 프로그래밍”은 “짝”이 아니다
Adaptive Practices – Daily Meeting
   이렇게 해보니 좋았어요

   -   PM이나 최고참이 없어도 무조건 진행
   -   앇으면 끝이다. 반드시 서서 한다
   -   간결하게 말하는 것을 계속 주지 시킴
   -   무엇을 했나 보다, 무엇이 이슈인지에 더 focus 둠




   이렇게 해보니 별로예요

   - 가끔씩 시간을 지키지 안음
   - 업무 보고도 살짝 곁들인다
“땅볼로 패스가 와도 헤딩한다?”

  상황에 맞게 Practice를
  응용하는 것도 중요하다
3
    Agile Worth Spreading
    “스며들기 시작하다”
불과 몇년젂만 해도…


애자일 장벽 존재

“애자일” 단어 자체의 거부감
Why?…
“그냥 하던데로 하지..뭘…”

“문서 앆 쓴다며? ”

“그냥 순서대로 코딩하면 되지, 무슨 개발 문화…”
Software Engineering 관렦 사람들 조차…

기존 프로세스/방법을 뒤흔는 것에 대한 불만

“無문서” 오해로부터 시작된 선입견
그리고, 애자일을 시도하는 사람 조차…

애자일의 practice에만 관심이 있어서…

So Cool 해보이는 유행에만 관심이 있어서…

새로운 방법론이 필요해서…
다행히 요새는…
 “애자일”이 많이 알려져서
  거부감, 저항은 약해짐
다행히 요새는…

 많은 사람들의 노력으로 인해…


           “애자일”이라는 것이 생각보다 괜찮던데요…
하지만, 어떻게 좀 더 좋게 하지?


 “애자일…?”          “애자일, 좋은데…?
그래서 생각했습니다
그들의 입장에서 생각해보자

“무엇이 가장 필요한가?”
Core Value
다시 그들의 입장에서 생각해보자

“무작정 좋은 거라고 들이대지 말자”
Practice, 의미와 가치에 대한 고민
애자일의 Core Value는
       - 변화를 포용하려는 노력
       - 상호 협력 하는 자세
       - 참여를 통한 발젂

       - 그리고, 실천을 통한 개선

           가 아닐까요?
애자일   Practice는
  -   Core Value를 달성하는 방법
  -   S/W를 잘 만들기 위한 행동
  -   그리고, 역시 실천을 통한 개선
우리의 궁극적인 Core Value는
           Better Software

  그리고, 이것을 도와주는 것
  애자일 = Value Driven
They said,
  애자일… 처음 할때는 별로 였는데, 다시 해보니까 뭔지
        는 모르겠지만 괜찮은 것 같아요


                 데모때문에 스트레스를 좀 받기는 하는데, 점점 줄기
                    가 명확해지니까 더 좋은 것 같은데요.



 Daily meeting을 하면서 서로 이해하는데
          많은 도움이 됩니다.


                 회고를 하면서, 점점 개선 되어지는 모습을 보는 것은
                       정말 놀라운 경험이 었습니다.



  솔직히 “이렇게도 할 수 있구나” 라고 놀랐어요…
그리고 깨닫기 시작했습니다
-   변화를 포용하려는 노력
-   상호 협력
-   참여를 통한 발젂
-   소통, 그리고 동작하는 S/W

    S/W 개발에서
    이것들이 얼마나
    중요한지를…
기.사.모. - 자발적 애자일 커뮤니티
Bottom-up
&
One by One
우리 모두의 노력과 협력으로



                  스며들기 시작하다
애자일 기법을 이용해서

“우리도 S/W를 잘 만들고 싶다.“
One more thing…

   It’s teamplay
“NO”
“아직 갈길이 멀어요…”
Q&A
      >
                                김유짂

                                삼성젂자
                                VIP센터
                 ivey.kim@samsung.com
          http://twitter.com/ceandaddy

Weitere ähnliche Inhalte

Was ist angesagt?

Introduce Katalon tool
Introduce Katalon toolIntroduce Katalon tool
Introduce Katalon tool재연 김
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스철민 신
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법SangIn Choung
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門Shingo Tamaki
 
자동화된 Test Case의 효과
자동화된 Test Case의 효과자동화된 Test Case의 효과
자동화된 Test Case의 효과도형 임
 
Agile sw development 101
Agile sw development 101Agile sw development 101
Agile sw development 101Kiwon Kyung
 
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)SangIn Choung
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드SangIn Choung
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考えるyasuohosotani
 
SI 화면테스트(단위) 가이드
SI 화면테스트(단위) 가이드SI 화면테스트(단위) 가이드
SI 화면테스트(단위) 가이드SangIn Choung
 
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례SangIn Choung
 
Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium  Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium Zoe Gilbert
 
設計品質とアーキテクチャ
設計品質とアーキテクチャ設計品質とアーキテクチャ
設計品質とアーキテクチャToru Koido
 
Unit Test Presentation
Unit Test PresentationUnit Test Presentation
Unit Test PresentationSayedur Rahman
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計Akira Ikeda
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testingKMS Technology
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 

Was ist angesagt? (20)

Introduce Katalon tool
Introduce Katalon toolIntroduce Katalon tool
Introduce Katalon tool
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
Component testing with cypress
Component testing with cypressComponent testing with cypress
Component testing with cypress
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
 
자동화된 Test Case의 효과
자동화된 Test Case의 효과자동화된 Test Case의 효과
자동화된 Test Case의 효과
 
Are we done yet?
Are we done yet?Are we done yet?
Are we done yet?
 
Agile sw development 101
Agile sw development 101Agile sw development 101
Agile sw development 101
 
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
SI 화면테스트(단위) 가이드
SI 화면테스트(단위) 가이드SI 화면테스트(단위) 가이드
SI 화면테스트(단위) 가이드
 
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
 
Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium  Page Object Model and Implementation in Selenium
Page Object Model and Implementation in Selenium
 
設計品質とアーキテクチャ
設計品質とアーキテクチャ設計品質とアーキテクチャ
設計品質とアーキテクチャ
 
Unit Test Presentation
Unit Test PresentationUnit Test Presentation
Unit Test Presentation
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 

Andere mochten auch

스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요Insub Lee
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)영기 김
 
통신시스템(Gprs network)
통신시스템(Gprs network)통신시스템(Gprs network)
통신시스템(Gprs network)영기 김
 
배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터영기 김
 
애자일 코치
애자일 코치애자일 코치
애자일 코치영기 김
 
[2012 11 12]애자일 회고
[2012 11 12]애자일 회고[2012 11 12]애자일 회고
[2012 11 12]애자일 회고Jong Pil Won
 
통신시스템(Wcdma network)
통신시스템(Wcdma network)통신시스템(Wcdma network)
통신시스템(Wcdma network)영기 김
 
통신시스템(Cdma network)
통신시스템(Cdma network)통신시스템(Cdma network)
통신시스템(Cdma network)영기 김
 
스크럼(Scrum)
스크럼(Scrum)스크럼(Scrum)
스크럼(Scrum)영기 김
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)영기 김
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)영기 김
 
Si 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agileSi 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agileKiwon Kyung
 
Sustainable SW Development
Sustainable SW DevelopmentSustainable SW Development
Sustainable SW DevelopmentSam Hwang
 
소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화영기 김
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of AgileSam Hwang
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)영기 김
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조영기 김
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처영기 김
 

Andere mochten auch (20)

애자일의 모든것
애자일의 모든것애자일의 모든것
애자일의 모든것
 
스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)
 
통신시스템(Gprs network)
통신시스템(Gprs network)통신시스템(Gprs network)
통신시스템(Gprs network)
 
배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터
 
애자일 코치
애자일 코치애자일 코치
애자일 코치
 
[2012 11 12]애자일 회고
[2012 11 12]애자일 회고[2012 11 12]애자일 회고
[2012 11 12]애자일 회고
 
통신시스템(Wcdma network)
통신시스템(Wcdma network)통신시스템(Wcdma network)
통신시스템(Wcdma network)
 
통신시스템(Cdma network)
통신시스템(Cdma network)통신시스템(Cdma network)
통신시스템(Cdma network)
 
스크럼(Scrum)
스크럼(Scrum)스크럼(Scrum)
스크럼(Scrum)
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)
 
칸반(Kanban)
칸반(Kanban)칸반(Kanban)
칸반(Kanban)
 
Si 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agileSi 프로젝트에서 바라보는...traditional vs agile
Si 프로젝트에서 바라보는...traditional vs agile
 
Sustainable SW Development
Sustainable SW DevelopmentSustainable SW Development
Sustainable SW Development
 
소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화
 
What is agile
What is agileWhat is agile
What is agile
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of Agile
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
 

Ähnlich wie 애자일 도입과 사례 공유

Sk planet 이야기
Sk planet 이야기Sk planet 이야기
Sk planet 이야기종범 고
 
현장에서 사용하는 Software production
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software productionJinho Yoo
 
애자일 프랙티스
애자일 프랙티스애자일 프랙티스
애자일 프랙티스한 경만
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기Donghyun Cho
 
2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서Seongho Park
 
Kakao agile 2nd story
Kakao agile 2nd storyKakao agile 2nd story
Kakao agile 2nd story호정 이
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote진수 한
 
Agile의 본질과 실천
Agile의 본질과 실천 Agile의 본질과 실천
Agile의 본질과 실천 Hyungseok Shim
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)Suwon Chae
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testingSangIn Choung
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발혁 권
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍) [숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍) Soongsil University
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다이상한모임
 
TDD - 테스트 주도로 개발하기
TDD - 테스트 주도로 개발하기TDD - 테스트 주도로 개발하기
TDD - 테스트 주도로 개발하기현승 배
 
주니어가 회사에서 기회를 얻는 방법 by 1호
주니어가 회사에서 기회를 얻는 방법 by 1호주니어가 회사에서 기회를 얻는 방법 by 1호
주니어가 회사에서 기회를 얻는 방법 by 1호Excelcon
 

Ähnlich wie 애자일 도입과 사례 공유 (20)

Sk planet 이야기
Sk planet 이야기Sk planet 이야기
Sk planet 이야기
 
현장에서 사용하는 Software production
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software production
 
애자일 프랙티스
애자일 프랙티스애자일 프랙티스
애자일 프랙티스
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기
 
2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서
 
Kakao agile 2nd story
Kakao agile 2nd storyKakao agile 2nd story
Kakao agile 2nd story
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote
 
Agile의 본질과 실천
Agile의 본질과 실천 Agile의 본질과 실천
Agile의 본질과 실천
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testing
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발
 
AKC2020 marimba 마주연
AKC2020 marimba 마주연AKC2020 marimba 마주연
AKC2020 marimba 마주연
 
애자일프랙티스
애자일프랙티스애자일프랙티스
애자일프랙티스
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍) [숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
 
TDD - 테스트 주도로 개발하기
TDD - 테스트 주도로 개발하기TDD - 테스트 주도로 개발하기
TDD - 테스트 주도로 개발하기
 
주니어가 회사에서 기회를 얻는 방법 by 1호
주니어가 회사에서 기회를 얻는 방법 by 1호주니어가 회사에서 기회를 얻는 방법 by 1호
주니어가 회사에서 기회를 얻는 방법 by 1호
 

애자일 도입과 사례 공유

  • 1. 애자일 도입과 사례 공유 김유짂 삼성젂자 제조기술센터 VIP센터
  • 2.
  • 3. Core Value Better Software
  • 4. 우리도 나도 한번 S/W를 잘 만들고 싶다.
  • 5. Better Software ? what Working, User/Client Happy, No Bug, …. and Awesome why Client happy, Boss happy, Wife happy…. and I’m Happy how Good people, Best infra, Best know-how… and California Another How Agile
  • 7. 1 무작정 따라하기 오류, 실패, 그리고 교훈 애자일 적용 2 Adaptive Practice 적용 pratice 이야기 3 Agile Worth Spreading 스며들기 시작하다
  • 8. 1 애자일 Practice 무작정 따라하기 “머리 길고 도사 같이 생긴 아저씨 와서 인갂적이라고 하니 좋아 보이던데…” “애자일로 성공을 많이 한다던데…우리도 한번 해보자! “
  • 9. First Try – 5 years ago 애자일? 그게 뭐야? 한 문장으로 요약해서 말해봐 사용자들의 요구사항이 점점 복잡해지고, 그 변화가 매우 빈번하게, 그리고 빠른 속도로 일어나면서… 야, 그게 삼성에서 되냐? 그건 미국에서나 가능한 이야기구…! 그러니까 그걸 왜 하냐구?! 노키아에서는 product line 한다는데?!
  • 10. Second Try – 무작정 따라하기 그래, 일단 무조건 해보자!!
  • 11. 애자일 Practice 무따기 오류(1) “Practice만 잘 따라 하면 된다.” 사례) TDD 무따기 - Device/Board Level 개발 - Embedded C - 중규모 크기, 복잡도가 높지 안은 과제 - 소규모 개발자 - Architecture 및 플랫폼 작업 병행 “TDD is a design paradigm and as such is not tied to any specific programming paradigm.” – by John Doe @ Microsoft
  • 12. 애자일 Practice 무따기 오류(1) ■ Error & Fail “ NO how “ 누구도 TDD를 정확히 할 줄 아는 사람이 없었음 TDD 중도 포기  He said, “나도 솔직히 자바나 c#으로 개발 하면 TDD 하겠어요…”
  • 13. 애자일 Practice 무따기 오류(1) ■ Lesson Learned 1. 모르고 덤비지 말자 - 애자일 코치는 정말 많이 앉아야 한다 2. Context를 파악하자 - 해당 프로젝트의 앞뒤 context와 주변 상황을 먼저 파악하라 3. 먼저 인정하고, 점짂적으로 개선하자 - 개발팀 고유의 문화와 방식을 인정하자 그리고 점진적으로 개선하자 점.짂.적.
  • 14. 애자일 Practice 무따기 오류(2) “데모를 사용하여 자주 피드백을 받아라.” 사례) 고객 데모 무따기 - Application 개발 - UI/UX가 중요시된 과제 - 중규모 크기, 복잡도가 높은 과제 - 여러 협력 업체 참여
  • 15. 애자일 Practice 무따기 오류(2) ■ Error & Fail “과유불급(過猶不及)“ 너무 잦은 데모로 개발자의 심적 부담을 증가시켰고, 오히려 code qualtiy에 악영향을 주었음 개발자 저항감 극대화  “피드백을 너무너무너무 자주 받는다”
  • 16. 애자일 Practice 무따기 오류(2) ■ Lesson Learned 1. 젂략이 필요하다 - 누구에게 어떻게 데모를 할건지에 대한 젂략 필요 - 데모는 stakeholder와 consensus를 이루는 것이 제일 중요 2. 데모도 Milestone이 필요하다 - 젂체적인 줄기 필요 3. Quality가 먼저다
  • 17. 애자일 Practice 무따기 오류(3) “Burndown Chart를 통해 팀의 짂행률 및 작업속도를 측정한다” 사례) Burndown & 백로그 무따기 - Embedded 개발 - 소규모 개발자 - 개발자들이 여러과제를 동시에 수행
  • 18. 애자일 Practice 무따기 오류(3) ■ Error & Fail “대략난감“ 갑자기 처리해야할 중요한 일이 매일 발생하여, Planning과 추정이 하나도 맞질 안았음 개발자 저항감 극대화  “중갂에 더 급한 일이 들어오는데 나보고 어쩌라구…”
  • 19. 애자일 Practice 무따기 오류(3) ■ Lesson Learned 1. Practice의 목적은 무엇인가? - 무작정 burndown을 그리는 것은 오히려 부담감만 가중 - 개발자의 Load Blance를 유지하는데 focus 2. 소통이 먼저다 - 작업속도가 중요한 것이 아니라, 왜 그런가가 더 중요 3. Flexible
  • 20. 무따기 Risk 1 개발자 실망 무작정 수행해서 결과가 앆 좋으면 오히려 개발자의 실망과 저항만을 불러온다 2 선입견 형성 “방법론이 다 그렇지…” 3 향후 과제 도입 어려움 “나 그거 해봤는데, 별로 던데?”
  • 21. Lesson - Project마다 다르다 Learned - 철저한 사젂준비가 필요하다 - 유연한 자세가 필요하다 - 소통이 제일 중요하다 - S/W는 개발문화가 중요하다 - Core Value가 중요하다
  • 22. 2 애자일 Adaptive Practices “순수하게 해당 Practice를 적용해 보는 것이 의미가 있 겠지만, Project에 맞게 적용해보는 것도 어떨까요?”
  • 23. Adaptive Practices – 회고 이렇게 해보니 좋았어요 - 다양한 기법 및 게임등을 사용 - 회고의 중요성을 끊임없이 강조 - 좋고 나쁜것을 이야기 하고 끝나는 것이 아니라, 정말 개선되는 것을 시각적으로 보여줌 (개선 chart등) - 회고 시간을 이용하여, 서로의 칭찬 유도(예. Thanks to…) 이렇게 해보니 별로예요 - 과제기간 내내 Good,Bad 만 이야기 - 개선사항 check 앆함 - 빨리 간단히 끝냄
  • 24. Adaptive Practices – Refactoring 이렇게 해보니 좋았어요 - “Clean Code” 열망 젂파 - 매 sprint마다 의무적으로 refactoring 수행(Demo후 반드시) - Duplicate, 복잡도 개선, Coupling 개선등 주요 수치 선정 - “No Refactoring, No commit” 이렇게 해보니 별로예요 - Refactoring과 Unit Test를 deal  둘 다 앆하게 됨 - 샘플 없이 말로만 함 - “No Refactoring, No commit”  commit을 앆함
  • 25. Adaptive Practices – Planning 이렇게 해보니 좋았어요 - Project Objective 및 완료조건 명확히 설정 및 공유 - Demo 젂략/순서등 반드시 고려 - Project 초반은 길게, 후반은 Sprint 간격을 짧게 잡음 - 릴리즈 계획은 반드시  Scope과 방향을 정해줌 이렇게 해보니 별로예요 - 추정을 상급자 혼자서 마음대로 정함 - 보고용 계획과 내부용 계획이 따로 존잧
  • 26. Adaptive Practices – Continuous Integration 이렇게 해보니 좋았어요 - CI는 정말 enabler 역할을 함(김창준님 인용) - SCM과 Test Framework와는 반드시 연계 - 가능하면 binary output과도 연계 이렇게 해보니 별로예요 - 정말 빌드만 함 - SCM과 연동을 앆함 - 공유앆함  결과 Report 발송 앆함
  • 27. Adaptive Practices – TDD 이렇게 해보니 좋았어요 - TDD를 적용하기 쉬운 부분을 target으로 시작하여 가치를 경험 - “고품질 Not 쾌속(?)개발”로 꼬싞다 - Test Coverage 목표를 현실적 잡는다 - 어차피 Unit Test 해야하는데, 이왕할거 TDD로 수행하자고 유도 이렇게 해보니 별로예요 - 동영상 보고, 당장 따라함 - 개발속도가 증가한다고 이야기 - Test Coverage 100% 달성 목표
  • 28. Adaptive Practices – Pair Programming 이렇게 해보니 좋았어요 - 싞규 기술은 pair programming을 통해 빠르게 기술 습득 가능 - 선배/후배 개발자간 교육 및 know-how 젂수 - T/F나 새로 구성된 팀  스타일, consensus 이렇게 해보니 별로예요 - 일단 해본다 - 과제시작부터 완료때까지 Pair Programming을 한다 - 서로 pair를 선택하게 한다  “짝 프로그래밍”은 “짝”이 아니다
  • 29. Adaptive Practices – Daily Meeting 이렇게 해보니 좋았어요 - PM이나 최고참이 없어도 무조건 진행 - 앇으면 끝이다. 반드시 서서 한다 - 간결하게 말하는 것을 계속 주지 시킴 - 무엇을 했나 보다, 무엇이 이슈인지에 더 focus 둠 이렇게 해보니 별로예요 - 가끔씩 시간을 지키지 안음 - 업무 보고도 살짝 곁들인다
  • 30. “땅볼로 패스가 와도 헤딩한다?” 상황에 맞게 Practice를 응용하는 것도 중요하다
  • 31. 3 Agile Worth Spreading “스며들기 시작하다”
  • 32. 불과 몇년젂만 해도… 애자일 장벽 존재 “애자일” 단어 자체의 거부감
  • 33. Why?… “그냥 하던데로 하지..뭘…” “문서 앆 쓴다며? ” “그냥 순서대로 코딩하면 되지, 무슨 개발 문화…”
  • 34. Software Engineering 관렦 사람들 조차… 기존 프로세스/방법을 뒤흔는 것에 대한 불만 “無문서” 오해로부터 시작된 선입견
  • 35. 그리고, 애자일을 시도하는 사람 조차… 애자일의 practice에만 관심이 있어서… So Cool 해보이는 유행에만 관심이 있어서… 새로운 방법론이 필요해서…
  • 36. 다행히 요새는… “애자일”이 많이 알려져서 거부감, 저항은 약해짐
  • 37. 다행히 요새는… 많은 사람들의 노력으로 인해… “애자일”이라는 것이 생각보다 괜찮던데요…
  • 38. 하지만, 어떻게 좀 더 좋게 하지? “애자일…?” “애자일, 좋은데…?
  • 42. 다시 그들의 입장에서 생각해보자 “무작정 좋은 거라고 들이대지 말자”
  • 44. 애자일의 Core Value는 - 변화를 포용하려는 노력 - 상호 협력 하는 자세 - 참여를 통한 발젂 - 그리고, 실천을 통한 개선 가 아닐까요?
  • 45. 애자일 Practice는 - Core Value를 달성하는 방법 - S/W를 잘 만들기 위한 행동 - 그리고, 역시 실천을 통한 개선
  • 46. 우리의 궁극적인 Core Value는 Better Software 그리고, 이것을 도와주는 것 애자일 = Value Driven
  • 47. They said, 애자일… 처음 할때는 별로 였는데, 다시 해보니까 뭔지 는 모르겠지만 괜찮은 것 같아요 데모때문에 스트레스를 좀 받기는 하는데, 점점 줄기 가 명확해지니까 더 좋은 것 같은데요. Daily meeting을 하면서 서로 이해하는데 많은 도움이 됩니다. 회고를 하면서, 점점 개선 되어지는 모습을 보는 것은 정말 놀라운 경험이 었습니다. 솔직히 “이렇게도 할 수 있구나” 라고 놀랐어요…
  • 48. 그리고 깨닫기 시작했습니다 - 변화를 포용하려는 노력 - 상호 협력 - 참여를 통한 발젂 - 소통, 그리고 동작하는 S/W S/W 개발에서 이것들이 얼마나 중요한지를…
  • 49. 기.사.모. - 자발적 애자일 커뮤니티
  • 51. 우리 모두의 노력과 협력으로 스며들기 시작하다
  • 52. 애자일 기법을 이용해서 “우리도 S/W를 잘 만들고 싶다.“
  • 53. One more thing… It’s teamplay
  • 55. Q&A > 김유짂 삼성젂자 VIP센터 ivey.kim@samsung.com http://twitter.com/ceandaddy