If an engineer builds a widget and it works, but he doesn't know why, that's not engineering, that's trial and error. Real engineers try to avoid trial and error. But, the experimentation used to understand a design that doesn't work, or reverse engineer a competitor's design that does work, is similar to science. Fast and cheap iteration cycles have led some to bypass doing the math and rigorous testing required of traditional engineering. But, even with fast and cheap iteration, an engineer should understand how it works. But, the general nonengineering pubic, can't tell the difference in something that "just works" because it's well engineered, or if it "just works" because someone got lucky.