On one end you have work where someone gives you well defined specs and the tools you need, and you just go crank out some code on your own. That works well for remote work.
On the other end there are plenty of software positions that require people who can understand and develop requirements, possibly by talking with disparate groups like customer support, finance, sales, marketing, and so on who are not at all technical. These people may not understand the costs of different options so subsequent conversations about costs/benefits for different groups are needed. Sometimes these discussions might be contentious, as resources are finite. Sometimes there's a lot of back and forth involved, as the software person tries to understand the business - and vice versa.
For what purpose specifically?