dev-resources.site
for different kinds of informations.
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
Featured ones: