DEV Community

Cover image for DEV3L on Certified Scrum Developer
Justin L Beall
Justin L Beall

Posted on • Updated on

DEV3L on Certified Scrum Developer

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, a highly experienced agile technical professional.

Certified Scrum Developer - Day 1

Proliferation of options - tools & processes

Meet & greet / overview

Awareness > Proficiency > Fluency

Scrum:

  • Product Backlog
  • Plan for Sprint Backlog
  • Meet daily
  • Review, Deliver, & Improve

Artifacts added to Scrum Guide

  • Product Goal, why
  • Sprint Goal, reason for sprint
  • Definition of Done, accountability

Roles

  • Product Owner, backlog
  • Scrum Master, servant leader
  • Development Team, creator

Development Team is Self Organizing - No one tells how

Scrum expanding beyond world of software


Manifesto for Agile Software Development

  • applied practices, not theories

Agile is

  • a mindset,
  • defined by 4 values,
  • guided by 12 principles,
  • manifested through practices

Add agile technical practices to your toolbox


Automated Tests

Collapse feedback cycle to be as small as possible

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

Determine problem/scope/boundaries first

Tests are just code - usually annotated

  • arrange, act, assert

TDD Fizzbuzz in Cyber Dojo

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

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

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

Permutations of expertise levels and styles

Stong-style pairing: for an idea go from your head into computer it must go through partner's hands

Certified Scrum Developer - Day 2

Mob Programming:
"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 - @henrikkniberg


Legacy Code

  • "simply code without tests"
  • code without confidence

Software changes with changes in business needs


Code Coverage

Characterization Tests

  • pin down behavior

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


Refactoring

  • restructure internal without altering external

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

Certified Scrum Developer - Day 3

Splitting Stories

S_plit
P_ath
I_nterface
D_ata
R_ules

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

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


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

Blend multiple methodologies to find the blend

** CI/CD Mob Practice**


Reference Journal Events: Day 1, Day 2, Day 3


Top comments (0)