Have you ever used an app or a website or a product and think to yourself "this is terrible, did they even talk to the users beforehand?" That is an example of a team developing far away from their users with an idea of what they think users would want. Instead, in designing software and products, one needs to have empathy with the stakeholders. The stakeholders include everyone who is going to touch the application - owners, employees, users, IT, support, etc. When you spend time up front talking with the stakeholders and figuring out what they want and what their goal is, then you can design and architect with more data to create the best architecture possible. It does sound a little like User Experience (UX), but it takes the information into an engineering and architecture perspective that UX Designers are not as focused on.
Post inspired from: Design It! From Programmer to Software Architect by Michael Keeling.