The Software Development Monthly is a monthly blog post that shares interesting or useful content which I consumed during the previous month. This blog post is always published on the eighth day of the month.
Let's begin!
AI
There is more to code review than (automatable) detection identifies seven aspects of code review that cannot be handled by an AI agent.
Maybe We Shouldn't Be Reviewing All This Code argues that we shouldn't review every line of AI-generated code. Instead, we should explore alternative solutions and share knowledge before we create a new PR.
In a Few Weeks, I Won’t Know How My Own App Works warns that if developers review large amounts of AI-generated code, they resort to shallow checks that erode their mental model of the system until no one understands how the application works.
The AI Pull Request Stampede: Generation is Cheap, Trust is Expensive examines how AI-generated pull requests break the code review process and argues that we should offload routine review work to computers.
Do You Still Read the Code? introduces two opposite approaches to AI-assisted development and argues that mixing developers who follow different approaches is a recipe for disaster.
How to keep enjoying programming in a world of LLMs describes how we can keep writing code, preserve the joy of programming, retain the ownership of our codebase, and leverage the productivity benefits provided by LLMs.
There are no “rogue” AI agents explains why there are no rogue AI agents and argues that this narrative only lets tech companies avoid responsibility for inadequate safeguards.
I don't like LLMs admits that even though LLMs might increase productivity, the author dislikes interacting with them because their hallucinations and tone of voice make them resemble the people he avoids in real life.
I Don’t Want to Read What You Didn’t Write explains why the author is frustrated when he has to read AI-generated text such as technical documentation, meeting minutes, or pull request descriptions.
Coding is NOT solved challenges the claim that "coding is solved" and argues that humans remain essential for building the right thing and taking legal accountability.
Software Development
Module Imports explains how Java 25's module imports work and describes how we can use them for cleaning up bloated import sections.
Why I Stopped Arguing With People explains that trying to win a technical argument is often a losing battle and argues that we should concentrate on improving ourselves instead of trying to convince other people to change their minds.
Back to the 90s: The Software Engineer Has All the Roles Again argues that AI tools are bringing back the 1990s software engineer who talks to customers, identifies requirements, defines architecture and design, reviews the implementation, and makes sure that everything is working as expected in production.
He who does not code, neither shall he eat argues that AI has broken the social contract between open source contributors and users, and explains how it has turned a bad situation worse.
Good Tools Are Invisible argues that a good tool disappears into the background and helps us to get the job done without causing any friction.
I don't want the details explains why we shouldn't be obsessed with how an incident happened and argues that we should concentrate on making sure that it doesn't happen ever again.