• Software solutions have become so complex that a software engineer often must help the business stakeholder understand what they really want. This is more of a social engineering task than a software engineering task and can require many different techniques to finally narrow the requirements down to something that can be understood and which adequately defines what the expectations are. Verbal and written communication skills are the number one tools of the trade these days.