Categories
Allgemein Blog Software Development

Antifragility in Software Systems

Currently I am devouring Nassim Taleb’s amazing book “Antifragile.” In this essay, Taleb describes how societies and organisations can survive in the long term by not only becoming robust against adversity, but even thriving in the face of change and volatility. This got me thinking: Can we apply these ideas to software?

Categories
Blog Engineering Software Development

How a Bugfix Can Take the Wrong Turn

When you debug your code to find a problem in your program, you observe the behavior of the program and make assumptions about the nature of the problem. But the behavior you observe can lead you to the wrong conclusions. Based on the wrong conclusions, you would design a fix that might look good at first glance, but would fix nothing or even make things worse.
In this article, I will give an example of a bug hunt that went down the wrong path. Read on to see how even seemingly simple systems can be surprisingly difficult to get right.

Categories
Blog Software Development

ChatGPT, write a Game for Me

A colleague recently asked me what I would do for a living once AI replaces computer programmers. After my initial (hopefully) witty answer, I began to wonder: How good is AI really at doing a programmer’s job? I had read about it, but never tried it myself. So I decided to put ChatGPT to the test.

In my test, I wanted to see if ChatGPT could do real programming. As I wrote before, programming is a creative task. How well would a computer be able to do it? Or would it just repeat examples from the Internet? I decided to interview ChatGPT, just like I would interview a new employee or student to see how experienced the candidate is in software development. Read on to see how well ChatGPT did in my interview.

Categories
Blog Software Development

Why each TODO needs a GOOD ticket

Recently, I wrote about why I think every TODO in your source code needs a ticket (LINK).
Now that a few weeks have passed, I realize that I did not give the full picture in that article. Even if you have a TODO ticket, it does not automatically mean that it will be helpful. Here is why.

Categories
Blog Software Development

Books that every programming novice should read

Young programmers often ask me what books I would recommend to learn the craft of software development. As a self-taught software developer (my major is electrical engineering), I learned most of what I know from books. Mentoring my students took me back to those days and led me to compile a list of my all-time favorite books that every aspiring programmer should know.

Categories
Software Development

Why each TODO needs a Ticket

Everyone is aware that code with comments is a bad thing. It will inevitably decay, and future developers will be wondering if there is any need for it at all.

Every developer is aware of this. So they often remind themselves to follow up the commented out code with a TODO comment, to see that something needs to be done. Many IDEs support this idea and can show you all TODO comments in your current project.

However, I think using TODO comments to remind yourself of work that needs to be done is a very bad idea. Here is why.