Intellegent Bug Detection and Fixing: A Conversation
Fix Bugs
Intellegent Bug Detection and Fixing: A Conversation Read More »
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 series is called Chatting with Chat. In this series, I’ll be engaging in deep, insightful conversations with ChatGPT, an advanced AI developed by
Conversations with AI – A New Blog Series Read More »
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 traditional Waterfall process devotes very little time to actually building software, which is where the value is to the customer. We spend
Developers Love to Develop Read More »
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 build software is different in an iterative process than the way be built software in a traditional Waterfall process.
Iterative Development is Different Read More »
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 »
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 »
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.
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 be difficult to talk about why. When I ask software developers how they describe what
What Makes a Design Good? Read More »
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 »
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 because legacy software is often written in a way that doesn’t support future changes, not because it can’t but
Writing My First Book – Beyond Legacy Code Read More »