I think the source of the perennial confusion over this issue is that some software development is actually engineering, but most is greese monkeying. The software mechanics resent the engineering questions but the engineers can't understand how you could not ask them. In truth the work of both camps is fundamentally different.