Scrum Developer Training

Program overview and business impact

This program introduces Scrum framework, roles of developer and testers in agile, agile testing, agile development, Unit Testing, Test Driven Development (TDD), Specification by Examples, Behavior Driven Development (BDD), Acceptance Test Driven Development (ATDD), Refactoring, Emergent Design, Agile Architecture, Collaboration, Continuous Integration and Delivery, 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 all above on a class project by developing it either using java, .net or ruby 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, XP, Kanban and Lean
  • What is time-boxing and why time-boxing?
  • What is Empirical Process?
  • Test Driven Development – why, what and how
  • TDD Cycle – Red, Green and Refactor
  • Drive the development (design and implementation) of a User Story
  • Acceptance Test Driven Development (ATDD) cycle
  • What are the key difference between TDD, ATDD and BDD
  • 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
  • How to use mocking frameworks
  • Continuous Integration practices
  • How to configure CI tools and run automated build
  • Branching strategies and patterns for continuous integration.
  • Installation, configuration and use of Jenkins
  • Automated Builds with Jenkins and Maven
  • Automation Testing with JUnit (TDD) and Cucumber (BDD/ATDD)

Key Learning Activities – Hands-on activities (60-70%) and discussion on mentioned topics (30-40%). Hands-on activities includes writing unit test, code, writing examples, setting environment, installing tools  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.

Day-wise course break-up

Training progresses like below but ordering may change based on participant’s feedback during workshop. We believe in empirical processes and follow same for training as well. Complete workshop will get delivered in 10 iteration and every iteration will be for three and half hours.

Day 1: Scrum Essential

Agile and Scrum Framework

  • What is time-boxing and why time-boxing?
  • What is Empirical Process?
  • Scrum Framework – in Brief
  • Introduction to class project
  • Introduction to project infrastructure
  • Roles of Developer and Tester in Scrum
  • Definition of Done
  • Relative Estimation
  • Sizing product backlog

Day 2: Acceptance Test Driven Development (ATDD) and BDD

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/Specflow – Writing features, testing and reporting
  • Role of Product Owner and crew when writing scenarios acceptance

Day 3: Test Driven Development and Agile Design

Unit Testing

  • What is unit testing
  • Why unit testing is needed
  • Difference between Unit Testing and Integration Testing
  • Developer and Tester role in Unit Testing

Test Driven Development workshop

  • Deion of the TDD approach and its benefits
  • Improving the quality and design of the code by testing?
  • Different types of tests: unit, integration, functional
  • Understand the life cycle of a test in the xUnit framework
  • Respect of the principle of isolation and control of test results

Refactoring

  • Consequence of technical debt and risk of “breaking” the code
  • Where? When? How refactoring?
  • Support of TDD and ATDD during refactoring
  • Best practices and limitations
  • Definition and principles of frameworks
  • Emergent Design
  • Principle of scalability and implementation

Day 4: Mocking, Continuous Integration and Agile Testing

Test Double and Continuous Refactoring

  • What is Test Double and when to use it
  • What is Mocking
  • Mocking framework in practice
  • Refactoring patterns
  • Working effectively with legacy come

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
  • Installation, configuration and use of Jenkins
  • Automated Builds with Jenkins and Maven
  • Automation Testing with JUnit (TDD) and Cucumber (BDD/ATDD)

Day 5: Agile Testing, Kanban and DevOps workshop

Agile Testing

  • Importance of Agile testing
  • Brian Marick’s Testing Quadrants
  • Inverting the Testing Pyramid
  • Developer Testing Practices
  • Exploratory Testing practices
  • Ensure better quality product sprint by sprint
  • Test Automation Frameworks

Kanban

  • Why Kanban
  • Design workflow by creating value stream mapping
  • Limiting WIP
  • Visualizing your work by board
  • Kanban Metrics

DevOps

  • Infrastructure as code
  • Provisioning and configuring servers
  • Designing delivery pipelines
  • Automating pipelines
  • Continuous deployment on production