Articles covering TDD, continuous integration, ensemble programming, code quality, and technical excellence.

Subscribe to this topic’s Atom feed.

Extracting Metrics from Jira

Jira stores a lot of useful data about your workflow, but does a poor job of exposing it in any meaningful way. If you want to extract that data yourself using the Jira API, here’s the series: intro and authentication, issue history, statuses, board details, sprints, and knowing if an issue is visible on the board. There’s also an older post on getting Kanban metrics from the Jira API that covers the broader picture.

If you’d rather not write the code yourself, see JiraMetrics, my open source tool that does this for you.

Technical Practices

Continuous integration: what it actually means and why it matters. TDD as a design tool; using tests to drive better design decisions. Ensemble programming (also known as mob programming or mobbing) and pair programming: the case for collaborative coding.

Code Quality

Poor code and the RAS; why our brains stop seeing the problems in familiar code. Bugs: how to think about them. Technical debt: what it is, how it affects productivity, and the difference between technical and architectural debt.

Leading Technical Teams

Where should a tech lead start? For more on leadership in technical contexts, see the Leadership section on the Psychology & Behaviour page.


ArticleDate
Jira API: Knowing if an issue is visible on the boardApril 11, 2026
Deliberate practiceMarch 28, 2026
Close those bugsFebruary 12, 2026
Code coverage revisitedFebruary 4, 2026
Jira API: SprintsJanuary 29, 2026
Bad documentationOctober 25, 2025
Why don't we collaborate more?October 17, 2025
The extreme in eXtreme Programming (XP)August 31, 2025
What work to select for an ensembleAugust 25, 2025
The big rewriteJune 25, 2025
Scouting ruleJune 22, 2025
QualityJune 17, 2025
SpecFlow becomes ReqnrollDecember 21, 2024
Ensemble work feels slower, but that's deceptiveNovember 25, 2024
YAGNI (You Aren't Going to Need It)September 18, 2024
Hot-fixesSeptember 8, 2024
Mocking frameworksSeptember 2, 2024
"Everything that's old is new again"August 26, 2024
Ability to deliver quicklyAugust 18, 2024
How developers and testers thinkAugust 16, 2024
Zero Bugs (Defects)August 15, 2024
Premature optimizationAugust 13, 2024
Tip: Run tests in random orderAugust 7, 2024
Underutilized skills and talentAugust 6, 2024
Code smellsJuly 30, 2024
Code comprehension: Chunks and BeaconsJuly 22, 2024
Reinventing the wheelJuly 21, 2024
The ugliest, nastiest, codeJuly 15, 2024
Why technical practices?July 14, 2024
Why we branch the codeJuly 8, 2024
Rapid feedbackJuly 3, 2024
Building capacity when hiring juniorsJune 26, 2024
Pull requests are not a quality stepJune 22, 2024
CI is not a serverJune 20, 2024
Too many branchesJune 8, 2024
Test driving prime factors in Go / TestifyMay 14, 2024
Test driving prime factors in Java / JUnitMay 14, 2024
How often do we run our tests?May 14, 2024
Improvements in CSS: Dark mode and CSS variablesMay 5, 2024
Jira API: Board detailsApril 17, 2024
Jira API: StatusesApril 12, 2024
Jira API: Issue historyApril 9, 2024
Jira API: Intro and authenticationApril 7, 2024
Warning levelsFebruary 29, 2024
Linguistic AntipatternsFebruary 1, 2024
Technical debt and productivityJanuary 21, 2024
Test driving prime factors in Elixir / ESpecJanuary 11, 2024
Test driving prime factors in Ruby / RSpecJanuary 11, 2024
Test Driven Development (TDD): A design activityJanuary 11, 2024
Using LEGO to teach technical practicesDecember 15, 2023
Prime factors in ElixirNovember 5, 2023
Exploring ElixirNovember 4, 2023
Code commentsAugust 27, 2023
Learning from the pastJuly 28, 2023
A developers jobJune 17, 2023
Rebuild vs RefactorJune 4, 2023
Why we should stop using spikesApril 29, 2023
Where should a tech lead start?April 24, 2023
Technical vs Architectural DebtApril 23, 2023
Ensemble ProgrammingApril 22, 2023
Defects / BugsApril 21, 2023
Pair ProgrammingJune 19, 2021
LEGO Exercise: CollaborationFebruary 6, 2021
LEGO Exercise: Continuous IntegrationFebruary 5, 2021
LEGO Exercise: Technical DebtFebruary 4, 2021
LEGO Exercise: Clean CodeFebruary 3, 2021
LEGO Exercise: Test Driven Development (TDD)February 2, 2021
LEGO Exercise: SimplicityFebruary 1, 2021