
Become a
Certified Scrum Developer ®
On-Site Classes
Congratulations! You've begun your transition to Agile software development. Your Scrum Masters and your Product Owners have been trained for their new roles. But how about your Development Team? Are they using the Agile Engineering practices necessary to get the most benefits from Scrum?
Help your team achieve the full benefits of software development with Scrum by scheduling an on-site Certified Scrum Developer class today.
Upcoming Public Classes
In addition to training for our corporate and government clients, we also offer public classes.
We currently have the following public classes scheduled:
Columbus, OH
May 15 - 19
San Jose, CA
June 12 - 16
Olympia, WA
June 19 - 23
Vancouver, BC
June 26 - 30
Jersey City, NJ
July 10 - 14
San Diego, CA
July 24 - 28
The Certified Scrum Developer Program
CSD Credential
The Scrum Alliance created the Certified Scrum Developer program to allow developers to:
-
Learn the foundations of Scrum
-
Understand Agile Engineering practices
-
Demonstrate to employers and peers your attainment of core Scrum knowledge.
-
Expand your career opportunities by staying relevant and marketable across all industry sectors adopting Agile practices.
-
Engage with a community of recognized Scrum experts who are committed to continuous improvement.
CSD Requirements
There are two possible tracks to obtain a CSD. Our CSD curriculum is designed to fulfill all of the requirements of the second track.
Track 1
-
CSM course (2 days)
-
CSD technical course (must include coding) (3 days)
Track 2
-
Intro to Scrum CSD course (1 day)
-
CSD technical course (must include coding) (3 days)
-
CSD technical elective course (1 day)
CSD Curriculum
Day 1: Scrum Fundamentals
-
Waterfall
-
Philosophical underpinnings
-
Introduction to Scrum
-
Core Concepts
-
Agile Principles
-
Sprints
-
Requirements and User Stories
-
Product Backlog
-
Velocity
-
Roles – Product Owner
-
Roles – Scrum Master
-
Roles – Dev Team
-
Planning in Agile
-
Sprint Meetings
-
Agile Game – applying the lessons learned
Day 2: Agile Technical Practices
I. Programming by Intention
-
Visualizing the code you wish you had
-
Using helper methods
-
Delegating
-
Preview of Extract Method and Extract Interface refactoring techniques
-
Single Responsibility principle
-
Open / Closed principle
-
Liskov Substitution principle
-
Interface Segregation principle
-
Dependency Inversion principle
-
Onion Architectures
-
Evolving Architectures
-
Code smells
-
Refactoring Techniques
-
Refactoring Case Study
II. SOLID Design Principles
-
Single Responsibility principle
-
Open / Closed principle
-
Liskov Substitution principle
-
Interface Segregation principle
-
Dependency Inversion principle
III. Architecture and Agile
-
Onion Architectures
-
Evolving Architectures
IV. Refactoring
-
Code smells
-
Refactoring Techniques
-
Refactoring Case Study
Day 3 - 5: Acceptance Test Driven Development (ATDD) / Test Driven Development (TDD)
I. Introduction: What is ATDD/BDD/TDD?
-
What is ATDD – Acceptance tests
-
What is BDD
-
What is TDD
-
Red – Green - Clean
-
How will ATDD/BDD really help?
-
Understanding Roles & Responsibilities
-
ATDD/BDD work process Flow
-
ATDD best practices
II. Cucumber and Gherkin
-
What is Cucumber
-
Arrange – Act – Assert
-
Gherkin Syntax – Keywords
-
Features and Feature files
-
Creating scenarios – using Given/When/Then/And/But
-
Creating multiple scenarios for a single feature
-
Background key word
-
Scenario Outlines
-
Regular expressions
-
Good/Bad Practices – DSL
-
ATDD Best Practices
-
Tags
III. Tools and web driver
-
Selenium and Selenium web driver
-
Practice – Case study number 1
IV. Programming the tests (step definitions) in Java
-
Case Study number 2
-
Case Study number 3
V. Testing an API
-
Interfacing with an API
-
Case Study 1: Testing Git Hub
-
Parsing the response
-
Case Study 2: Testing Google Maps
VI. Advanced topics
-
Folder Structure - Configuration, Feature files, and step definition files
-
Libraries and Logging
-
Refactoring test code – the DRY principal
-
Creating a DSL of steps
-
Refactoring with the Page Object pattern
-
Case Study number 4