We write bespoke software. We (all developers) are the ultimate problem solvers. Customers/Clients come to us, tell us of their business woes and we develop systems to fix that problem, or to at least automate the process.
Even the most basic of developers will end up providing at least a small bit of business consultancy to most customers. I'm yet to meet a customer that actually has a completely clear idea of what they are seeking, and it is my job to see they find their way.. by providing software that makes problems, bottlenecks, wastage come to light.
We use Scrum (a flavour of Agile) development to deliver functional software every sprint (usually 2 weeks) that the client has asked for. We don't necessarily argue with the customer of what they want, we let them have it, then they can see for themselves if it is what they truly wanted.
Every client we have had thus far have had new software from scratch, BUT we have reused classes, libraries, etc. from older apps, but every client needs something that will be unique to them.
The days of writing software that does everything under the sun is gone. Finely tuned and tailored software is the now.