Software Thinking: The New Quality Engineering