Duration
3 days
Overview
The 3-day Applying Professional Scrum for Software Development course provides a real-world view of what it is like to build software with Scrum. Throughout the course, students collaborate as a team in a series of Sprints where they apply modern engineering practices and use the Scrum framework to cope with changes. Students experience how to deliver quality software using Scrum with Agile and DevOps practices. Students learn how to develop increments of potentially releasable functionality from a realistic Product Backlog over three days. Students concurrently do requirements engineering, design, development, Testing, Integration, and deployment within a single iteration. The
course teaches how Agile engineering practices and supportive DevOps practices improve a team's capabilities even more.
Objectives
- Experience real collaboration between Developers, Product Owner, and Scrum
- Master in the quest of building and delivering a high quality and valuable product.
- Build and deliver working software by applying modern Agile engineering practices and supportive DevOps tools.
- Understand the synergy between the various elements of Scrum and complementary practices.
Topics
- Using Scrum Framework to develop a product
- Working within a self-organized Scrum Team
- Managing requirement with Specification by Example
- Test-Driven Development & Acceptance Test Driven Development
- Agile Testing with test automation and exploratory Testing
- Pair Programming & Mob programming
- Software Craftsmanship & Emergent Design
- DevOps with Scrum and Kanban
Target Audience
The Applying Professional Scrum for Software Development course is intended for all Scrum Team members to develop and deliver software-based systems. It is including architects, analysts, programmers, database developers, testers, managers, IT-Operations, and others, including Scrum Masters and Product Owners. This course provides the most significant value if the whole Scrum Team (Developers, Scrum Master, and Product Owner) attend together and
experience the power of real teamwork. Teams that attend together are not only able to apply learnings to their work
immediately but are also able to recall their classroom experiences to overcome particularly challenging times. This
class is also valuable to individuals attending without their entire team. These students will experience working on a
Scrum Team during the course. They will be able to transfer their learnings to their teammates, often convincing their
teammates of the advantages of using Scrum, Agile, and DevOps practices.
Prerequisite
There is no prerequisite, but attendees will be able to make the most of the class if they:
- Have taken the Scrum Open (free online assessment)
- Have experience in software development as a developer, tester, UI designer, Business Analyst, DBA, or DevOps engineer
Certification
This course has the Professional Scrum Developer level I (PSD I) as an associated credential. All participants completing the Applying Professional Scrum for Software Development course receive a password from taking the PSD I assessment. This industry-recognized certification requires a minimum passing score on the associated rigorous examination. Scrum.org maintains a public list with everyone holding a PSD I credential.
Agenda
Day 1: Scrum Essential, Application Lifecycle Management, and Scrum Beyond Single Team
Agile and Scrum Framework
- What is time-boxing, and why time-boxing?
- What is the Empirical Process?
- Scrum Framework – in Brief
Initiation of development using Scrum
- Introduction to a class project
- Scrum Roles
- Definition of Done
Product Backlog to bring transparency
- Prepare product backlog
- Refine product backlog
- Ordering product backlog
Agile Estimation & Planning
- Why estimate and how to estimate?
- Relative Estimation & preparing Release plan
- Estimating Product Backlog
Sprint Simulation using DevOps Tools
- Sprint simulations
- Agile Metrics & Reporting
- Team dynamics and dysfunction
Day 2: Agile Requirements, Acceptance Test-Driven Development, and Test-Driven Development
Specification by Examples Workshop
- Challenges in Collaboration between Business and
- Development Team
- How to write a better specification
- Why Examples needed for specification
- Writing Examples in Gherkin
ATDD and BDD workshop
- Principles of Acceptance Test-Driven Development
- Consequences of ATDD on the Sprint Planning and
- Sprint Review
- Practicing BDD with Cucumber/Behave/SpecFlow
Test-Driven Development
- Test-Driven Development (TDD) approach and its benefits
- Improving the quality and design of the code by TDD
- Different types of tests: unit, Integration, functional
Unit testing with Unit Testing Framework
- Understand the life cycle of a test in the Unit Testing framework
- Respect for the principle of isolation and control of test results
- Use of simulation frameworks
Day 3: Refactoring, Emergent Design, DevOps and Agile Testing Design Frameworks
Software Design
- Definition and principles of frameworks
- Emergent Design
- Principle of scalability and implementation
Refactoring
- The consequence of technical debt and the risk of "breaking" the code
- Three stages of refactoring
- Support of TDD and ATDD during refactoring
Agile Testing
- Importance of Agile Testing
- Ensure better quality product sprint by sprint
- Test Automation Frameworks
- Test quadrants and test pyramids
DevOps
- Why what and how DevOps, Infrastructure as code
- 3-ways of DevOps, Culture, Automation, Measure, and Share (CAMS)
- Continuous Integration, delivery, and deployment
Programme scope, delivery arrangements and suitability are confirmed during enquiry.