During the “software craftsmanship” movement in the late noughties, there was a lot of talk about “passion”. But I’ve sometimes wondered whether some people enjoy programming so much, they probably shouldn’t do it for a living. I quit a graphic design degree because I hated producing work to order. And a professional designer has to … Continue reading "The Passionate Programmer: Too Passionate, Perhaps?"| Codemanship's Blog
This is the second post in a series that aims to pseudo-formalise the workflow of Test-Driven Development by describing the “rules” of TDD using pseudocode. As I discussed in my first post on Usage-Driven Design, I’ll be aiming to express workflow declaratively, so order is implied rather than imperatively hardwired. (Instead of “boil the kettle, … Continue reading "TDD Under The Microscope #2 – Assert First"| Codemanship's Blog
This is the first part in a series of posts where I’m going to try to crystallise my ideas about how TDD really works, ideally expressed pseudo-formally (with pseudocode). Workflow Linting. Like Code Linting, Only The Same. It’s part of an ongoing side-project to create what I’ve provisionally titled a “workflow linter”. Many of us … Continue reading "TDD Under The Microscope #1 – Usage-Driven Design"| Codemanship's Blog
Code reviews? Let me tell you about code reviews! To me, a code review done by people is exploratory testing. We gather around a piece of code (e.g., a merge diff for a new feature). We go through the code and we ask ourselves “What do we think of this?” Maybe we see a method … Continue reading "Code Reviews as Exploratory Testing"| Codemanship's Blog
Going through the practices that many software developers report improve the results they get with “A.I.” coding assistants – the ones I’ve managed to reproduce myself. * Small, task-specific prompts – solve one problem at a time, reconstruct context for the next task (only what the model needs to know) * Prompting with tests/usage examples … Continue reading "eXtreme Programming Reborn: Code Craft & “A.I.”"| Codemanship's Blog
When most software developers are asked about productivity, one thing that often gets mentioned is interruptions. We perceive ourselves to be more productive when we can maintain a deep state of concentration (“flow”) for extended periods, and interruptions break that flow. They may cite research that shows that it can take 15-20 minutes to get … Continue reading "Micro-Iterations, Maps & “Interruptibility”"| Codemanship's Blog