SlideShare a Scribd company logo
1 of 79
Agile Methods A brief guide to agile software development Duong Trong Tan tandt@fpt.edu.vn HCM city, 9- 2011
Objectives Software Engineering history & agile What is agile development? The Agile Manifesto The diversity of methods Scrum XP RAD TDD Crystal Kanban Agile mashup The cooperative game A brief introduction to Agile Software Development 2
Agile Basics “Agile projects succeed when the team gets the spirit of agility.” 				– Ron Jeffries A brief introduction to Agile Software Development 3 Image courtesy of Pollyanna Pixton
A brief introduction to Agile Software Development 4 Continuous improvement Hyper productive Kaizen Agile Small teams Buzzwords Incremental Lean Changes Earned Value Based Iterative Rapid Adaptive
History A brief introduction to Agile Software Development 5 SE Scrum Weinberg: psychology of computer program Declaration of Independence deMarco: Peopleware XP 2005 2011 2001 1970 1980 1995 1990 AgileAlliance.org 1968 Gilb: Principles of Software Engineering Royce: managing the development of large software systems PMI developed agile certifications RAD DSDM
A brief introduction to Agile Software Development 6 So, what are software projects?
Partiesand Concerns Users? Customers? BO? Developers? A brief introduction to Agile Software Development 7
A brief introduction to Agile Software Development 8 What is agile development?
The Agile Manifesto  We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan A brief introduction to Agile Software Development 9 That is, while there is value in the items on the right, we value the items on the left more. AgileAlliance.org
The Twelve Principles of Agile Software  Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. A brief introduction to Agile Software Development 10 AgileAlliance.org
Home ground comparison A brief introduction to Agile Software Development 11
The diversity of methods A brief introduction to Agile Software Development 12
Rapid Application Development One of the earliest method A strategy instead of comprehensive process Utilizing of Prototyping “VB – Access Method” Still useful, esp. prototyping technique A brief introduction to Agile Software Development 13
Prototyping Early visibility of the prototype gives users an idea of what the final system looks like Encourages active participation among users and producer Increases system development speed (in RAD) Steps: Identify basic requirements Develop Initial Prototype Review Revise and Enhance the Prototype 14 A brief introduction to Agile Software Development
Scrum A hyper-productive development model A brief introduction to Agile Software Development 15
Scrum One of the most successful agile methods because of its hyper-productivity It is management – oriented Somewhat CMM Level 3 equivalence Widely used in various types of projects Google AdWorlds project 3M Universities RnD projects In VN: LogiGear, KPM, FSOFT, FAT, etc. A brief introduction to Agile Software Development 16
Scrum Framework A brief introduction to Agile Software Development 17 Scrum Team Rules Rules Scrum Transparency Inspection Adaption Artifacts Scrum Events Rules
A brief introduction to Agile Software Development 18 Image courtesy of ScrumAlliance
Scrum Roles Scrum Master Product Owner Development Team Other parties (all kinds of ‘chicken’) A brief introduction to Agile Software Development 19
Transition of roles Project Manager Tester Developer System Designer QA Graphic Designer A brief introduction to Agile Software Development 20 Cross-functional Scrum Team
Management Transformation 21 ,[object Object]
Managers  maintain the right to authorize decision
Managers limit the information or resources available to workers
People decide what, and how to do
Team makes decisions
Information is transparentTO A brief introduction to Agile Software Development
Transition of organization Self-directed Team Multi-functional Team A brief introduction to Agile Software Development 22 Customer-driven Multi-skilled workforce Few job descriptions Information widely shared Few levels of management Whole-business focus Shared goals Seemingly chaotic Purpose achievement emphasis High worker commitment Continuous Improvements Self-controlled Values/Principles based Management-driven Workforce of isolated specialists Many job descriptions Information limited Many levels of management Function/Department focus Segregated goals Seemingly organized Problem-solving emphasis High management commitment Incremental Improvements Management-controlled Policy/Procedure based
Development Team Team is cross-functional and consists of 5-9 people There are no set project roles within the team Team defines tasks and assignments Team is self-organizing and self-managing Maintains the Sprint Backlog Conducts the Sprint Review A brief introduction to Agile Software Development 23
ScrumMaster Holds Daily Scrum meeting Assures every people related to the project  follow the Scrum rules Removes obstacles Shields the team from external interference: “Keep Chickens away from Pigs” Conducts Sprint Retrospective at the end of a Sprint Is a facilitator, not a manager A brief introduction to Agile Software Development 24
Product Owner (PO) Accountable for product success Defines all product features Responsible for ordering product features Maintains the Product Backlog Insures team working on highest valued features A brief introduction to Agile Software Development 25
Product Backlog List of all desired product features List can contain bugs, and non-functional items Product Owner responsible for ordering the items Items can be added by anyone at anytime Each item should have a business value assigned Maintained by the Product Owner A brief introduction to Agile Software Development 26
Examples of Product Backlog A brief introduction to Agile Software Development 27
A Sprint Time box: 2-4 weeks (why?) An iteration for building a piece of increment (potentially shippable) of the whole system It’s the working time, not planning or asking what to do. The team manages itself during a Sprint The team commits to Product Backlog during the Sprint planning meeting The Sprint Backlog is updated during a Sprint A brief introduction to Agile Software Development 28
Sprint Backlog A brief introduction to Agile Software Development 29 Each item is prioritized and estimated
A brief introduction to Agile Software Development 30 The Scrum Skeleton 2.Daily Scrum Meeting ,[object Object]
 What will you do?
 What is impeding you?3. A Sprint (2-4 weeks) 4. Sprint Review Meeting 1. Sprint Planning Meeting 5. Sprint Retrospective Meeting
Sprint Planning Meeting Time box: 8 hours Product backlog prepared prior to meeting First Half Team selects items committing to complete Additional discussion of Product Backlog occurs during actual Sprint Second Half Occurs after first half done – PO available for questions Team solely responsible for deciding how to build Tasks created / assigned – Sprint Backlog produced A brief introduction to Agile Software Development 31
Scrum Daily Meeting Held every day during a Sprint The most important inspection event in Scrum Timebox:15 minutes Team members talk to the whole Development Team, not Scrum Master Asks 3 questions during meeting “What have you done since last daily scrum?” “What will you do before the next daily scrum?” “What obstacles are impeding your work?” Opportunity for team members to synchronize their work It helps removing burdens between members A brief introduction to Agile Software Development 32
Sprint Review Time box: 4 hours Team presents “done” code to PO and stakeholders Functionality not “done” is not shown Feedback generated – Product Backlog maybe reprioritized ScrumMaster sets next Sprint Review A brief introduction to Agile Software Development 33
Sprint Retrospective Time box: 3 hours Participants ScrumMaster  Scrum Team.  Product Owner is optional Questions What went well and what can be improved? ScurmMaster helps the team in discovery – not provide answers A brief introduction to Agile Software Development 34
Sprint Backlog A kind o f To-do list for a Sprint Created by the Scrum Team (can be originated by one member, responsibility belongs to another) Product Owner has defined as highest priority Used for synchronizing works between team members A brief introduction to Agile Software Development 35
Sprint Backlog examples A brief introduction to Agile Software Development 36 “digital” Sprint Backlog “analog” Sprint Backlog >>
The Burn-down Chart A brief introduction to Agile Software Development 37 Burndown Chart shows the Sprint trend,  the performanceelocity of the team through Sprints
Potentially Shippable Product Selected items are fully implemented, tested and ready for use Small but complete, “it will be bigger” Scrum Team needs to define what does  “done” mean, in what aspects and contexts. “DONE” may be executable, “passed all tests”, “approved by senior engineers”, “reviewed by peers” or just nothing to do more with the item. A brief introduction to Agile Software Development 38
Distributed Scrum Isolated Scrums - Teams are isolated across geographies.  Distributed Scrum of Scrums –Scrum teams are isolated across geographies and integrated by a Scrum of Totally Integrated Scrums – Scrum teams are cross-functional with members distributed across geographies. A brief introduction to Agile Software Development 39 Sutherland et al.
Top Distributed Scrum Issues Difficult leveraging available resources, best practices are often deemed proprietary, are time consuming and difficult to maintain Difficulty synchronizing work between distributed sites Lack of effective communication mechanisms Conflicting behaviors, processes, and technologies Incompatible data formats, schemas, and standards Ensuring electronic transmission confidentiality and privacy Difficult to share values [Bas Vodde] A brief introduction to Agile Software Development 40 Sutherland et al.
eXtreme Programming From hacking code to a real process A brief introduction to Agile Software Development 41
eXtreme Programming Project A brief introduction to Agile Software Development 42
XP Values Simplicity  encourages starting with the simplest solution Communication favors simple designs, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedback Feedback From the system, customer and from the team, to avoid optimism Courage design and code for today and not for tomorrow Respect respect for others as well as self-respect A brief introduction to Agile Software Development 43
A brief introduction to Agile Software Development 44
XP Roles The Customer  Sets project goals and makes business decisions The Developer  Turn customer stories into working code The Tracker  Keeps track of any metrics used by team The Coach  Guides and mentors the team A brief introduction to Agile Software Development 45
Test Driven Development Tests created before coding Focus on quality Not a complete development strategy Derived version: Behavior-Driven Development (BDD) A brief introduction to Agile Software Development 46
TDD Rationale A brief introduction to Agile Software Development 47
TDD Strategy You don’t start programming until you have designed your tests! Strategy Make it Fail No code without a failing test Make it Work As simply as possible Make it Better Refactor(code, design, test, documentation) Believe in testing A brief introduction to Agile Software Development 48
Acceptance TDD 3D strategy Discuss in requirement workshop To make tests library Develop in concurrence To create more Passed features Deliver for acceptance To meet DONE definition, accepted by users 49 A brief introduction to Agile Software Development
Continuous Integration Continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Supported by a CI system with lots of automated tests, builds and other generated artifacts. Benefits: Increases transparency Increases cooperation and communication Enables people to work on same code 50 A brief introduction to Agile Software Development
CI System 51 A brief introduction to Agile Software Development
Incremental Design Flexible complex design on paper|CASE tool Incremental Design (not simplistic) 52 ,[object Object]
Something unexpected always changesMore complexity than needed. Hard to maintain.  Easier to adopt. ID is easier to change. Less complexity A brief introduction to Agile Software Development
Pair Programming A pair of developers shares a problem, a computer, a keyboard and a goal: solve the problem PP was defined in XP Utilize the R-mode activities Improve communication and effectiveness Improve software quality Widely ADOPTED, but CONTROVERSAL! 2 roles: Driverand Navigator: The Driver doesn’t see the big picture The Driver should “step a way from the keyboard” The Navigator tends to use pattern-matching problem solving technique 53 A brief introduction to Agile Software Development
Refactoring You practice “code a bit, fix a little”  => result in dirty code & bad design. Refactoring helps in restructure or design your code to make it better.  what does “better” mean? Keep in mind: Maintainability Extensibility High Cohesion Low Coupling 54 A brief introduction to Agile Software Development
Crystal Clear “A human-Powered methodology for small team” A brief introduction to Agile Software Development 55
Crystal Clear Practices Frequent Delivery Reflective Improvement Osmotic Communication Personal Safety Focus Easy Access to Expert Users Automated Tests Configuration Management Frequent Integration A brief introduction to Agile Software Development 56
Crystal Clear “The team can reduce intermediate work products as it produces running code more frequently, as it uses richer communication channels between people.” 				- Alistair Cockburn A brief introduction to Agile Software Development 57
Crystal Clear Every product is slightly different and evolves over time, so the methodology, the set of conventions the team adopts, must be tuned and evolve. 				- Alistair Cockburn A brief introduction to Agile Software Development 58
Crystal Clear Roles Sponsor Allocates money for the project Expert User Lead Designer Lead Technical person, mentors less experienced team members Designer-Programmer Each person designs and programs A brief introduction to Agile Software Development 59
Kanban Kanban literally means “visual card,” “signboard,” or “billboard.”  Toyota originally used Kanban cards to limit the amount of inventory tied up in “Work In Progress” on a manufacturing floor A brief introduction to Agile Software Development 60 … Step 1 Done Step 2 Step n In Process In Process In Process Queue Queue Queue … Work Items
A brief introduction to Agile Software Development 61 Why use Kanban in Software Development?
Time-boxed iterative development has challenges  ,[object Object]
Smaller development items are often too small to be valuable and difficult to identify
Quality of requirements suffers as analysts rush to prepare for upcoming cycles
Quality of current development suffers when busy analysts are unable to inspect software or answer questions during development
Quality often suffers as testers race to complete work late in the development time-box A brief introduction to Agile Software Development 62
The time-boxed iteration drama A brief introduction to Agile Software Development 63
A brief introduction to Agile Software Development 64 Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous flow.
Kanban queue A brief introduction to Agile Software Development 65 … Done Step 2 Step n Work Items Step 1 In Process In Process In Process Queue Queue Queue …
Kanban queues (cont’d)  Large enough to keep the team busy Small enough to avoid premature prioritisation Ideally should be FIFO A brief introduction to Agile Software Development 66
Kanban - Work In Progress Reduce multi-tasking Maximize throughput Enhances teamwork A brief introduction to Agile Software Development 67

More Related Content

What's hot

10 differences between SAFe and LeSS
10 differences between SAFe and LeSS10 differences between SAFe and LeSS
10 differences between SAFe and LeSSStanislaw Matczak
 
Testing in agile projects – case study
Testing in agile projects – case studyTesting in agile projects – case study
Testing in agile projects – case studyArmands Baranovskis
 
Research paper presentation on agile scrum
Research paper presentation on agile scrumResearch paper presentation on agile scrum
Research paper presentation on agile scrumAbdullah Raza
 
Agile vs Iterative vs Waterfall models
Agile vs Iterative vs Waterfall models Agile vs Iterative vs Waterfall models
Agile vs Iterative vs Waterfall models Marraju Bollapragada V
 
Scrum methodology in practice
Scrum methodology in practiceScrum methodology in practice
Scrum methodology in practiceIllia Pinchuk
 
Scrum Primer
Scrum PrimerScrum Primer
Scrum Primerdavelucey
 
Software Development Methodologies By E2Logy
Software Development Methodologies By E2LogySoftware Development Methodologies By E2Logy
Software Development Methodologies By E2LogyE2LOGY
 
Agile Scrum Presentation-Detailed
Agile Scrum Presentation-DetailedAgile Scrum Presentation-Detailed
Agile Scrum Presentation-DetailedPrashaanth T R
 
Agile Scrum Overview
Agile  Scrum  OverviewAgile  Scrum  Overview
Agile Scrum OverviewJason Dean
 
Agile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case StudyAgile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case StudyRussell Pannone
 
Agile Scrum Methodology - Introduction
Agile Scrum Methodology - IntroductionAgile Scrum Methodology - Introduction
Agile Scrum Methodology - IntroductionGeetha Madhuri
 
Scrum Methodology well elucidated
Scrum Methodology well elucidatedScrum Methodology well elucidated
Scrum Methodology well elucidatedMuhammad Asim
 

What's hot (20)

What is agile model
What is agile modelWhat is agile model
What is agile model
 
AGILE METHODOLOGY
AGILE METHODOLOGYAGILE METHODOLOGY
AGILE METHODOLOGY
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
10 differences between SAFe and LeSS
10 differences between SAFe and LeSS10 differences between SAFe and LeSS
10 differences between SAFe and LeSS
 
Testing in agile projects – case study
Testing in agile projects – case studyTesting in agile projects – case study
Testing in agile projects – case study
 
Research paper presentation on agile scrum
Research paper presentation on agile scrumResearch paper presentation on agile scrum
Research paper presentation on agile scrum
 
Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014
 
Scrum
ScrumScrum
Scrum
 
Agile vs Iterative vs Waterfall models
Agile vs Iterative vs Waterfall models Agile vs Iterative vs Waterfall models
Agile vs Iterative vs Waterfall models
 
Scrum methodology in practice
Scrum methodology in practiceScrum methodology in practice
Scrum methodology in practice
 
Scrum Primer
Scrum PrimerScrum Primer
Scrum Primer
 
Software Development Methodologies By E2Logy
Software Development Methodologies By E2LogySoftware Development Methodologies By E2Logy
Software Development Methodologies By E2Logy
 
Scrum Process
Scrum ProcessScrum Process
Scrum Process
 
SCRUM – Agile Methodology
SCRUM – Agile MethodologySCRUM – Agile Methodology
SCRUM – Agile Methodology
 
Agile Scrum Presentation-Detailed
Agile Scrum Presentation-DetailedAgile Scrum Presentation-Detailed
Agile Scrum Presentation-Detailed
 
Agile Scrum Overview
Agile  Scrum  OverviewAgile  Scrum  Overview
Agile Scrum Overview
 
Agile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case StudyAgile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case Study
 
Agile Scrum Methodology - Introduction
Agile Scrum Methodology - IntroductionAgile Scrum Methodology - Introduction
Agile Scrum Methodology - Introduction
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
Scrum Methodology well elucidated
Scrum Methodology well elucidatedScrum Methodology well elucidated
Scrum Methodology well elucidated
 

Viewers also liked

Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development OverviewStewart Rogers
 
Implementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDBImplementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDBOren Eini
 
Keynote agile-in-vietnam
Keynote agile-in-vietnamKeynote agile-in-vietnam
Keynote agile-in-vietnamAgile Vietnam
 
Introducing scrum into your organization ibelis
Introducing scrum into your organization   ibelisIntroducing scrum into your organization   ibelis
Introducing scrum into your organization ibelisDUONG Trong Tan
 
Agile estimation & planning
Agile estimation & planningAgile estimation & planning
Agile estimation & planningDUONG Trong Tan
 
Release planning in Scrum
Release planning in ScrumRelease planning in Scrum
Release planning in ScrumArne Åhlander
 
Agile Software Development With Scrum
Agile Software Development With ScrumAgile Software Development With Scrum
Agile Software Development With ScrumSameera Gayan
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release PlanningAdnan Aziz
 
Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process John Derrico
 
UX @ agile - myths, legends and the path to success
UX @ agile - myths, legends and the path to successUX @ agile - myths, legends and the path to success
UX @ agile - myths, legends and the path to successRan Liron
 
Sticky Teaching
Sticky TeachingSticky Teaching
Sticky TeachingChris Lema
 
Release Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a PlanRelease Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a Planconnielharper
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testingKMS Technology
 

Viewers also liked (15)

Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 
Implementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDBImplementing CQRS and Event Sourcing with RavenDB
Implementing CQRS and Event Sourcing with RavenDB
 
Keynote agile-in-vietnam
Keynote agile-in-vietnamKeynote agile-in-vietnam
Keynote agile-in-vietnam
 
Introducing scrum into your organization ibelis
Introducing scrum into your organization   ibelisIntroducing scrum into your organization   ibelis
Introducing scrum into your organization ibelis
 
Agile estimation & planning
Agile estimation & planningAgile estimation & planning
Agile estimation & planning
 
Release planning in Scrum
Release planning in ScrumRelease planning in Scrum
Release planning in Scrum
 
Agile Software Development With Scrum
Agile Software Development With ScrumAgile Software Development With Scrum
Agile Software Development With Scrum
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
 
Agile Release & Iteration Planning
Agile Release & Iteration Planning   Agile Release & Iteration Planning
Agile Release & Iteration Planning
 
Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
UX @ agile - myths, legends and the path to success
UX @ agile - myths, legends and the path to successUX @ agile - myths, legends and the path to success
UX @ agile - myths, legends and the path to success
 
Sticky Teaching
Sticky TeachingSticky Teaching
Sticky Teaching
 
Release Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a PlanRelease Management: Successful Software Releases Start with a Plan
Release Management: Successful Software Releases Start with a Plan
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 

Similar to Agile methods

Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development OverviewDUONG Trong Tan
 
SE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentSE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentAmr E. Mohamed
 
SE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software DevelopmentSE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software DevelopmentAmr E. Mohamed
 
Agile Development with Scrum.pptx
Agile Development with Scrum.pptxAgile Development with Scrum.pptx
Agile Development with Scrum.pptxzuma14
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resourcesAnwar Sadat
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process IntroductionNguyen Hai
 
Let’s Play Agile ! 12-09-15-testers_hub
Let’s  Play  Agile ! 12-09-15-testers_hubLet’s  Play  Agile ! 12-09-15-testers_hub
Let’s Play Agile ! 12-09-15-testers_hubOwner Tester's Hub
 
Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...
Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...
Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...varty
 
Introduction to Agile Project Management - Scrum 101
Introduction to Agile Project Management - Scrum 101Introduction to Agile Project Management - Scrum 101
Introduction to Agile Project Management - Scrum 101Marge Tam, PMP, CSM, A-CSM
 
Agile project management using scrum
Agile project management using scrumAgile project management using scrum
Agile project management using scrumPrudentialSolutions
 
Agile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptxAgile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptxPerumalPitchandi
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Moataz Nabil
 
Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Muhammad Ahmed
 
Agile development introduction
Agile development introductionAgile development introduction
Agile development introductionbeforeach
 
Agile software development
Agile software developmentAgile software development
Agile software developmentpradeeppatelpmp
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overviewguestb4c770
 

Similar to Agile methods (20)

Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 
SE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentSE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software Development
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
SE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software DevelopmentSE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software Development
 
Agile Development with Scrum.pptx
Agile Development with Scrum.pptxAgile Development with Scrum.pptx
Agile Development with Scrum.pptx
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
 
Agile Scrum
Agile ScrumAgile Scrum
Agile Scrum
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
Let’s Play Agile ! 12-09-15-testers_hub
Let’s  Play  Agile ! 12-09-15-testers_hubLet’s  Play  Agile ! 12-09-15-testers_hub
Let’s Play Agile ! 12-09-15-testers_hub
 
Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...
Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...
Presentation: "Agile methodologies for Project Management - SCRUM" by Varty K...
 
Introduction to Agile Project Management - Scrum 101
Introduction to Agile Project Management - Scrum 101Introduction to Agile Project Management - Scrum 101
Introduction to Agile Project Management - Scrum 101
 
Agile Overview
Agile OverviewAgile Overview
Agile Overview
 
Agile project management using scrum
Agile project management using scrumAgile project management using scrum
Agile project management using scrum
 
Agile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptxAgile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptx
 
Scrum
ScrumScrum
Scrum
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)
 
Agile development introduction
Agile development introductionAgile development introduction
Agile development introduction
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 

More from DUONG Trong Tan

Trở thành Agile Coach
Trở thành Agile CoachTrở thành Agile Coach
Trở thành Agile CoachDUONG Trong Tan
 
Coder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhCoder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhDUONG Trong Tan
 
Building a Learning Organization
Building a Learning OrganizationBuilding a Learning Organization
Building a Learning OrganizationDUONG Trong Tan
 
Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)DUONG Trong Tan
 
A reflection on constructivism and engineering education
A reflection on constructivism and engineering educationA reflection on constructivism and engineering education
A reflection on constructivism and engineering educationDUONG Trong Tan
 
Học cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnHọc cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnDUONG Trong Tan
 
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoNgười lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoDUONG Trong Tan
 
Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?DUONG Trong Tan
 
Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)DUONG Trong Tan
 
Các nguyên lí giáo dục
Các nguyên lí giáo dụcCác nguyên lí giáo dục
Các nguyên lí giáo dụcDUONG Trong Tan
 
Vì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiVì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiDUONG Trong Tan
 
Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)DUONG Trong Tan
 
Scrum - a tool to achieve agility
Scrum - a tool to achieve agilityScrum - a tool to achieve agility
Scrum - a tool to achieve agilityDUONG Trong Tan
 
Training is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamTraining is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamDUONG Trong Tan
 
Đường vào agile - 2013
Đường vào agile - 2013Đường vào agile - 2013
Đường vào agile - 2013DUONG Trong Tan
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developerDUONG Trong Tan
 
ScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - NhanScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - NhanDUONG Trong Tan
 
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangDUONG Trong Tan
 

More from DUONG Trong Tan (20)

Trở thành Agile Coach
Trở thành Agile CoachTrở thành Agile Coach
Trở thành Agile Coach
 
Coder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhCoder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trình
 
Luyện cách hỏi
Luyện cách hỏi Luyện cách hỏi
Luyện cách hỏi
 
Building a Learning Organization
Building a Learning OrganizationBuilding a Learning Organization
Building a Learning Organization
 
Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)
 
A reflection on constructivism and engineering education
A reflection on constructivism and engineering educationA reflection on constructivism and engineering education
A reflection on constructivism and engineering education
 
Học cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnHọc cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To Learn
 
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoNgười lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
 
Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?
 
Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)
 
Các nguyên lí giáo dục
Các nguyên lí giáo dụcCác nguyên lí giáo dục
Các nguyên lí giáo dục
 
Vì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiVì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏi
 
Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)
 
Scrum - a tool to achieve agility
Scrum - a tool to achieve agilityScrum - a tool to achieve agility
Scrum - a tool to achieve agility
 
Agile mindset
Agile mindsetAgile mindset
Agile mindset
 
Training is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamTraining is not enough - Coaching your agile team
Training is not enough - Coaching your agile team
 
Đường vào agile - 2013
Đường vào agile - 2013Đường vào agile - 2013
Đường vào agile - 2013
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developer
 
ScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - NhanScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - Nhan
 
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
 

Recently uploaded

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Agile methods

  • 1. Agile Methods A brief guide to agile software development Duong Trong Tan tandt@fpt.edu.vn HCM city, 9- 2011
  • 2. Objectives Software Engineering history & agile What is agile development? The Agile Manifesto The diversity of methods Scrum XP RAD TDD Crystal Kanban Agile mashup The cooperative game A brief introduction to Agile Software Development 2
  • 3. Agile Basics “Agile projects succeed when the team gets the spirit of agility.” – Ron Jeffries A brief introduction to Agile Software Development 3 Image courtesy of Pollyanna Pixton
  • 4. A brief introduction to Agile Software Development 4 Continuous improvement Hyper productive Kaizen Agile Small teams Buzzwords Incremental Lean Changes Earned Value Based Iterative Rapid Adaptive
  • 5. History A brief introduction to Agile Software Development 5 SE Scrum Weinberg: psychology of computer program Declaration of Independence deMarco: Peopleware XP 2005 2011 2001 1970 1980 1995 1990 AgileAlliance.org 1968 Gilb: Principles of Software Engineering Royce: managing the development of large software systems PMI developed agile certifications RAD DSDM
  • 6. A brief introduction to Agile Software Development 6 So, what are software projects?
  • 7. Partiesand Concerns Users? Customers? BO? Developers? A brief introduction to Agile Software Development 7
  • 8. A brief introduction to Agile Software Development 8 What is agile development?
  • 9. The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan A brief introduction to Agile Software Development 9 That is, while there is value in the items on the right, we value the items on the left more. AgileAlliance.org
  • 10. The Twelve Principles of Agile Software Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. A brief introduction to Agile Software Development 10 AgileAlliance.org
  • 11. Home ground comparison A brief introduction to Agile Software Development 11
  • 12. The diversity of methods A brief introduction to Agile Software Development 12
  • 13. Rapid Application Development One of the earliest method A strategy instead of comprehensive process Utilizing of Prototyping “VB – Access Method” Still useful, esp. prototyping technique A brief introduction to Agile Software Development 13
  • 14. Prototyping Early visibility of the prototype gives users an idea of what the final system looks like Encourages active participation among users and producer Increases system development speed (in RAD) Steps: Identify basic requirements Develop Initial Prototype Review Revise and Enhance the Prototype 14 A brief introduction to Agile Software Development
  • 15. Scrum A hyper-productive development model A brief introduction to Agile Software Development 15
  • 16. Scrum One of the most successful agile methods because of its hyper-productivity It is management – oriented Somewhat CMM Level 3 equivalence Widely used in various types of projects Google AdWorlds project 3M Universities RnD projects In VN: LogiGear, KPM, FSOFT, FAT, etc. A brief introduction to Agile Software Development 16
  • 17. Scrum Framework A brief introduction to Agile Software Development 17 Scrum Team Rules Rules Scrum Transparency Inspection Adaption Artifacts Scrum Events Rules
  • 18. A brief introduction to Agile Software Development 18 Image courtesy of ScrumAlliance
  • 19. Scrum Roles Scrum Master Product Owner Development Team Other parties (all kinds of ‘chicken’) A brief introduction to Agile Software Development 19
  • 20. Transition of roles Project Manager Tester Developer System Designer QA Graphic Designer A brief introduction to Agile Software Development 20 Cross-functional Scrum Team
  • 21.
  • 22. Managers maintain the right to authorize decision
  • 23. Managers limit the information or resources available to workers
  • 24. People decide what, and how to do
  • 26. Information is transparentTO A brief introduction to Agile Software Development
  • 27. Transition of organization Self-directed Team Multi-functional Team A brief introduction to Agile Software Development 22 Customer-driven Multi-skilled workforce Few job descriptions Information widely shared Few levels of management Whole-business focus Shared goals Seemingly chaotic Purpose achievement emphasis High worker commitment Continuous Improvements Self-controlled Values/Principles based Management-driven Workforce of isolated specialists Many job descriptions Information limited Many levels of management Function/Department focus Segregated goals Seemingly organized Problem-solving emphasis High management commitment Incremental Improvements Management-controlled Policy/Procedure based
  • 28. Development Team Team is cross-functional and consists of 5-9 people There are no set project roles within the team Team defines tasks and assignments Team is self-organizing and self-managing Maintains the Sprint Backlog Conducts the Sprint Review A brief introduction to Agile Software Development 23
  • 29. ScrumMaster Holds Daily Scrum meeting Assures every people related to the project follow the Scrum rules Removes obstacles Shields the team from external interference: “Keep Chickens away from Pigs” Conducts Sprint Retrospective at the end of a Sprint Is a facilitator, not a manager A brief introduction to Agile Software Development 24
  • 30. Product Owner (PO) Accountable for product success Defines all product features Responsible for ordering product features Maintains the Product Backlog Insures team working on highest valued features A brief introduction to Agile Software Development 25
  • 31. Product Backlog List of all desired product features List can contain bugs, and non-functional items Product Owner responsible for ordering the items Items can be added by anyone at anytime Each item should have a business value assigned Maintained by the Product Owner A brief introduction to Agile Software Development 26
  • 32. Examples of Product Backlog A brief introduction to Agile Software Development 27
  • 33. A Sprint Time box: 2-4 weeks (why?) An iteration for building a piece of increment (potentially shippable) of the whole system It’s the working time, not planning or asking what to do. The team manages itself during a Sprint The team commits to Product Backlog during the Sprint planning meeting The Sprint Backlog is updated during a Sprint A brief introduction to Agile Software Development 28
  • 34. Sprint Backlog A brief introduction to Agile Software Development 29 Each item is prioritized and estimated
  • 35.
  • 36. What will you do?
  • 37. What is impeding you?3. A Sprint (2-4 weeks) 4. Sprint Review Meeting 1. Sprint Planning Meeting 5. Sprint Retrospective Meeting
  • 38. Sprint Planning Meeting Time box: 8 hours Product backlog prepared prior to meeting First Half Team selects items committing to complete Additional discussion of Product Backlog occurs during actual Sprint Second Half Occurs after first half done – PO available for questions Team solely responsible for deciding how to build Tasks created / assigned – Sprint Backlog produced A brief introduction to Agile Software Development 31
  • 39. Scrum Daily Meeting Held every day during a Sprint The most important inspection event in Scrum Timebox:15 minutes Team members talk to the whole Development Team, not Scrum Master Asks 3 questions during meeting “What have you done since last daily scrum?” “What will you do before the next daily scrum?” “What obstacles are impeding your work?” Opportunity for team members to synchronize their work It helps removing burdens between members A brief introduction to Agile Software Development 32
  • 40. Sprint Review Time box: 4 hours Team presents “done” code to PO and stakeholders Functionality not “done” is not shown Feedback generated – Product Backlog maybe reprioritized ScrumMaster sets next Sprint Review A brief introduction to Agile Software Development 33
  • 41. Sprint Retrospective Time box: 3 hours Participants ScrumMaster Scrum Team. Product Owner is optional Questions What went well and what can be improved? ScurmMaster helps the team in discovery – not provide answers A brief introduction to Agile Software Development 34
  • 42. Sprint Backlog A kind o f To-do list for a Sprint Created by the Scrum Team (can be originated by one member, responsibility belongs to another) Product Owner has defined as highest priority Used for synchronizing works between team members A brief introduction to Agile Software Development 35
  • 43. Sprint Backlog examples A brief introduction to Agile Software Development 36 “digital” Sprint Backlog “analog” Sprint Backlog >>
  • 44. The Burn-down Chart A brief introduction to Agile Software Development 37 Burndown Chart shows the Sprint trend, the performanceelocity of the team through Sprints
  • 45. Potentially Shippable Product Selected items are fully implemented, tested and ready for use Small but complete, “it will be bigger” Scrum Team needs to define what does “done” mean, in what aspects and contexts. “DONE” may be executable, “passed all tests”, “approved by senior engineers”, “reviewed by peers” or just nothing to do more with the item. A brief introduction to Agile Software Development 38
  • 46. Distributed Scrum Isolated Scrums - Teams are isolated across geographies. Distributed Scrum of Scrums –Scrum teams are isolated across geographies and integrated by a Scrum of Totally Integrated Scrums – Scrum teams are cross-functional with members distributed across geographies. A brief introduction to Agile Software Development 39 Sutherland et al.
  • 47. Top Distributed Scrum Issues Difficult leveraging available resources, best practices are often deemed proprietary, are time consuming and difficult to maintain Difficulty synchronizing work between distributed sites Lack of effective communication mechanisms Conflicting behaviors, processes, and technologies Incompatible data formats, schemas, and standards Ensuring electronic transmission confidentiality and privacy Difficult to share values [Bas Vodde] A brief introduction to Agile Software Development 40 Sutherland et al.
  • 48. eXtreme Programming From hacking code to a real process A brief introduction to Agile Software Development 41
  • 49. eXtreme Programming Project A brief introduction to Agile Software Development 42
  • 50. XP Values Simplicity encourages starting with the simplest solution Communication favors simple designs, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedback Feedback From the system, customer and from the team, to avoid optimism Courage design and code for today and not for tomorrow Respect respect for others as well as self-respect A brief introduction to Agile Software Development 43
  • 51. A brief introduction to Agile Software Development 44
  • 52. XP Roles The Customer Sets project goals and makes business decisions The Developer Turn customer stories into working code The Tracker Keeps track of any metrics used by team The Coach Guides and mentors the team A brief introduction to Agile Software Development 45
  • 53. Test Driven Development Tests created before coding Focus on quality Not a complete development strategy Derived version: Behavior-Driven Development (BDD) A brief introduction to Agile Software Development 46
  • 54. TDD Rationale A brief introduction to Agile Software Development 47
  • 55. TDD Strategy You don’t start programming until you have designed your tests! Strategy Make it Fail No code without a failing test Make it Work As simply as possible Make it Better Refactor(code, design, test, documentation) Believe in testing A brief introduction to Agile Software Development 48
  • 56. Acceptance TDD 3D strategy Discuss in requirement workshop To make tests library Develop in concurrence To create more Passed features Deliver for acceptance To meet DONE definition, accepted by users 49 A brief introduction to Agile Software Development
  • 57. Continuous Integration Continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Supported by a CI system with lots of automated tests, builds and other generated artifacts. Benefits: Increases transparency Increases cooperation and communication Enables people to work on same code 50 A brief introduction to Agile Software Development
  • 58. CI System 51 A brief introduction to Agile Software Development
  • 59.
  • 60. Something unexpected always changesMore complexity than needed. Hard to maintain. Easier to adopt. ID is easier to change. Less complexity A brief introduction to Agile Software Development
  • 61. Pair Programming A pair of developers shares a problem, a computer, a keyboard and a goal: solve the problem PP was defined in XP Utilize the R-mode activities Improve communication and effectiveness Improve software quality Widely ADOPTED, but CONTROVERSAL! 2 roles: Driverand Navigator: The Driver doesn’t see the big picture The Driver should “step a way from the keyboard” The Navigator tends to use pattern-matching problem solving technique 53 A brief introduction to Agile Software Development
  • 62. Refactoring You practice “code a bit, fix a little” => result in dirty code & bad design. Refactoring helps in restructure or design your code to make it better. what does “better” mean? Keep in mind: Maintainability Extensibility High Cohesion Low Coupling 54 A brief introduction to Agile Software Development
  • 63. Crystal Clear “A human-Powered methodology for small team” A brief introduction to Agile Software Development 55
  • 64. Crystal Clear Practices Frequent Delivery Reflective Improvement Osmotic Communication Personal Safety Focus Easy Access to Expert Users Automated Tests Configuration Management Frequent Integration A brief introduction to Agile Software Development 56
  • 65. Crystal Clear “The team can reduce intermediate work products as it produces running code more frequently, as it uses richer communication channels between people.” - Alistair Cockburn A brief introduction to Agile Software Development 57
  • 66. Crystal Clear Every product is slightly different and evolves over time, so the methodology, the set of conventions the team adopts, must be tuned and evolve. - Alistair Cockburn A brief introduction to Agile Software Development 58
  • 67. Crystal Clear Roles Sponsor Allocates money for the project Expert User Lead Designer Lead Technical person, mentors less experienced team members Designer-Programmer Each person designs and programs A brief introduction to Agile Software Development 59
  • 68. Kanban Kanban literally means “visual card,” “signboard,” or “billboard.” Toyota originally used Kanban cards to limit the amount of inventory tied up in “Work In Progress” on a manufacturing floor A brief introduction to Agile Software Development 60 … Step 1 Done Step 2 Step n In Process In Process In Process Queue Queue Queue … Work Items
  • 69. A brief introduction to Agile Software Development 61 Why use Kanban in Software Development?
  • 70.
  • 71. Smaller development items are often too small to be valuable and difficult to identify
  • 72. Quality of requirements suffers as analysts rush to prepare for upcoming cycles
  • 73. Quality of current development suffers when busy analysts are unable to inspect software or answer questions during development
  • 74. Quality often suffers as testers race to complete work late in the development time-box A brief introduction to Agile Software Development 62
  • 75. The time-boxed iteration drama A brief introduction to Agile Software Development 63
  • 76. A brief introduction to Agile Software Development 64 Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous flow.
  • 77. Kanban queue A brief introduction to Agile Software Development 65 … Done Step 2 Step n Work Items Step 1 In Process In Process In Process Queue Queue Queue …
  • 78. Kanban queues (cont’d) Large enough to keep the team busy Small enough to avoid premature prioritisation Ideally should be FIFO A brief introduction to Agile Software Development 66
  • 79. Kanban - Work In Progress Reduce multi-tasking Maximize throughput Enhances teamwork A brief introduction to Agile Software Development 67
  • 80. The multitasking issues Facts: 20% time lost to context switching per ‘task Sequential yields results sooner A brief introduction to Agile Software Development 68 A A A B B B C C C A B C Chart courtesy of Yahoo!
  • 81. Throughput A brief introduction to Agile Software Development 69 Organizational overhead goes up as work in progress increases Total Cycle Time = Number of Things in Process Average Completion Rate to improve cycle time Improve Average Completion Rate Reduce Number of Things in Process
  • 82.
  • 83. Kanban Example 1 A brief introduction to Agile Software Development 71 Image courtesy to Jeff Patton
  • 84. Kanban Example 2 A brief introduction to Agile Software Development 72
  • 85. Kanban Example 3 A brief introduction to Agile Software Development 73
  • 86. Agile Mashup It follows the Agile Manifesto and keeps the sprit of agility It utilizes practices from several methods, for example: Use sprint backlog and user stories with TDD and standup meeting with a kanban liked dashboard. Use stand up meeting in daily Scrum Use Burn down chart in Kanban A brief introduction to Agile Software Development 74
  • 87. A brief introduction to Agile Software Development 75 Agile Software Development - a cooperative game. Alistair Cockburn
  • 88. 76 Paper Face-to-face communication is better 2 people at whiteboard 2 people on phone Communication Effectiveness Videotape 2 people on email Richness of communication channel A brief introduction to Agile Software Development Slide courtesy to Cockburn. A.
  • 89. References and Further Readings Agile Software Development: The Cooperative Game, 2ndEdn. By Alistair Cockburn. Scrum Guide 2010 by Ken Schwaber and Jeff Sutherland Agile Project Management with Scrum by Ken Schwaber  Agile Java Crafting Code with Test-Driven Development By Jeff Langr Test-Driven Development in Microsoft .NET by James W. Newkirk and Alexei A. Vorontsov  Extreme Programming Explained by Kent Beck XP introduction, http://www.extremeprogramming.org/ http://xprogramming.com/ http://www.agilealliance.org/ Kanban Oversimplified http://www.agileproductdesign.com/blog/2009/kanban_over_simplified.html Ken Schwaber & Jeff Sutherland, Scrum Guide, Scrum.org Pete Deemer, Gabrielle Benefield, Craig Larman & Bas Vodde, Scrum Primer, GoodAgile.com HanoiScrum.net AgileVietnam.org ScrumAlliance.org AgileAlliance.org A brief introduction to Agile Software Development 77
  • 90. Q&A A brief introduction to Agile Software Development 78
  • 91. A brief introduction to Agile Software Development 79 Thank you! Let’s Go Agile! Sunday October 23rd 2011 FPT University, Innovation Building, Quang Trung Software City, District 12, HCMC, Vietnam

Editor's Notes

  1. film
  2. A research and reflection of SomeBody:We are living in chaos: eco crisis, tech boom, changes …
  3. How to create a software from scratch?
  4. Parties:UsersHas problems to be solvedUsually disorganized, chaotic, groupCustomersProvides requirements and validationShould speak with “one voice”Developers Actually builds the stuff Lots of different roles hereBusiness Owner Manages resources and money Often ignored in Development Process…Tech concernsRequirementsDetermine What the Software has to do…Challenge: Satisfy the UsersProduction Actually Build the Software Challenge: Deliver Quality ProductMaintenance Modify Software to satisfy new requirements Challenge: Maintain Quality
  5. For reference and printing if needed, not for presenting
  6. Boehm, B.; R. Turner (2004). Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison-Wesley. pp. 55–57. ISBN 0-321-18612-5.
  7. Inherit from RAD
  8. Film firstVẽrađồhình Scrum3 PhútBạnnàocóthểgiúptôicắtnghĩatừ framework nhỉ? “độtnhiêntôithấybítừ”Kháiniệmkhunglàmviệc (framework) làgì?Tạisaokhônggọi Scrum làquytrình?
  9. Cross the mountainTraditional managers => ScrumMaster
  10. cross-functional = there is no strict role for individualsCode are collectively developed
  11. The importance of planning, not plan documentThe importance of responsibility -> select itemsThe importance of prioritizing -> reduce risksMake things clear
  12. Image , point to position
  13. Sutherland
  14. Architectural spike():very simple program to explore potential solutions, Most spikes are not good enough to keepMetaphor(an du): common vision of how the program works
  15. Courage(kien quyet)
  16. Introduced in XP
  17. SCM: svn,cvs, gitAutomated Build:Ant, Maven, MSBuild or IBM Rational Build ForgeAutomated tools: CruiseControl, Jenkins, Hudson
  18. Introduced in XP
  19. What does it mean?