DEV3L on Certified Scrum Developer
Tags: agile, xp, csd, scrum
Published: 2021-01-25 02:48:22

---
title: DEV3L on Certified Scrum Developer 
published: true
description: Certified Scrum Developer training focuses on technical practices, testing automation, and software development as a team.
tags: agile, xp, csd, scrum
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/b3xttrk38hgytwmkr484.jpg
---

Certified Scrum Developer training focuses on technical practices, testing automation, and software development as a team. This three-day technical training course focused mainly on hands-on activities. The course I took was facilitated by [Paul Moore](https://twitter.com/pdmoore), a highly experienced agile technical professional.

# Certified Scrum Developer - Day 1

Proliferation of options - tools & processes

![](https://pbs.twimg.com/media/ErjAjNeW8AQ38Oh?format=jpg&name=medium)

Meet & greet / overview

![](https://pbs.twimg.com/media/ErjBXcsXIAMGGSl?format=jpg&name=medium)

**Awareness > Proficiency > Fluency**

![](https://pbs.twimg.com/media/ErjKL6IXcAEHVbt?format=jpg&name=medium)

### Scrum:
- Product Backlog
- Plan for Sprint Backlog
- Meet daily
- Review, Deliver, & Improve

![](https://pbs.twimg.com/media/ErjQTiDW4AALo6K?format=jpg&name=medium)

**Artifacts added to Scrum Guide**
- Product Goal, why
- Sprint Goal, reason for sprint
- Definition of Done, accountability

![](https://pbs.twimg.com/media/ErjRPxuW4AEiF1v?format=jpg&name=medium)

**Roles**
- Product Owner, backlog
- Scrum Master, servant leader
- Development Team, creator

![](https://pbs.twimg.com/media/ErjSMC3XAAA90WJ?format=jpg&name=medium)

Development Team is Self Organizing - No one tells how

![](https://pbs.twimg.com/media/ErjS-d3W8AAHMN0?format=jpg&name=medium)

![](https://pbs.twimg.com/media/ErjTfzFWMAML9zR?format=jpg&name=medium)

Scrum expanding beyond world of software

---

[Manifesto for Agile Software Development](https://agilemanifesto.org/)
- applied practices, not theories

**Agile is**
- a mindset,
- defined by 4 values,
- guided by 12 principles,
- manifested through practices

![](https://pbs.twimg.com/media/ErjYWauW8AY_tPW?format=jpg&name=medium)

Add agile technical practices to your toolbox

![](https://pbs.twimg.com/media/ErjYhBDW4AAwOqA?format=jpg&name=medium)

---

### Automated Tests

Collapse feedback cycle to be as small as possible

![](https://pbs.twimg.com/media/ErjY1IOW8AEJrWx?format=jpg&name=medium)

Combine development with automated testing to create tight feedback loops

**Unit Test** - piece of code that invokes a unit of work

**TDD** - Red / Green / Refactor - Double Loop

![](https://pbs.twimg.com/media/ErjefuNW4AMWBWz?format=jpg&name=medium)

Determine problem/scope/boundaries first

Tests are just code - usually annotated
- arrange, act, assert

**TDD Fizzbuzz** in [Cyber Dojo](http://cyber-dojo.org)

Good tests easy to understand and descriptive

*Assert what you EXPECT, Compared to what it ACTUALLY does*

Read the failure message

*Arrange, Act, Assert*

**FIRST**
- Fast
- Isolation
- Repeatable
- Self-verifying
- Timely

Tests to be idempotent

Unit tests run as isolated code

---

### BDD - Business Readable Tests

- Business rules right
- Lessens miscommunication
- Clear criteria
- Decrease rework
- Tests Integration of System

![](https://pbs.twimg.com/media/ErkIvxWXMAQjuNl?format=jpg&name=medium)

Utilize Example Mapping to nail down requirements

Gherkin is business system documentation
- can be automated with frameworks

Scenario is individual case
Feature is a group of scenarios

**Caveats**
- slower
- failure hard to pinpoint
- more fragile

---

### Extreme Programming

- amplify the good

![](https://pbs.twimg.com/media/ErkYfVJXcAEVD70?format=jpg&name=medium)

Pair programming - two people, one problem
Driver (immediate) & Navigator (future)

Permutations of expertise levels and styles

[Stong-style pairing](http://llewellynfalco.blogspot.com/2014/06/llewellyns-strong-style-pairing.html): for an idea go from your head into computer it must go through partner's hands

# Certified Scrum Developer - Day 2

**[Mob Programming](https://www.youtube.com/watch?v=SHOVVnRB4h0):**
"All the brilliant people working on the same thing, at the same time, in the same space, and on the same computer"

Optimized for flow, not productivity... No need for meetings

[Resource Utilization Trap](https://www.youtube.com/watch?v=CostXs2p6r0) - [@henrikkniberg](https://twitter.com/henrikkniberg)

---

### Legacy Code

- "simply code without tests"
- code without confidence

Software changes with changes in business needs

![](https://pbs.twimg.com/media/EroeGEUXMAECOPW?format=jpg&name=medium)

---

### Code Coverage

**Characterization Tests**
- pin down behavior

![](https://pbs.twimg.com/media/ErofAeJXMAAAm_2?format=jpg&name=medium)

**Mob Programming**
- Gilded Rose Pin Down

Code coverage good for identifying execution, but that's it

**"Coverage"**
- method
- line
- branch

Intentional coverage vs Incidental coverage

![](https://pbs.twimg.com/media/ErpA4scWMAIClvj?format=jpg&name=medium)

---

### Refactoring
- restructure internal without altering external

![](https://pbs.twimg.com/media/ErpDwOIXcAQR0Tp?format=jpg&name=medium)

**Code Smells**
- invoking visceral reaction when viewing code

**Mob Programming**
- Gilded Rose Refactoring

**Cyclomatic Complexity** - linear paths through method

**Cognitive Complexity** - intuitive understanding

---

**Approval Test**
- system under test state after an action
- large number of combinations with little test code

---

**Deliberate Practice**
- take fine-grained task from unreliable to 95% reliable within one to three 45-90 minute sessions

![](https://pbs.twimg.com/media/ErpsOFLWMAAkgwt?format=jpg&name=medium)

# Certified Scrum Developer - Day 3

### Splitting Stories
**S**_plit
**P**_ath
**I**_nterface
**D**_ata
**R**_ules

![](https://pbs.twimg.com/media/ErtmbLKXYAAY_xt?format=jpg&name=medium)

Unit of work should be completed in a single iteration

Product owner "slice"
- input from the product owner should identify value

---

### Test Mocks

Test Doubles - aka Mocks
- isolate unit of work

**Types:**
- Dummy
- Stub
- Fake
- Spy
- Mock

![](https://pbs.twimg.com/media/ErtozWBW4AMvzo2?format=jpg&name=medium)

**Dependency Injection**
- decouple
- from "is-a" to "has-a"

Be careful to not over mock, end up testing any of the system

**Mob** - Spaceport Departures in Java

---

### Technical Debt

Technical Debt, some debt allows you to buy a house
- project "credit score"

Types of Debt

![](https://pbs.twimg.com/media/EruOiioWMAEUyUG?format=jpg&name=medium)

---

**Continuous Mindset**
- DevOps metrics leading indicators for performance

**Practices that Support a Continuous Mindest:**
- Continuous Integration
- Infrastructure & Configuration as Code
- Zero Downtime Deployments (Blue/Green)
- Canary Releases
- Feature Flags (Decouple Release/Deployment)
- Agile Databases
- Telemetry

---

**Lean**
- Identifying types of waste in software development

![](https://pbs.twimg.com/media/EruZ6c1XMAMbY4e?format=jpg&name=medium)

Blend multiple methodologies to find the blend

** CI/CD Mob Practice**

---

Reference Journal Events: [Day 1](https://twitter.com/dev3l_/status/1349156876550811649), [Day 2](https://twitter.com/dev3l_/status/1349517299154362373), [Day 3](https://twitter.com/dev3l_/status/1349878843520274432)

---

![](https://dev-to-uploads.s3.amazonaws.com/i/dnjjsh930ytb9s7kg84q.png)