intro of agile
DESCRIPTION
introduction of agile methodogogy for KoreanTRANSCRIPT
Introduction of AgileIntroduction of Agile
Sam HwangSep 2009
• Topic of conversation in Agile• Agile Back grounds• Agile Characteristics• Agile methodologies (Scrum, XP, Lean) •• Agile10 key principlesAgile10 key principles•• Agile books to read (translate into Korean)Agile books to read (translate into Korean)
Table of contents
Topic of conversation in Agile
Non-Agile??
Agile??
Topic of conversation in Agile
Topic of conversation in Agile
Topic of conversation in Agile
Topic of conversation in Agile
Topic of conversation in Agile
Topic of conversation in Agile
Topic of conversation in Agile
Topic of conversation in Agile
T T
C C
Topic of conversation in Agile
What is Agile?
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
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.”
http://www.forrester.com/Research/Workbook/0,9126,45015,00.html
Top 10 reasons for success
http://www.forrester.com/Research/Workbook/0,9126,45015,00.html“ CHAOS 2004 Survey Results”
Enough of processes
• 프로세스의 쇠퇴
–프로세스의 공통성–완전성의 함정–비동기화된 프로세스의 문제
(현실과 괴리) –지식 습득의 문제–우둔한 프로세스의 문제
By Ivar Jacobson, 2007.05~06 마소연재 기사
Time for Practices• 프랙티스의 시대
– 프랙티스: 문제의 특정한 부분을해결하는 체계적이고 검증 가능한방법 및 원칙
– 프랙티스의 종류: • Software engineering practice• Social engineering practice• Organizational practice
– 프랙티스의 장점• 원하는 것만 사용할 수 있음• 확장 및 추가가 용이• 프로세스를 상호 연관된
프랙티스의 조합으로 정의 : 점진적이고 실무적 차원에서개선이 가능
– 좋은 프랙티스의 조건• 자신을 증명
– 프로세스의 변화• 개별 프랙티스를 배우고 점진적
적용 By Ivar Jacobson, 2007.05~06 마소연재 기사
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.
Agile Characteristics
• 애자일 프로세스의 공통적 특성
– 경험을 바탕으로 출발: XP나 Scrum의 경우 저자의다양한 프로젝트 경험을 바탕으로 발전하였으며, Crystal은 Cockburn이 여러 프로젝트 참여자들에게수행한 인터뷰와 관찰을 통해 시작됨
– 가벼우며 실천적이고 결과 중심– 의사소통과 협력을 통한 상호 작용 강조– 짧은 반복 과정에서 얻은 경험을 최대한 반영하여 개선
– 가장 애자일스러운 것이란???
Agile principles focus on the following:
Improve visibilityImprove customer satisfactionImprove project flexibility/responsiveness to changeImprove speed of deliveryImprove delivery of value to customerReduce risk
Agile Development Principles
Project Characteristics:
Early and continuous delivery of usable deliverablesUsable deliverables measure progressAccept changing requirements, even late in projectShort delivery cyclesSimplicity in all aspectsSound, flexible design/architecture is essential
Agile Development Principles
Systems Development Methods
A
A B C
Month 1
The Agile Approach is Iterative AND Incremental
B
A B C
Month 2
C
A B C
Month 3
A1 C1 A2 C2 A3 C3B1 B2 B3
Iterative
Incremental
Agile
A/B/CWaterfall
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
Team Characteristics:
Business people involved daily with project teamMotivated, trusted, experienced team membersSelf-organizing teams (empowered)Maximize the use of face-to-face conversationPromote sustainable developmentContinuous improvement of processes (learning)
Agile Development Principles
Being Agile is our favourite thing
Agile layer
Extreme Programming (XP) process
29
XP PracticesXP PracticesOrganizationOrganization• Small releases• Customer tests • Planning Game
TeamTeam• Collective ownership • Coding standard • Sustainable pace • Metaphor • Continuous integration
IndividualIndividual
• Test-driven Development • Pair programming • Simple design • Refactoring
Manager Customer
XP ValuesCommunication
Simplicity
Feedback
Courage
Respect
Developers
Roles & values in XPRoles & values in XP
Do the Simplest Thing That Could Possibly Work
Developer need feedback from the users
To being honest about what you can and cannot do
All team members, customers, project managers, programmers
Scrum process
Empirical Process Management
• Complicate & Uncertain• How to control noisy
33
Roles in ScrumRoles in ScrumChickens: Someone who has something to gain by
the work done by the “pigs”.: Assist in accomplishing the work
Pigs: Someone whose bacon is on the line.Performers, people who do the work
Lean Software DevelopmentLean Software DevelopmentToyota Managements
• Fostering an atmosphere ofcontinuous learning and improvement
• Satisfying customers andeliminating waste
• Quality first and consistently
• Teaching employees to becomeproblem solvers
• Growing together with suppliers and partners for mutual benefit
Concept of Lean Software Concept of Lean Software
• Abstract from Toyota Product System
•Looks at production process from the end customer’sstandpoint
• Treat non-value-added activities as waste
• Fast delivery, high quality and low cost are achieved
Lean = Continuous ImprovementLean = Continuous Improvement
The Seven WastesThe Seven WastesManufacturing Software Development
Waiting TimeOverproductionTransportation
InventoryExtra Processing
MotionDefects
Waiting TimeExtra Features
Task SwitchingPartially Done Work
PaperworkHand – off
Defects
Seven simple principlesSeven simple principles1.1. Eliminate WasteEliminate Waste2.2. Amplify LearningAmplify Learning3.3. Decide as late as possibleDecide as late as possible4.4. Deliver as fast as possibleDeliver as fast as possible5.5. Empower the teamEmpower the team6.6. Build integrity inBuild integrity in7.7. See the wholeSee the whole
10 key principles 10 key principles ofof
agile software developmentagile software developmentallaboutagile.com | by kelly.waters
• an alternative way of managing software
development
• different values & principles
to traditional development
• incremental, iterative & collaborative, rather
than distinct stages
what is agile software development?
• individuals & interactions over processes and tools
• working softwareover lengthy documentation
• customer collaborationover contract negotiation
• responding to changeover following a plan
“While there is value in items on the right, agile teams value items on the left more”
- agile manifesto
agile development values
principle #1 principle #1 –– active user involvement is imperativeactive user involvement is imperative[to give and receive continuous feedback][to give and receive continuous feedback]
principle #2 principle #2 –– agile teams must be empoweredagile teams must be empowered[to give their full commitment and make timely decisions][to give their full commitment and make timely decisions]
principle #3 principle #3 –– time waits for no mantime waits for no man[requirements emerge, timescales are fixed][requirements emerge, timescales are fixed]
principle #4 principle #4 –– agile requirements are barely sufficientagile requirements are barely sufficient[high level, visual and piecemeal, just in time as each feature [high level, visual and piecemeal, just in time as each feature is is developed]developed]
principle #5 principle #5 –– how do you eat an elephant?how do you eat an elephant?[one bite at a time [one bite at a time –– small incremental pieces]small incremental pieces]
principle #6 principle #6 –– fast but not so furiousfast but not so furious[focus on frequent delivery of products, and regular iterations][focus on frequent delivery of products, and regular iterations]
principle #7 principle #7 –– done means DONE!done means DONE![features completed within an iteration should be 100% done, i.e[features completed within an iteration should be 100% done, i.e. shippable]. shippable]
principle #8 principle #8 –– enoughenough’’s enoughs enough[apply the 80/20 rule [apply the 80/20 rule –– less is the new more]less is the new more]
principle #9 principle #9 –– agile testing is not for dummiesagile testing is not for dummies[testing is a continuous, integrated part of development][testing is a continuous, integrated part of development]
principle #10 principle #10 –– no place for snipersno place for snipers[close cooperation and collaboration between all team members [close cooperation and collaboration between all team members and stakeholders]and stakeholders]
incremental, iterative & collaborative approachincremental, iterative & collaborative approachincremental, iterative & collaborative approach
• visibility• cost control• customer satisfaction• less risk• more motivating!
benefits of an agile approach
• revenue• speed to market• quality• flexibility / agility• right product
A tale of two teams
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."
Agile Software Development with ScAgile Software Development with Scrrumum
55
• 스크럼을 시작하며• 스크럼 준비• 스크럼의 실천법
• 스크럼에 대한 원리와저자의 다양한 경험, 스크럼의탄생 과정, 다양한 스크럼실천방법과 사례를 상세하게설명
Lean Software Development Lean Software Development
56
• 린(Lean) 방식을 소프트웨어개발에 적용하기
• 낭비를 제거하라• 배움을 증폭하라• 가능한 늦게 결정하라• 최대한 빨리 납품하라• 팀에 권한을 위임하라• 통합성을 구축하라• 전체를 보라
Extreme Programming ExplainedExtreme Programming Explained
57
• XP란 무엇인가? • XP 탐험하기• XP 철학
• XP 실천방법의 동기와원칙에 대한 설명• XP에 대한 왜?를 알 수있도록 가치, 철학, 실천방법을 상세하게 제공
Scrum & XP from the TrenchesScrum & XP from the Trenches
58
•스크럼과 XP 실천방법에대한 실무적인 팁과 요령•전형적인 함정과 그 함정들에대한 대처 방법•진행했던 일들을 묘사하는다이어그램과 사진들•테스팅과 테스트 주도 개발•여러 팀으로의 확장과 팀 간조율•팀 내외부의 저항 다루기•계획 수립과 시간 추정 기법
http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
Practices of an Agile DeveloperPractices of an Agile Developer
59
애자일 개발 실천방법(45개)에대하여 쉽게 기본적인 내용을 설명:
Devil Vs. Engel
애자일 소프트웨어 개발애자일 시작하기애자일 기르기사용자가 원하는 내용을 제공하기애자일 피드백애자일 코딩
Agile RetrospectivesAgile Retrospectives
60
애자일 회고(Agile retrospective) 를 위한 실무 지침서
다소 지루한 단계와 절차를소개하지만 실무에 적용할 유용한팁들을 활용할 수 있음
팀이 조사하고 적용하게 하기팀에 맞춰 회고 도입하기회고 진행하기사전 준비하기자료 모으기무엇을 할지 결정하기회고 끝내기릴리즈 회고와 프로젝트 회고그렇게 하시오부록
Scaling Software Agility Scaling Software Agility
61
• 애자일에 대하여 기본부터대규모 환경에 적합한프랙티스를 제공(이론적/실무적 균형)
• 소프트웨어 애자일 방법론• 애자일 확장 적용하는 7가지팀단위 애자일 활동• 엔터프라이즈 환경에 맞는애자일 방법론
Any Question ?Any Question ?