Intro Of Agile


Published on

introduction of agile methodogogy for Korean

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Intro Of Agile

  1. 1. Introduction of Agile Sam Hwang Sep 2009
  2. 2. Table of contents • Topic of conversation in Agile • Agile Back grounds • Agile Characteristics • Agile methodologies (Scrum, XP, Lean) • Agile10 key principles • Agile books to read (translate into Korean)
  3. 3. Topic of conversation in Agile Non- Agile?? Agile??
  4. 4. Topic of conversation in Agile
  5. 5. Topic of conversation in Agile
  6. 6. Topic of conversation in Agile
  7. 7. Topic of conversation in Agile
  8. 8. Topic of conversation in Agile
  9. 9. Topic of conversation in Agile
  10. 10. Topic of conversation in Agile
  11. 11. Topic of conversation in Agile C C T T
  12. 12. Topic of conversation in Agile
  13. 13. What is Agile?
  14. 14. The Birth of Agile Development • 1970: Waterfall Model • 1975: Iterative Enhancement • 1988: Spiral Development Model • Early 1990s: Crystal Methods, Lean, DSDM • 1993: Capability Maturity Model • 1996: Scrum • 1998: Extreme Programming (XP) • 2001: Agile Manifesto • 2002: Agile Modeling By Kevin Aguanno
  15. 15. Enterprise Agile Adoption 2008년 2월 Forrester Research가 내놓은 ‘Enterprise Agile Adoption in 2007’이라는 보고서에는 미국과 유럽 기업의 25%가 애자일 방법론을 이용하고 있으며 2006년과 2007년간 도입 속도가 2005년과 2006년의 2.5배에 달할 정도로 가속화되고 있다고 언급 “Enterprise Agile adoption has accelerated, increasing approximately two and a half times faster between 2006 and 2007 than between 2005 and 2006.”,9126,45015,00.html
  16. 16. Top 10 reasons for success,9126,45015,00.html “ CHAOS 2004 Survey Results”
  17. 17. Enough of processes • 프로세스의 쇠퇴 – 프로세스의 공통성 – 완전성의 함정 – 비동기화된 프로세스의 문제 (현실과 괴리) – 지식 습득의 문제 – 우둔한 프로세스의 문제 By Ivar Jacobson, 2007.05~06 마소연재 기사
  18. 18. Time for Practices • 프랙티스의 시대 – 프랙티스: 문제의 특정한 부분을 해결하는 체계적이고 검증 가능한 방법 및 원칙 – 프랙티스의 종류: • Software engineering practice • Social engineering practice • Organizational practice – 프랙티스의 장점 • 원하는 것만 사용할 수 있음 • 확장 및 추가가 용이 • 프로세스를 상호 연관된 프랙티스의 조합으로 정의 : 점진적이고 실무적 차원에서 개선이 가능 – 좋은 프랙티스의 조건 • 자신을 증명 – 프로세스의 변화 • 개별 프랙티스를 배우고 점진적 적용 By Ivar Jacobson, 2007.05~06 마소연재 기사
  19. 19. Agile Manifesto • 가벼운 프로세스 (Light weight process) • 문서와 산출물 중심의 무거운 방법론을 대치할 대안의 필요성 공감 • 2001년 Agile Manifesto for Agile software development • 애자일 프로세스: Extreme programming, Scrum, Lean software development, Adaptive system development, Dynamic System Development, Crystal method, etc.
  20. 20. Agile Characteristics • 애자일 프로세스의 공통적 특성 – 경험을 바탕으로 출발: XP나 Scrum의 경우 저자의 다양한 프로젝트 경험을 바탕으로 발전하였으며, Crystal은 Cockburn이 여러 프로젝트 참여자들에게 수행한 인터뷰와 관찰을 통해 시작됨 – 가벼우며 실천적이고 결과 중심 – 의사소통과 협력을 통한 상호 작용 강조 – 짧은 반복 과정에서 얻은 경험을 최대한 반영하여 개선 – 가장 애자일스러운 것이란???
  21. 21. Agile Development Principles Agile principles focus on the following: Improve visibility Improve customer satisfaction Improve project flexibility/responsiveness to change Improve speed of delivery Improve delivery of value to customer Reduce risk
  22. 22. Agile Development Principles Project Characteristics: Early and continuous delivery of usable deliverables Usable deliverables measure progress Accept changing requirements, even late in project Short delivery cycles Simplicity in all aspects Sound, flexible design/architecture is essential
  23. 23. Systems Development Methods Month 1 Month 2 Month 3 Waterfall A/B/C Iterative A B C A B C A B C Incremental A B C Agile A1 B1 C1 A2 B2 C2 A3 B3 C3 The Agile Approach is Iterative AND Incremental
  24. 24. Always A Potentially Shippable Product • Agile methods require that at the end of each iteration, the features are complete. – No vapourware, or mock-ups for demonstration – Fully tested – Full functional demonstration by customer – Includes required documentation
  25. 25. Agile Development Principles Team Characteristics: Business people involved daily with project team Motivated, trusted, experienced team members Self-organizing teams (empowered) Maximize the use of face-to-face conversation Promote sustainable development Continuous improvement of processes (learning)
  26. 26. Being Agile is our favourite thing
  27. 27. Agile layer
  28. 28. Extreme Programming (XP) process
  29. 29. XP Practices Organization Organization • Small releases • Customer tests • Planning Game Team Team • Collective ownership • Coding standard • Sustainable pace • Metaphor • Continuous integration Individual Individual • Test-driven Development • Pair programming • Simple design • Refactoring 29
  30. 30. Roles & values in XP Developers Developer need feedback from the users All team members, customers, project managers, programmers To being honest about what you can and cannot do XP Values Do the Simplest Thing That Communication Could Possibly Work Simplicity Feedback Courage Respect Manager Customer
  31. 31. Scrum process
  32. 32. Empirical Process Management • Complicate & Uncertain • How to control noisy
  33. 33. Roles in Scrum Chickens Pigs : Someone who has something to gain by : Someone whose bacon is on the line. the work done by the “pigs”. Performers, people who do the work : Assist in accomplishing the work 33
  34. 34. Lean Software Development Toyota Managements • Fostering an atmosphere of continuous learning and improvement • Satisfying customers and eliminating waste • Quality first and consistently • Teaching employees to become problem solvers • Growing together with suppliers and partners for mutual benefit
  35. 35. Concept of Lean Software • Abstract from Toyota Product System •Looks at production process from the end customer’s standpoint • Treat non-value-added activities as waste • Fast delivery, high quality and low cost are achieved Lean = Continuous Improvement
  36. 36. The Seven Wastes Manufacturing Software Development Waiting Time Waiting Time Overproduction Extra Features Transportation Task Switching Inventory Partially Done Work Extra Processing Paperwork Motion Hand – off Defects Defects
  37. 37. Seven simple principles 1. Eliminate Waste 2. Amplify Learning 3. Decide as late as possible 4. Deliver as fast as possible 5. Empower the team 6. Build integrity in 7. See the whole
  38. 38. 10 key principles of agile software development | by kelly.waters
  39. 39. what is agile software development? • an alternative way of managing software development • different values & principles to traditional development • incremental, iterative & collaborative, rather than distinct stages
  40. 40. agile development values • individuals & interactions over processes and tools • working software over lengthy documentation • customer collaboration over contract negotiation • responding to change over following a plan “While there is value in items on the right, agile teams value items on the left more” - agile manifesto
  41. 41. principle #1 – active user involvement is imperative [to give and receive continuous feedback]
  42. 42. principle #2 – agile teams must be empowered [to give their full commitment and make timely decisions]
  43. 43. principle #3 – time waits for no man [requirements emerge, timescales are fixed]
  44. 44. principle #4 – agile requirements are barely sufficient [high level, visual and piecemeal, just in time as each feature is developed]
  45. 45. principle #5 – how do you eat an elephant? [one bite at a time – small incremental pieces]
  46. 46. principle #6 – fast but not so furious [focus on frequent delivery of products, and regular iterations]
  47. 47. principle #7 – done means DONE! [features completed within an iteration should be 100% done, i.e. shippable]
  48. 48. principle #8 – enough’s enough [apply the 80/20 rule – less is the new more]
  49. 49. principle #9 – agile testing is not for dummies [testing is a continuous, integrated part of development]
  50. 50. principle #10 – no place for snipers [close cooperation and collaboration between all team members and stakeholders]
  51. 51. incremental, iterative & collaborative approach incremental, iterative & collaborative approach
  52. 52. benefits of an agile approach • revenue • visibility • speed to market • cost control • quality • customer satisfaction • flexibility / agility • less risk • right product • more motivating!
  53. 53. A tale of two teams
  54. 54. What should I do to learn Agile • “日日新 又日新” – 大學 : “진실로 날로 새로워지려면, 나날이 새롭게 하고, 또 날로 새롭게 하라” – "On the bathing tub of T'ang, the following words were engraved: "If you can one day renovate yourself, do so from day to day. Yea, let there be daily renovation."
  55. 55. Agile Software Development with Scrum • 스크럼을 시작하며 • 스크럼 준비 • 스크럼의 실천법 • 스크럼에 대한 원리와 저자의 다양한 경험, 스크럼의 탄생 과정, 다양한 스크럼 실천방법과 사례를 상세하게 설명 55
  56. 56. Lean Software Development • 린(Lean) 방식을 소프트웨어 개발에 적용하기 • 낭비를 제거하라 • 배움을 증폭하라 • 가능한 늦게 결정하라 • 최대한 빨리 납품하라 • 팀에 권한을 위임하라 • 통합성을 구축하라 • 전체를 보라 56
  57. 57. Extreme Programming Explained • XP란 무엇인가? • XP 탐험하기 • XP 철학 • XP 실천방법의 동기와 원칙에 대한 설명 • XP에 대한 왜?를 알 수 있도록 가치, 철학, 실천방법을 상세하게 제공 57
  58. 58. Scrum & XP from the Trenches •스크럼과 XP 실천방법에 대한 실무적인 팁과 요령 •전형적인 함정과 그 함정들에 대한 대처 방법 •진행했던 일들을 묘사하는 다이어그램과 사진들 •테스팅과 테스트 주도 개발 •여러 팀으로의 확장과 팀 간 조율 •팀 내외부의 저항 다루기 •계획 수립과 시간 추정 기법 58
  59. 59. Practices of an Agile Developer 애자일 개발 실천방법(45개)에 대하여 쉽게 기본적인 내용을 설명: Devil Vs. Engel 애자일 소프트웨어 개발 애자일 시작하기 애자일 기르기 사용자가 원하는 내용을 제공하기 애자일 피드백 애자일 코딩 59
  60. 60. Agile Retrospectives 애자일 회고(Agile retrospective) 를 위한 실무 지침서 다소 지루한 단계와 절차를 소개하지만 실무에 적용할 유용한 팁들을 활용할 수 있음 팀이 조사하고 적용하게 하기 팀에 맞춰 회고 도입하기 회고 진행하기 사전 준비하기 자료 모으기 무엇을 할지 결정하기 회고 끝내기 릴리즈 회고와 프로젝트 회고 그렇게 하시오 부록 60
  61. 61. Scaling Software Agility • 애자일에 대하여 기본부터 대규모 환경에 적합한 프랙티스를 제공 (이론적/실무적 균형) • 소프트웨어 애자일 방법론 • 애자일 확장 적용하는 7가지 팀단위 애자일 활동 • 엔터프라이즈 환경에 맞는 애자일 방법론 61
  62. 62. Any Question ?