Comment by chii
> But software engineers are tasked with solving business problems.
i would imagine that a business owner may want to hire a business analyst to undertake such a task, rather than a software engineer. Someone ideally with domain expertise in such business problems.
A software engineer is trained to produce software, given a set of requirements. If this software engineer is also tasked with gathering these requirements, which somehow, is increasingly the case now-a-days, then he's doing more than the job of a software engineer - he's also doing the role of BA.
A lot of the times, the BA gives you wrong business requirements, and an experienced software engineer can see it's wrong by reading it, and refuse to start it until the requirements are fixed. By "wrong", I meant there is a logical contradiction, or there would be harmful logical side effects because the BA can't play out the logic in their head, or it's technically impossible, or the development effort would not be worth it (for example, replicating what Google took years to build as a nice-to-have feature for an internal tool that isn't critical to the business).