The Passionate Programmer

The Passionate Programmer Blog

A Conversation on Using AI to Generate Better Names in Code

Note: The following is a conversation between me and ChatGPT 4o.  David: Hey ChatGPT, I’ve been thinking about how crucial naming is in programming. Good names for methods, types, and namespaces can...

Conversations with AI – A New Blog Series

Welcome to “The Passionate Programmer”! I’m excited to introduce a new series of blog posts that I believe will help us learn and apply key concepts in software development more effectively. The...

Developers Love to Develop

When we build software in an Agile process correctly, we discover that it is actually more efficient and quicker to do high-quality work than in a traditional Waterfall process. This is because a...

Iterative Development is Different

I think a lot of companies believe that Agile software development is merely a process and that somehow software developers know how to use. But in my experience that is simply not true.  The way we...

The Agile Discipline

I’ve heard a lot of people say that because they are using Agile or Scrum that they don’t need to do design or write documentation—or even think. Nothing is further from the truth!  I wrote a post...

What is Software Quality?

If ever there was a convoluted, misunderstood term in software development, it’s the word “quality.” To some people, quality in software is software that does the right thing. Others...

Being a Producer

The actor-producer Paul Reiser once said that producing is about figuring out what needs to be done and doing it. I think this also makes a good job description for software developers. Programmers...

What Makes a Design Good?

I often ask attendees of my classes what makes a good design or what makes a design not good. We can all recognize some aspect of a design or implementation in software as being good or not but it can...

Large-Language Models

ChatGPT is a large-language model, a particular kind of AI program. Large-language models (LLMs) are not intelligent; they don’t learn and grow based on user interactions but learn through training. ...

Writing My First Book – Beyond Legacy Code

Legacy code is Software the Developers don’t wanna touch. It’s the code that industry uses to run the world and it is fit for its current purpose but developers find it hard to extend and that’s...

A Propensity for Prompting

I’m an early adopter. I was a wiz with Alta Vista  (a predecessor to Google) back in the day. Actually, a full decade before that I was using one of the first networks that aggregated scientific...