SlideShare a Scribd company logo
Session 1 The cooperative gameAgileDev TourDuong Trong TanHanoi, December  20101TurboBoost your development performance
ObjectivesSoftware Engineering trendsWhat is agile development?The agile manifestoThe diversity of adoptionsScrumXPTDDCrystalKanbanAgile mashupThe cooperative game2TurboBoost your development performance
“Agile projects succeed when the team gets the spirit of agility.” 				– Ron JeffriesTurboBoost your development performance3AgileDev BasicsImage courtesy to Pollyanna Pixton
TurboBoost your development performance4Continuous improvementHyper productiveKaizenAgileSmall teamsIncrementalLeanChangesEarned Value BasedIterativeRapidAdaptive
About TrendsTurboBoost your development performance5Agile techniques were in use since the beginning.Agile techniques did not show competitive advantage in the 1970s / 1980s,    but did during the 1990s and do now.Trial runs of current agile methodologies, 1993 - 1995		RAD			 Crystal 		XP 			Crystal 		Scrum 		KanbanIn chaos, there are special kinds of controlled pattern => agile methods.
TurboBoost your development performance6So, what are software projects?
Partiesand ConcernsUsers?Customers?BO?Developers?7TurboBoost your development performance
TurboBoost your development performance8What 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 toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan9TurboBoost your development performanceThat 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 TurboBoost your development performance10Our 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.AgileAlliance.org
AgileDevPlan-drivenTurboBoost your development performanceLow criticalitySenior developersObjectives change very oftenSmall number of developersCulture that thrives on chaosHigh criticalityJunior developersLow objectives changeLarge number of developersCulture that demands order11Home ground comparison
The diversity of methodsTurboBoost your development performance12
A hyper-productive development modelTurboBoost your development performance13Scrum
ScrumTurboBoost your development performance14One of the most successful agile methods because of its hyper-productivityIt is management – orientedSomewhat CMM Level 3 equivalenceWidely used in various types of projectsGoogle AdWorlds project3MUniversities RnD projectsIn VN: LogiGear, KPM, FSOFT, FAT, etc.
TurboBoost your development performance15Image courtesy to ScrumAlliance
Scrum RolesScrumMasterProductOwnerScrum TeamOther parties (all kinds of chicken)16TurboBoost your development performance
Scrum TeamTeam is cross-functional and consists of 5-9 peopleThere are no set project roles within the teamTeam defines tasks and assignmentsTeam is self-organizing and self-managingMaintains the Sprint BacklogConducts the Sprint Review17TurboBoost your development performance
ScrumMasterHolds daily 15 minute team meeting (Daily Scrum)Assures every people related to the project  follow the rulesRemoves obstaclesShields the team from external interference: “Keep Chickens away from Pigs”Maintains the Sprint Burndown ChartConducts Sprint Retrospective at the end of a SprintIs a facilitator, not a manager18TurboBoost your development performance
Product Owner (PO)Accountable for product successDefines all product featuresResponsible for prioritizing product featuresMaintains the Product BacklogInsures team working on highest valued features19TurboBoost your development performance
The Product BacklogList of all desired product featuresList can contain bugs, and non-functional itemsProduct Owner responsible for prioritizingItems can be added by anyone at anytimeEach item should have a business value assignedMaintained by the Product Owner20TurboBoost your development performance
A SprintTime box: 2-4 weeks (why?)An iteration for building a piece of increment (potentially shippable) of the whole systemIt’s the working time, not planning or asking what to do.The team manages itself during a SprintThe team commits to Product Backlog during the Sprint planning meetingThe Sprint Backlog is updated during a Sprint21TurboBoost your development performance
The Sprint BacklogEach item is prioritized and estimated22TurboBoost your development performance
23The Scrum Skeleton2.Daily Scrum Meeting What have you done?
 What will you do?
 What is impeding you?3. A Sprint (2-4 weeks)4. Sprint Review Meeting1. Sprint Planning Meeting5. Sprint Retrospective MeetingTurboBoost your development performance
Sprint Planning MeetingTime box: 8 hoursProduct backlog prepared prior to meetingFirst HalfTeam selects items committing to completeAdditional discussion of Product Backlog occurs during actual SprintSecond HalfOccurs after first half done – PO available for questionsTeam solely responsible for deciding how to buildTasks created / assigned – Sprint Backlog produced24TurboBoost your development performance
Scrum Daily MeetingHeld every day during a SprintTimebox:15 minutesTeam members report to each other not Scrum MasterAsks 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 workIt helps removing burdens between members25TurboBoost your development performance
Sprint ReviewTime box: 4 hoursTeam presents “done” code to PO and stakeholdersFunctionality not “done” is not shownFeedback generated – Product Backlog maybe reprioritizedScrumMaster sets next Sprint Review26TurboBoost your development performance
Sprint RetrospectiveTime box: 3 hoursParticipantsScrumMaster Scrum Team. Product Owner is optionalQuestionsWhat went well and what can be improved?ScurmMaster helps the team in discovery – not provide answers27TurboBoost your development performance
The Sprint BacklogA kind o f To-do list for a SprintCreated by the Scrum Team (can be originated by one member, responsibility belongs to another)Product Owner has defined as highest priorityUsed for synchronizing works between team members28TurboBoost your development performance
The Burn-down ChartBurndown Chart shows the Sprint trend, the performance\velocity of the team through Sprints29TurboBoost your development performance
Potentially Shippable ProductSelected items are fully implemented, tested and ready for useSmall 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.30TurboBoost your development performance
Distributed ScrumIsolated Scrums - Teams are isolated across geographies. Distributed Scrum of Scrums –Scrum teams are isolated across geographies and integrated by a Scrum ofTotally Integrated Scrums – Scrum teams are cross-functional with members distributed across geographies.Sutherland et al. 31TurboBoost your development performance
Top Distributed Scrum IssuesDifficult leveraging available resources, best practices are often deemed proprietary, are time consuming and difficult to maintainDifficulty synchronizing work between distributed sitesLack of effective communication mechanismsConflicting behaviors, processes, and technologiesIncompatible data formats, schemas, and standardsEnsuring electronic transmission confidentiality and privacySutherland et al. 32TurboBoost your development performance
From hacking code to a real processTurboBoost your development performance33eXtreme Programming
eXtreme Programming ProjectTurboBoost your development performance34
XP ValuesTurboBoost your development performance35Simplicity encourages starting with the simplest solutionCommunicationfavors simple designs, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedbackFeedbackFrom the system, customer and from the team, to avoid optimismCouragedesign and code for today and not for tomorrowRespectrespect for others as well as self-respect
TurboBoost your development performance36
XP RolesThe CustomerSets project goals and makes business decisionsThe DeveloperTurn customer stories into working codeThe TrackerKeeps track of any metrics used by teamThe CoachGuides and mentors the team37TurboBoost your development performance
TurboBoost your development performance38Test Driven DevelopmentThis is not a complete dev strategy. It is ‘embedded’ into methods.Tests created before codingThis strategy focused on qualityDerived version: Behaviors Driven Development
“A human-Powered methodology for small team”TurboBoost your development performance39Crystal Clear
Crystal Clear PracticesFrequent DeliveryReflective ImprovementOsmotic CommunicationPersonal SafetyFocusEasy Access to Expert UsersAutomated TestsConfiguration ManagementFrequent Integration40TurboBoost your development performance
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 Cockburn41TurboBoost your development performance
Crystal ClearEvery product is slightly different and evolves over time, so the methodology, the set of conventions the team adopts, must be tuned and evolve.				- Alistair Cockburn42TurboBoost your development performance
Crystal Clear RolesSponsorAllocates money for the projectExpert UserLead DesignerLead Technical person, mentors less experienced team membersDesigner-ProgrammerEach person designs and programs43TurboBoost your development performance
KanbanTurboBoost your development performance44Kanban 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…Step 1DoneStep 2Step nInProcessInProcessInProcessQueueQueueQueue…Work Items
TurboBoost your development performance45Why use Kanban in Software Development?
Time-boxed iterative development has challenges 46Short time-boxes give more frequent opportunity to measure progress and inspect software but force development items to be smaller
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 TurboBoost your development performance
The time-boxed iteration dramaTurboBoost your development performance47
TurboBoost your development performance48Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous flow.
Kanban queueTurboBoost your development performance49…DoneStep 2Step nWork ItemsStep 1InProcessInProcessInProcessQueueQueueQueue…
Kanban queues (cont’d) TurboBoost your development performance50Large enough to keep the team busySmall enough to avoid premature prioritisationIdeally should be FIFO
Kanban - Work In ProgressTurboBoost your development performance51Reduce multi-taskingMaximize throughputEnhances teamwork
The multitasking issuesTurboBoost your development performance52Facts:20% time lost to context switching per ‘taskSequential yields results soonerAAABBBCCCABCChart courtesy to Yahoo!
ThroughputTurboBoost your development performance53Organizational overhead goes up as work in progress increasesTotal Cycle Time = Number of Things in Process   Average Completion Rateto improve cycle timeImprove Average Completion RateReduce Number of Things in Process
Enhances TeamworkTurboBoost your development performance54Team focus on goals that add value not individual tasksKanban Example 1TurboBoost your development performance55Image courtesy to Jeff Patton
Kanban Example 2TurboBoost your development performance56

More Related Content

PDF
Agile Scrum Training Process
PPTX
Agile (Scrum)
PPT
Agile Scrum Presentation-Detailed
PPTX
Agile methodology
PPT
Agile Scrum software methodology
PPT
What Is A Sprint Planning Meeting
PPTX
Scrum framework
PPTX
Scrum 101
Agile Scrum Training Process
Agile (Scrum)
Agile Scrum Presentation-Detailed
Agile methodology
Agile Scrum software methodology
What Is A Sprint Planning Meeting
Scrum framework
Scrum 101

What's hot (20)

PPTX
Agile vs. waterfall
PPTX
Scrum for Beginners
ODP
Agile Project management
PPTX
Agile Methodology in Software Development
PPTX
2017 Scrum by Picture
PPT
Agile Software Development Overview
PDF
Product Backlog Refinement
PPTX
Agile - Scrum Presentation
PDF
Getting Started - Introduction to Backlog Grooming
PPTX
Introduction to Scrum.ppt
ODP
Scrum in 15 Minutes
ODP
Scrum Process
PDF
Nguyen Vu Hung - Software Project Management with Jira Agile
PPTX
How to facilitate product backlog refinement sessions
PDF
Scrum - Sprint Planning
PDF
Scrum 101
PDF
PPT
Invest In Good User Stories
PPT
Agile Scrum
Agile vs. waterfall
Scrum for Beginners
Agile Project management
Agile Methodology in Software Development
2017 Scrum by Picture
Agile Software Development Overview
Product Backlog Refinement
Agile - Scrum Presentation
Getting Started - Introduction to Backlog Grooming
Introduction to Scrum.ppt
Scrum in 15 Minutes
Scrum Process
Nguyen Vu Hung - Software Project Management with Jira Agile
How to facilitate product backlog refinement sessions
Scrum - Sprint Planning
Scrum 101
Invest In Good User Stories
Agile Scrum
Ad

Viewers also liked (20)

PPTX
Introduction to formal methods
KEY
Agile Software Development, Overview
PPTX
Overview of Agile Methodology
PDF
Agile Software Development Overview
PDF
Formal methods 4 - Z notation
PDF
Formal Verification Techniques
PPTX
Intro agile development methodology abhilash chandran
PDF
Agile Software Development With SCRUM
PPTX
#1 formal methods – introduction for software engineering
PPTX
Agile Overview Session
PDF
Formal verification
PPTX
Formal methods 7 - category theory
PPT
Classic Formal Methods Model Checking
PPT
The Use of Formal Methods on the iFACTS Air Traffic Control Project
KEY
Agile Development Overview (with a bit about builds)
PPTX
Z specification
PPTX
Formal Methods lecture 01
PPTX
Iterative Incremental development
PPS
Formal Methods
PPTX
Agile Model for Beginner’s
Introduction to formal methods
Agile Software Development, Overview
Overview of Agile Methodology
Agile Software Development Overview
Formal methods 4 - Z notation
Formal Verification Techniques
Intro agile development methodology abhilash chandran
Agile Software Development With SCRUM
#1 formal methods – introduction for software engineering
Agile Overview Session
Formal verification
Formal methods 7 - category theory
Classic Formal Methods Model Checking
The Use of Formal Methods on the iFACTS Air Traffic Control Project
Agile Development Overview (with a bit about builds)
Z specification
Formal Methods lecture 01
Iterative Incremental development
Formal Methods
Agile Model for Beginner’s
Ad

Similar to Agile Software Development Overview (20)

PPTX
Agile methods
PDF
Scrum and Agile SDLC 101
PDF
Agile Process Introduction
PPT
Let’s Play Agile ! 12-09-15-testers_hub
PDF
SE18_Lec 05_Agile Software Development
PPTX
Introduction To Scrum Presentation for beginners
PPTX
Scrum
PDF
SE_Lec 04_Agile Software Development
PPT
Introduction into Scrum
PPT
An Introduction to Scrum
PPT
Intro To Scrum
PDF
Agile project management
PPTX
Agile Overview
PPT
PPTX
Agile Bootcamp
PPT
Agile processes scrum
PPT
Redistributable Intro To Scrum
PPT
Agile Project Management training by manohar prasad
PPT
Introduction to Agile & scrum
PPT
Agile Scrum Methodology
Agile methods
Scrum and Agile SDLC 101
Agile Process Introduction
Let’s Play Agile ! 12-09-15-testers_hub
SE18_Lec 05_Agile Software Development
Introduction To Scrum Presentation for beginners
Scrum
SE_Lec 04_Agile Software Development
Introduction into Scrum
An Introduction to Scrum
Intro To Scrum
Agile project management
Agile Overview
Agile Bootcamp
Agile processes scrum
Redistributable Intro To Scrum
Agile Project Management training by manohar prasad
Introduction to Agile & scrum
Agile Scrum Methodology

More from DUONG Trong Tan (20)

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

Recently uploaded (20)

PDF
Pre independence Education in Inndia.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
master seminar digital applications in india
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
Complications of Minimal Access Surgery at WLH
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Classroom Observation Tools for Teachers
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Cell Types and Its function , kingdom of life
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
RMMM.pdf make it easy to upload and study
PDF
O7-L3 Supply Chain Operations - ICLT Program
Pre independence Education in Inndia.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
master seminar digital applications in india
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
Complications of Minimal Access Surgery at WLH
PPH.pptx obstetrics and gynecology in nursing
Microbial diseases, their pathogenesis and prophylaxis
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Classroom Observation Tools for Teachers
Week 4 Term 3 Study Techniques revisited.pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Supply Chain Operations Speaking Notes -ICLT Program
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
TR - Agricultural Crops Production NC III.pdf
VCE English Exam - Section C Student Revision Booklet
Cell Types and Its function , kingdom of life
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
RMMM.pdf make it easy to upload and study
O7-L3 Supply Chain Operations - ICLT Program

Agile Software Development Overview

  • 1. Session 1 The cooperative gameAgileDev TourDuong Trong TanHanoi, December 20101TurboBoost your development performance
  • 2. ObjectivesSoftware Engineering trendsWhat is agile development?The agile manifestoThe diversity of adoptionsScrumXPTDDCrystalKanbanAgile mashupThe cooperative game2TurboBoost your development performance
  • 3. “Agile projects succeed when the team gets the spirit of agility.” – Ron JeffriesTurboBoost your development performance3AgileDev BasicsImage courtesy to Pollyanna Pixton
  • 4. TurboBoost your development performance4Continuous improvementHyper productiveKaizenAgileSmall teamsIncrementalLeanChangesEarned Value BasedIterativeRapidAdaptive
  • 5. About TrendsTurboBoost your development performance5Agile techniques were in use since the beginning.Agile techniques did not show competitive advantage in the 1970s / 1980s, but did during the 1990s and do now.Trial runs of current agile methodologies, 1993 - 1995 RAD Crystal XP Crystal Scrum KanbanIn chaos, there are special kinds of controlled pattern => agile methods.
  • 6. TurboBoost your development performance6So, what are software projects?
  • 8. TurboBoost your development performance8What 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 toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan9TurboBoost your development performanceThat 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 TurboBoost your development performance10Our 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.AgileAlliance.org
  • 11. AgileDevPlan-drivenTurboBoost your development performanceLow criticalitySenior developersObjectives change very oftenSmall number of developersCulture that thrives on chaosHigh criticalityJunior developersLow objectives changeLarge number of developersCulture that demands order11Home ground comparison
  • 12. The diversity of methodsTurboBoost your development performance12
  • 13. A hyper-productive development modelTurboBoost your development performance13Scrum
  • 14. ScrumTurboBoost your development performance14One of the most successful agile methods because of its hyper-productivityIt is management – orientedSomewhat CMM Level 3 equivalenceWidely used in various types of projectsGoogle AdWorlds project3MUniversities RnD projectsIn VN: LogiGear, KPM, FSOFT, FAT, etc.
  • 15. TurboBoost your development performance15Image courtesy to ScrumAlliance
  • 16. Scrum RolesScrumMasterProductOwnerScrum TeamOther parties (all kinds of chicken)16TurboBoost your development performance
  • 17. Scrum TeamTeam is cross-functional and consists of 5-9 peopleThere are no set project roles within the teamTeam defines tasks and assignmentsTeam is self-organizing and self-managingMaintains the Sprint BacklogConducts the Sprint Review17TurboBoost your development performance
  • 18. ScrumMasterHolds daily 15 minute team meeting (Daily Scrum)Assures every people related to the project follow the rulesRemoves obstaclesShields the team from external interference: “Keep Chickens away from Pigs”Maintains the Sprint Burndown ChartConducts Sprint Retrospective at the end of a SprintIs a facilitator, not a manager18TurboBoost your development performance
  • 19. Product Owner (PO)Accountable for product successDefines all product featuresResponsible for prioritizing product featuresMaintains the Product BacklogInsures team working on highest valued features19TurboBoost your development performance
  • 20. The Product BacklogList of all desired product featuresList can contain bugs, and non-functional itemsProduct Owner responsible for prioritizingItems can be added by anyone at anytimeEach item should have a business value assignedMaintained by the Product Owner20TurboBoost your development performance
  • 21. A SprintTime box: 2-4 weeks (why?)An iteration for building a piece of increment (potentially shippable) of the whole systemIt’s the working time, not planning or asking what to do.The team manages itself during a SprintThe team commits to Product Backlog during the Sprint planning meetingThe Sprint Backlog is updated during a Sprint21TurboBoost your development performance
  • 22. The Sprint BacklogEach item is prioritized and estimated22TurboBoost your development performance
  • 23. 23The Scrum Skeleton2.Daily Scrum Meeting What have you done?
  • 24. What will you do?
  • 25. What is impeding you?3. A Sprint (2-4 weeks)4. Sprint Review Meeting1. Sprint Planning Meeting5. Sprint Retrospective MeetingTurboBoost your development performance
  • 26. Sprint Planning MeetingTime box: 8 hoursProduct backlog prepared prior to meetingFirst HalfTeam selects items committing to completeAdditional discussion of Product Backlog occurs during actual SprintSecond HalfOccurs after first half done – PO available for questionsTeam solely responsible for deciding how to buildTasks created / assigned – Sprint Backlog produced24TurboBoost your development performance
  • 27. Scrum Daily MeetingHeld every day during a SprintTimebox:15 minutesTeam members report to each other not Scrum MasterAsks 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 workIt helps removing burdens between members25TurboBoost your development performance
  • 28. Sprint ReviewTime box: 4 hoursTeam presents “done” code to PO and stakeholdersFunctionality not “done” is not shownFeedback generated – Product Backlog maybe reprioritizedScrumMaster sets next Sprint Review26TurboBoost your development performance
  • 29. Sprint RetrospectiveTime box: 3 hoursParticipantsScrumMaster Scrum Team. Product Owner is optionalQuestionsWhat went well and what can be improved?ScurmMaster helps the team in discovery – not provide answers27TurboBoost your development performance
  • 30. The Sprint BacklogA kind o f To-do list for a SprintCreated by the Scrum Team (can be originated by one member, responsibility belongs to another)Product Owner has defined as highest priorityUsed for synchronizing works between team members28TurboBoost your development performance
  • 31. The Burn-down ChartBurndown Chart shows the Sprint trend, the performance\velocity of the team through Sprints29TurboBoost your development performance
  • 32. Potentially Shippable ProductSelected items are fully implemented, tested and ready for useSmall 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.30TurboBoost your development performance
  • 33. Distributed ScrumIsolated Scrums - Teams are isolated across geographies. Distributed Scrum of Scrums –Scrum teams are isolated across geographies and integrated by a Scrum ofTotally Integrated Scrums – Scrum teams are cross-functional with members distributed across geographies.Sutherland et al. 31TurboBoost your development performance
  • 34. Top Distributed Scrum IssuesDifficult leveraging available resources, best practices are often deemed proprietary, are time consuming and difficult to maintainDifficulty synchronizing work between distributed sitesLack of effective communication mechanismsConflicting behaviors, processes, and technologiesIncompatible data formats, schemas, and standardsEnsuring electronic transmission confidentiality and privacySutherland et al. 32TurboBoost your development performance
  • 35. From hacking code to a real processTurboBoost your development performance33eXtreme Programming
  • 36. eXtreme Programming ProjectTurboBoost your development performance34
  • 37. XP ValuesTurboBoost your development performance35Simplicity encourages starting with the simplest solutionCommunicationfavors simple designs, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedbackFeedbackFrom the system, customer and from the team, to avoid optimismCouragedesign and code for today and not for tomorrowRespectrespect for others as well as self-respect
  • 39. XP RolesThe CustomerSets project goals and makes business decisionsThe DeveloperTurn customer stories into working codeThe TrackerKeeps track of any metrics used by teamThe CoachGuides and mentors the team37TurboBoost your development performance
  • 40. TurboBoost your development performance38Test Driven DevelopmentThis is not a complete dev strategy. It is ‘embedded’ into methods.Tests created before codingThis strategy focused on qualityDerived version: Behaviors Driven Development
  • 41. “A human-Powered methodology for small team”TurboBoost your development performance39Crystal Clear
  • 42. Crystal Clear PracticesFrequent DeliveryReflective ImprovementOsmotic CommunicationPersonal SafetyFocusEasy Access to Expert UsersAutomated TestsConfiguration ManagementFrequent Integration40TurboBoost your development performance
  • 43. 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 Cockburn41TurboBoost your development performance
  • 44. Crystal ClearEvery product is slightly different and evolves over time, so the methodology, the set of conventions the team adopts, must be tuned and evolve. - Alistair Cockburn42TurboBoost your development performance
  • 45. Crystal Clear RolesSponsorAllocates money for the projectExpert UserLead DesignerLead Technical person, mentors less experienced team membersDesigner-ProgrammerEach person designs and programs43TurboBoost your development performance
  • 46. KanbanTurboBoost your development performance44Kanban 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…Step 1DoneStep 2Step nInProcessInProcessInProcessQueueQueueQueue…Work Items
  • 47. TurboBoost your development performance45Why use Kanban in Software Development?
  • 48. Time-boxed iterative development has challenges 46Short time-boxes give more frequent opportunity to measure progress and inspect software but force development items to be smaller
  • 49. Smaller development items are often too small to be valuable and difficult to identify
  • 50. Quality of requirements suffers as analysts rush to prepare for upcoming cycles
  • 51. Quality of current development suffers when busy analysts are unable to inspect software or answer questions during development
  • 52. Quality often suffers as testers race to complete work late in the development time-box TurboBoost your development performance
  • 53. The time-boxed iteration dramaTurboBoost your development performance47
  • 54. TurboBoost your development performance48Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous flow.
  • 55. Kanban queueTurboBoost your development performance49…DoneStep 2Step nWork ItemsStep 1InProcessInProcessInProcessQueueQueueQueue…
  • 56. Kanban queues (cont’d) TurboBoost your development performance50Large enough to keep the team busySmall enough to avoid premature prioritisationIdeally should be FIFO
  • 57. Kanban - Work In ProgressTurboBoost your development performance51Reduce multi-taskingMaximize throughputEnhances teamwork
  • 58. The multitasking issuesTurboBoost your development performance52Facts:20% time lost to context switching per ‘taskSequential yields results soonerAAABBBCCCABCChart courtesy to Yahoo!
  • 59. ThroughputTurboBoost your development performance53Organizational overhead goes up as work in progress increasesTotal Cycle Time = Number of Things in Process Average Completion Rateto improve cycle timeImprove Average Completion RateReduce Number of Things in Process
  • 60. Enhances TeamworkTurboBoost your development performance54Team focus on goals that add value not individual tasksKanban Example 1TurboBoost your development performance55Image courtesy to Jeff Patton
  • 61. Kanban Example 2TurboBoost your development performance56
  • 62. Kanban Example 3TurboBoost your development performance57
  • 63. Agile MashupTurboBoost your development performance58It is so-called Yet Another Agile Development Method (YAAM)It follows the Agile Manifesto and keeps the sprit of agilityIt 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 ScrumUse Burn down chart in Kanban
  • 64. TurboBoost your development performance59Agile Software Development, it is a cooperative game.
  • 65. Face-to-face communication is betterPaper2 people atwhiteboard2 people on phoneCommunication EffectivenessVideotape2 peopleon email Richness of communication channelSlide courtesy to Cockburn. A.60TurboBoost your development performance
  • 66. References and Further ReadingsTurboBoost your development performance61Agile Software Development: The Cooperative Game, 2ndEdn. By Alistair Cockburn.Scrum Guide 2010 by Ken Schwaber and Jeff SutherlandAgile Project Management with Scrum by Ken Schwaber Agile Java Crafting Code with Test-Driven Development By Jeff LangrTest-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 Oversimplifiedhttp://www.agileproductdesign.com/blog/2009/kanban_over_simplified.html

Editor's Notes

  • #6: A research and reflection of SomeBody:We are living in chaos: eco crisis, tech boom, changes …
  • #7: How to create a software from scratch?
  • #8: 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
  • #11: For reference and printing if needed, not for presenting
  • #18: cross-functional = there is no strict role for individualsCode are collectively developed
  • #25: The importance of planning, not plan documentThe importance of responsibility -> select itemsThe importance of prioritizing -> reduce risksMake things clear
  • #26: Image , point to position
  • #35: 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
  • #36: Courage(kien quyet)
  • #60: What does it mean?