Writing
Notes on extreme programming, testing, software design and the teams that build software, written between 2014 and 2025.
2024
2023
2022
2021
2020
2019
2018
- An Agile Adoption Conversation - A Cautionary Tale
- Standardization, Review Boards, and the Death of Innovation
- The Delivery Trap
- The DRY Principle and Incidental Duplication
- Practices for Effective Mob Programming
- Data Classes and Feature Envy
- Safety, Accuracy, Efficiency, then Scale
- Too Simple to Test?
- SOS - To Save Sinking Test Suites
2017
- Benefits of Pair Programming
- Misconceptions of Pair Programming
- Delivery, Feedback, and Iteration
- Stuck at Shu
- NDepend 2017 - Measuring the Cost of Low Quality Code
- TDD Is Not a Testing Practice
- Heart of Agile Pittsburgh 2017
- Remove Cross-Team Dependencies
- Avoid Technical Improvement Backlogs
- Improving Developer Interviews
2016
- The Code Quality vs. Speed Fallacy
- The Clean Code Kata
- Pair Programming and Code Reviews
- Tools are not Practices
- The Problem with Software Metrics
- Extracting Methods in Unit Tests
- Follow Consistent Test Patterns
- Unit Test Refactoring and Avoiding Complexity
- The Better Code Book
- Should Private Methods Be Tested?
2015
- Regions are Code Smell Indicators
- The Vicious Circle of Rewriting Software
- Use TDD to Teach Testable Design
- Finding and Replacing Text in Vim
- The Importance of Static Code Analysis
- Coding Conventions
- The Changing Roles of Agile Teams
- Project Teams and Poor Code Quality
- Ping Pong Pair Programming
- Creating a Great Development Culture - Part 2
- Creating a Great Development Culture - Part 1
- The Dangers of Development Tools
- A Better Bug Tracker
2014
Topics
- agile development
- angularjs
- annual reviews
- anti-patterns
- architecture
- clean code
- coaching
- code comments
- code kata
- code ownership
- code quality
- code smells
- consulting
- evolutionary design
- extreme programming
- java
- javascript
- kotlin
- mentoring
- metrics
- microtesting
- mob programming
- modern agile
- pair programming
- project teams
- refactoring
- retrospectives
- screencast
- software design
- static code analysis
- talks
- tdd
- tutorial
- unit testing
- vim