Not many things irk me as the term Voodoo, when it’s applied to software engineering.
“I found a piece of code that solves this bug, but it’s completely Voodoo”
“Working with this library is like doing Voodoo”
Don’t. Say. That. It makes the problem you are working on seem like there is some unknown force that makes it impossible to solve in logical and analytical means. It makes it sound like the problem cannot be solved at all. It makes you sound like you are powerless against it. It makes you sound like you gave up.
It makes you sound unprofessional.
There are no ghosts in your computer. Everything has a logical explanation, you just haven’t found it yet. And wherever you use the term Voodoo, you can replace it with the words “I don’t understand” and get a perfectly valid sentence, that invites further analytical investigation, questioning and rational decision making.
“I found a piece of code that solves this bug but I don’t understand why it works”
“I don’t understand the library I’m working with”
From here you can continue to ask questions and make informed decisions. You can always invest more time in understanding the piece of technology you are dealing with. But you can also ask how much time it is going to require, what is the risk if you don’t, and if it is worth your time.
Please don’t use the term Voodoo when you talk about software engineering. We all are professionals here.