I think I'm suffering from a condition. I call it 'configuphobia'. It is the fear of configuring programs.
Configurations are very loosely coupled. When programming, I really like static type checking because it gives you confidence that what you typed in or changed is correct. If it's not correct, you get immediate feedback in the form of a compile error.
A config file has none of that. Now, when you've used a wrong key somewhere, you'll notice quite quickly because the program will (hopefully) not start.
No, the real fear is for things like paths and user credentials.
I might have a database somewhere which has a user
A. That user is used for a little program that can send an email when some value is below a certain threshold. But now after two years all the bugs are solved an the theshold is never met anymore.
That program might not have sent an email for over a year and I might have completely forgotten about it.
Because the database has grown quite a bit, I want to clean it up. When I go through the users, I see the user
A. Maybe I then misremember and think it is some test user and proceed deleting it.
Now my email program doesn't work anymore. This was without any warning and, depending on the email program, without an error.
I'm still confident that my values won't go under the threshold unnoticed because I'm sure that I'd get an email notification if it were to!
This is a massive potential for errors and might just break everything! This is just a silly example of course, but, in reality, this may very well be how real production systems are configured.
What to do about it?
This is the main point I want to make. I've been thinking about it and I don't think there's anything you CAN do about it.
You can only mitigate with documentation and to me that seems too little. Someone might forget consulting the docs or may simply not even know it's there.
And that's why I really dislike configuring things. Breakage is unavoidable.
PS. When I asked around a bit, I got told that I would get used to it and that it is how it is. That does not help... 😅Comment