On Design: A Philosophy of Design and Engineering