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. 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
16. Top 10 reasons for success
http://www.forrester.com/Research/Workbook/0,9126,45015,00.html
“ CHAOS 2004 Survey Results”
17. Enough of processes
• 프로세스의 쇠퇴
– 프로세스의 공통성
– 완전성의 함정
– 비동기화된 프로세스의 문제
(현실과 괴리)
– 지식 습득의 문제
– 우둔한 프로세스의 문제
By Ivar Jacobson,
2007.05~06 마소연재 기사
18. Time for Practices
• 프랙티스의 시대
– 프랙티스: 문제의 특정한 부분을
해결하는 체계적이고 검증 가능한
방법 및 원칙
– 프랙티스의 종류:
• Software engineering practice
• Social engineering practice
• Organizational practice
– 프랙티스의 장점
• 원하는 것만 사용할 수 있음
• 확장 및 추가가 용이
• 프로세스를 상호 연관된
프랙티스의 조합으로 정의 :
점진적이고 실무적 차원에서
개선이 가능
– 좋은 프랙티스의 조건
• 자신을 증명
– 프로세스의 변화
• 개별 프랙티스를 배우고 점진적
적용 By Ivar Jacobson,
2007.05~06 마소연재 기사
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. Agile Characteristics
• 애자일 프로세스의 공통적 특성
– 경험을 바탕으로 출발: XP나 Scrum의 경우 저자의
다양한 프로젝트 경험을 바탕으로 발전하였으며,
Crystal은 Cockburn이 여러 프로젝트 참여자들에게
수행한 인터뷰와 관찰을 통해 시작됨
– 가벼우며 실천적이고 결과 중심
– 의사소통과 협력을 통한 상호 작용 강조
– 짧은 반복 과정에서 얻은 경험을 최대한 반영하여 개선
– 가장 애자일스러운 것이란???
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. 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. 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. 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. 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)
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. 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
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. 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. 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. 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. 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. 10 key principles of
agile software development
allaboutagile.com | by kelly.waters
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. 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. principle #1 – active user involvement is imperative
[to give and receive continuous feedback]
42. principle #2 – agile teams must be empowered
[to give their full commitment and make timely decisions]
43. principle #3 – time waits for no man
[requirements emerge, timescales are fixed]
44. principle #4 – agile requirements are barely sufficient
[high level, visual and piecemeal, just in time as each feature is
developed]
45. principle #5 – how do you eat an elephant?
[one bite at a time – small incremental pieces]
46. principle #6 – fast but not so furious
[focus on frequent delivery of products, and regular iterations]
47. principle #7 – done means DONE!
[features completed within an iteration should be 100% done, i.e. shippable]
48. principle #8 – enough’s enough
[apply the 80/20 rule – less is the new more]
49. principle #9 – agile testing is not for dummies
[testing is a continuous, integrated part of development]
50. principle #10 – no place for snipers
[close cooperation and collaboration between all team members
and stakeholders]
52. benefits of an agile approach
• revenue • visibility
• speed to market • cost control
• quality • customer satisfaction
• flexibility / agility • less risk
• right product • more motivating!
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. Agile Software Development with Scrum
• 스크럼을 시작하며
• 스크럼 준비
• 스크럼의 실천법
• 스크럼에 대한 원리와
저자의 다양한 경험, 스크럼의
탄생 과정, 다양한 스크럼
실천방법과 사례를 상세하게
설명
55
56. Lean Software Development
• 린(Lean) 방식을 소프트웨어
개발에 적용하기
• 낭비를 제거하라
• 배움을 증폭하라
• 가능한 늦게 결정하라
• 최대한 빨리 납품하라
• 팀에 권한을 위임하라
• 통합성을 구축하라
• 전체를 보라
56
57. Extreme Programming Explained
• XP란 무엇인가?
• XP 탐험하기
• XP 철학
• XP 실천방법의 동기와
원칙에 대한 설명
• XP에 대한 왜?를 알 수
있도록 가치, 철학,
실천방법을 상세하게 제공
57
58. Scrum & XP from the Trenches
•스크럼과 XP 실천방법에
대한 실무적인 팁과 요령
•전형적인 함정과 그 함정들에
대한 대처 방법
•진행했던 일들을 묘사하는
다이어그램과 사진들
•테스팅과 테스트 주도 개발
•여러 팀으로의 확장과 팀 간
조율
•팀 내외부의 저항 다루기
•계획 수립과 시간 추정 기법
http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
58
59. Practices of an Agile Developer
애자일 개발 실천방법(45개)에
대하여 쉽게 기본적인 내용을 설명:
Devil Vs. Engel
애자일 소프트웨어 개발
애자일 시작하기
애자일 기르기
사용자가 원하는 내용을 제공하기
애자일 피드백
애자일 코딩
59
60. Agile Retrospectives
애자일 회고(Agile retrospective)
를 위한 실무 지침서
다소 지루한 단계와 절차를
소개하지만 실무에 적용할 유용한
팁들을 활용할 수 있음
팀이 조사하고 적용하게 하기
팀에 맞춰 회고 도입하기
회고 진행하기
사전 준비하기
자료 모으기
무엇을 할지 결정하기
회고 끝내기
릴리즈 회고와 프로젝트 회고
그렇게 하시오
부록
60
61. Scaling Software Agility
• 애자일에 대하여 기본부터
대규모 환경에 적합한
프랙티스를 제공
(이론적/실무적 균형)
• 소프트웨어 애자일 방법론
• 애자일 확장 적용하는 7가지
팀단위 애자일 활동
• 엔터프라이즈 환경에 맞는
애자일 방법론
61