A View of 20th and 21st Century Software Engineering