Course Category: Agile Methods
Course Duration: 3 Days
Hours: 21 Contact Hours

Course Overview

Certified Scrum Developer® (CSD) is a technical certification from Scrum Alliance family of popular certifications that include the Certified Scrum Master (CSM), Certified Scrum Product Owner (CSPO), Advanced Certified Scrum Master (A-CSM) and the Certified Scrum Developer (CSD).

The Certified Scrum Developer® course is aimed at Software professionals who build Software in the iterative and incremental approach that Scrum requires.

CSD Certification

The CSD Certification is achieved through the completion of 5 days of formal training taught by Scrum Alliance Registered Education Partner and a Scrum Alliance approved CSD instructor.

The two tracks or pathways to become a CSD are:

Track 1: CSM Course (2 days) + CSD technical course including coding (3 days).

This course, Agile Architecture & Design is the 3 days CSD technical course. CSMs with active certifications would be eligible for the CSD Certification after the course.

Should you complete this course first, then you would be eligible to become a CSD on completing the CSM certification.

OR

Track 2: Intro to Scrum CSD course (1 day) + CSD technical course, including coding (3 days) + CSD technical elective course (1 day)

The CSD Certification is valid for 2 years and is required to be renewed thereafter.

Pre-requisites

Attendees should be well versed in Java / Ruby / Python / JavaScript / C#

Training Objective

  • Learn to deliver stories in an eXtreme Programming (XP) way
  • Explore Object Oriented & Functional Programming Principles and Patterns
  • Learn to work effectively with Legacy codebases
  • Write Clean-Code and Conduct Refactoring
  • Appreciate & practice Test Driven Development (TDD)
  • Deep dive into Evolutionary architecture and Design
  • Align with Business goals through Behaviour Driven Development (BDD)

Course Outline

  • Deep dive into SOLID, YAGNI, KISS and DRY principles
    • Open Closed Principle (OCP)
    • Single Responsibility Principle (SRP)
    • Don’t Repeat Yourself (DRY)
    • Dependency Inversion Principle (DIP)
    • Liskov Substitution Principle (LSP)
    • Interface Segregation Principle (ISP)
    • Law of Demeter
  • Understand Functional Programming Principles
    • Immutability & Disciplined state
    • Pure functions
    • First class functions and High order functions
    • Type systems
    • Referential transparency
  • Learn “Code Smells” elimination through opportunistic refactoring
    • Understanding & Recognising code-smells
    • Code clean-up & Refactoring
    • Refactoring to Patterns
    • Using Functional constructs to Refactor
  • Appreciate and learn effective unit-testing
    • Anatomy of Unit Testing Framework
    • Automated Tests
    • Overview of XUnit / JUnit
    • Test Doubles – Stubs, Mocks, Spy, Fakes
    • Testing Pyramid
  • Experience & follow programming in pairs
  • Hands-on Why, How and What of “Continuous Integration”
    • Setup & Configure CI server (Jenkins / GoCD / Azure Pipeline)
    • Execute and Write Pipeline build and deployment scripts
    • Learn CI Best Practices
    • Trunk Based Development as the Branching Strategy
  • Explore TDD and experience the key motivators
    • Introduction to TDD
    • Test First Vs Test Last
    • TDD Rhythm: Red, Green, Refactor
  • Writing Business Scenarios using Gherkins
    • Collaboration techniques for effective Scenario writing
    • Documenting Scenarios with Gherkin
    • Behaviour Scenario Patterns
  • Implementing Behaviour-Driven Development
    • Driving Implementation and Design from Scenarios
    • Creating an Application from Scratch using BDD (Cucumber / Spec Flow / Jasmine)
  • Analyse & practice Agile evolutionary architecture & design
  • Carving Designs through BDD & TDD
  • Emergent Architecture with BDD & TDD
  • Experience in depth at the way Agile teams work together

Course Category: Agile Methods
Course Duration: 3 Days
Hours: 21 Contact Hours