Certified Scrum Developer

Certified Scrum Developer Training

Program overview

This program introduces Agile Values & Principles, Scrum Framework, Acceptance Test Driven Development, Behavior Driven Development, Test Driven Development, Refactoring, Emergent Design, Agile Architecture, Collaboration, and refactoring techniques to the audience and follows a life cycle approach where participants get to learn how to practice these in real life projects. Participants learn to implement TDD on a project developing in either java, .net, ruby, python or C++ framework. Workshop also covers how to effectively work on legacy code and break dependencies. Expected business outcome is readable, maintainable code going forward as well reduction is defects.

Key Learning Outcomes

  • Introduction to Scrum Framework, Elements of Scrum
  • Test Driven Development – why, what and how
  • TDD Cycle – Red, Green and Refactor
  • Drive the development (design and implementation) of a User Story
  • Learn concept of Emergent Design and why emergent design
  • How TDD helps you design software
  • Why testing first is better than testing after
  • Overview of Refactoring, Clean Code principle and Refactoring to Patterns
  • Software design – going deeper in SOLID design Principles
  • How to use mocking frameworks
  • Behavior Driven Development using SpecFlow/Cucumber
  • Specification by Examples using Gherkin language
  • Writing Scenarios and Scenario Outlines
  • Preparing Steps using xUnit framework
  • Difference between TDD and BDD
  • How to setup BDD practices within Scrum team

Key Learning Activities

Hands-on activities (60-70%) and discussion on mentioned topics (30-40%). Hands-on activities include writing unit test, code, writing examples and some group creativity activities.

Target Audience

Development team members including developers, testers, architects, leads and scrum masters.

Prerequisites

Laptops/Desktops with required software and internet connection. Software will be provided by facilitator.

Agenda for 5 days:

The whole workshop will be delivered in 10 Sprints with possible agenda as below:

Day 1: Scrum Essential

Agile and Scrum Framework

  • What is time-boxing and why time-boxing?
  • What is Empirical Process?
  • Scrum Framework – in Brief

Class Project

  • Introduction to class project
  • Introduction to project infrastructure
  • Scrum Roles
  • Definition of Done

Product Backlog

  • Prepare product backlog
  • Refine product backlog
  • Identify MVP & MMF
  • Ordering product backlog
Day 2: Application Lifecycle Management (ALM) and Scrum Beyond Single Team Scrum

Agile Estimation & Planning

  • Why to estimation and how to estimate?
  • Relative Estimation
  • Estimating Product Backlog
  • Preparing Release plan

Sprint Simulation using ALM Tools

  • Sprint simulations
  • Agile Metrics & Reporting
  • Team dynamics and dysfunction
  • Introduction to Large-Scale Scrum (LeSS)
Day 3: Agile Requirements and Acceptance Test Driven Development

Specification by Examples Workshop

  • Challenges in Collaboration between Business and Development Team
  • How to write 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
  • Principles of Behavior Driven Development
  • Practicing BDD with Cucumber/Behave/SpecFlow: installation, writing features, testing and reporting
  • Role of Product Owner and crew when writing scenarios acceptance
Day 4: Test Driven Development and Agile Design

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 of the principle of isolation and control of test results
  • The mocks or simulate how the code Device code tested
  • Use of simulation frameworks

Organization of test activities

  • Methodology of correcting a Bug
  • Automate the execution of Unit Test
  • Generating reports
  • Integration with Build Tool and IDE

Design Frameworks

  • Definition and principles of frameworks
  • Emergent Design
  • Principle of scalability and implementation

Refactoring

  • Consequence of technical debt and risk of “breaking” the code
  • Where? When? How refactoring?
  • 3 stages of refactoring
  • Support of TDD and ATDD during refactoring
  • Best practices and limitations
  • Working with legacy code
 Day 5: Continuous Integration and Agile Testing

Introduction to Continuous Integration

  • Principles, environment and infrastructure
  • Branching strategies and patterns for continuous integration.
  • Solutions for Continuous Integration: Hudson, Jenkins, Cruise Control, Bamboo, TeamCity, Apache Continuum

Introduction to Jenkins

  • Dashboard and health projects
  • Architecture and extension principle
  • Installation, configuration and use of Jenkins
  • Automated Builds with Jenkins
  • Automation Testing with JUnit (TDD) and Cucumber (BDD/ATDD)

Agile Testing

  • Importance of Agile testing
  • Ensure better quality product sprint by sprint
  • Test Automation Frameworks
  • Test quadrants and test pyramids

Other topics

  • Continuous Delivery and Deployment – Why and How?
  • DevOps Introduction
  • ALM tools for Development Team such as Jira