I'll tell you a hyooge secret to writing really robust software:
And it's not something you will expect. I say that because I've never, ever seen it written about anywhere before now.
It's not one of the standard things you hear about...
It's not test-driven development. Though that sure is important.
It's not making your code readable, and maintainable. Though that's paramount.
It's not about using logging in your program. Though the bigger your application, the more massively important becomes.
And it's not about leveraging the abstractions of object-oriented programming. Though in the never-ending, bloodied-claw war against complexity that is software development, OOP is indeed one of your most powerful weapons.
No, I'm referring to something else:
Whenever you notice something that seems unusual... a behavior or event that is not what you expect your program to be doing...
And it's not an error... not something that seems particularly urgent. Just something that makes you go: "Huh. That's kinda weird..."
In that situation, what do you do? Do you ignore it? Or think you'll look into it later, and then don't?
That misses an opportunity. Because almost always, it's signalling something awry, that is worth fixing.
Sometimes that something-awry is in your understanding of what's going on. More often, in my experience, there's actually a subtle error or imprecision in the code.
And I'll be blunt about our favorite language: Python is more susceptible to this than statically typed languages. For various reasons, having to do with Python's specific form of dynamic typing.
So while this principle is important in all of programming... we Python peeps need to be a little more vigilant with it.