Title: A Philosophy of Software Design