Articles covering TDD, continuous integration, ensemble programming, code quality, and technical excellence.
Subscribe to this topic’s Atom feed.
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.
| Article | Date |
| Jira API: Knowing if an issue is visible on the board | April 11, 2026 |
| Deliberate practice | March 28, 2026 |
| Close those bugs | February 12, 2026 |
| Code coverage revisited | February 4, 2026 |
| Jira API: Sprints | January 29, 2026 |
| Bad documentation | October 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 ensemble | August 25, 2025 |
| The big rewrite | June 25, 2025 |
| Scouting rule | June 22, 2025 |
| Quality | June 17, 2025 |
| SpecFlow becomes Reqnroll | December 21, 2024 |
| Ensemble work feels slower, but that's deceptive | November 25, 2024 |
| YAGNI (You Aren't Going to Need It) | September 18, 2024 |
| Hot-fixes | September 8, 2024 |
| Mocking frameworks | September 2, 2024 |
| "Everything that's old is new again" | August 26, 2024 |
| Ability to deliver quickly | August 18, 2024 |
| How developers and testers think | August 16, 2024 |
| Zero Bugs (Defects) | August 15, 2024 |
| Premature optimization | August 13, 2024 |
| Tip: Run tests in random order | August 7, 2024 |
| Underutilized skills and talent | August 6, 2024 |
| Code smells | July 30, 2024 |
| Code comprehension: Chunks and Beacons | July 22, 2024 |
| Reinventing the wheel | July 21, 2024 |
| The ugliest, nastiest, code | July 15, 2024 |
| Why technical practices? | July 14, 2024 |
| Why we branch the code | July 8, 2024 |
| Rapid feedback | July 3, 2024 |
| Building capacity when hiring juniors | June 26, 2024 |
| Pull requests are not a quality step | June 22, 2024 |
| CI is not a server | June 20, 2024 |
| Too many branches | June 8, 2024 |
| Test driving prime factors in Go / Testify | May 14, 2024 |
| Test driving prime factors in Java / JUnit | May 14, 2024 |
| How often do we run our tests? | May 14, 2024 |
| Improvements in CSS: Dark mode and CSS variables | May 5, 2024 |
| Jira API: Board details | April 17, 2024 |
| Jira API: Statuses | April 12, 2024 |
| Jira API: Issue history | April 9, 2024 |
| Jira API: Intro and authentication | April 7, 2024 |
| Warning levels | February 29, 2024 |
| Linguistic Antipatterns | February 1, 2024 |
| Technical debt and productivity | January 21, 2024 |
| Test driving prime factors in Elixir / ESpec | January 11, 2024 |
| Test driving prime factors in Ruby / RSpec | January 11, 2024 |
| Test Driven Development (TDD): A design activity | January 11, 2024 |
| Using LEGO to teach technical practices | December 15, 2023 |
| Prime factors in Elixir | November 5, 2023 |
| Exploring Elixir | November 4, 2023 |
| Code comments | August 27, 2023 |
| Learning from the past | July 28, 2023 |
| A developers job | June 17, 2023 |
| Rebuild vs Refactor | June 4, 2023 |
| Why we should stop using spikes | April 29, 2023 |
| Where should a tech lead start? | April 24, 2023 |
| Technical vs Architectural Debt | April 23, 2023 |
| Ensemble Programming | April 22, 2023 |
| Defects / Bugs | April 21, 2023 |
| Pair Programming | June 19, 2021 |
| LEGO Exercise: Collaboration | February 6, 2021 |
| LEGO Exercise: Continuous Integration | February 5, 2021 |
| LEGO Exercise: Technical Debt | February 4, 2021 |
| LEGO Exercise: Clean Code | February 3, 2021 |
| LEGO Exercise: Test Driven Development (TDD) | February 2, 2021 |
| LEGO Exercise: Simplicity | February 1, 2021 |