software engineering demand