The Passionate Programmer

David Bernstein

My continuing passion for software design and construction has led me to train more than 10,000 professional software developers for clients that have included Fortune 500 firms such as Microsoft, IBM, Yahoo!, Boeing, AT&T, Sprint, Medtronic, SunGard, State Farm, MetLife, and Weyerhaeuser. As a longtime IBM consultant, I trained software engineers around the globe, giving them the skills to write the next generation of applications and operating system software while earning one of the highest satisfaction ratings in the history of IBM education. Since 2006, I’ve devoted my consulting practice to providing organizations with technical training and coaching for software developers and teams transitioning to Agile and Scrum.

AI

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 make a huge difference in code readability and maintainability. But coming up with the perfect name can be challenging. Can you help with

A Conversation on Using AI to Generate Better Names in Code Read More »

Agile

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 about this in 2011. I called it “The Scrum Excuse” at https://tobeagile.com/2011/06/28/the-scrum-excuse/.  Agile software development was created by

The Agile Discipline Read More »

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 say it’s software that’s free of defects. Still others say quality software is software that runs fast. All these things are good but they’re not necessarily

What is Software Quality? Read More »

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 are producers. We create something out of nothing at all, out of pure thought. Our skills are not just in writing code.

Being a Producer Read More »

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.  Large language models are not conscious, nor will they become conscious, so we don’t have ethical or moral concerns, but others are working on AI

Large-Language Models Read More »