It's not engineering if you're just guessing as to what is degrading the performance and what might improve it.
https://news.ycombinator.com/item?id=44978319
"Most classical engineering fields deal with probabilistic system components all of the time. In fact I'd go as far as to say that inability to deal with probabilistic components is disqualifying from many engineering endeavors."
Engineering is literally the art of making educated guesses and then testing/proving/disproving/improving upon them. Nothing is exact. Everything is approximate. Iterate until the result is good enough.
Reading comprehension 101 is a prerequisite for doing engineering, too.
Still it can be a software engineering if the gradient candidate / measuring gradient / repeat process can be done at scale.