It's a funny thing about Salesforce developers. Many of us really dislike change, even when we know very well it's necessary and worthwhile.
Why? Too often, changing an application is like re-routing plumbing after the house is built: making a change that looks small can take a whole lot of effort with a whole lot of risk for collateral damage.
It's easy to assume that a someone needing user support is not using the application correctly. What if there really is a bug?
We've all seen the acronyms used by support techs: ID-10-T errors, PICNIC, PEBKAC, and so on. On the one hand, they're pretty mean-spirited (but kinda funny). On the other hand, support techs can legitimately be exasperated when rude, frustrated users scream at them to solve problems that aren't their fault. Yes, some support techs really do have to walk users through the most basic of operations like making sure the computer and monitor are plugged in and powered on. On the OTHER other hand, it is the job of support techs to bridge that knowledge gap.
As consultants, we are often called upon to support our own or someone else's software. We have to be the opposite of that acronymic stereotype. Users aren't idiots; they're experts in something we are not proficient in and vice versa.
Once in a while, we are on the receiving end of customer support, and these experiences can be real eye-openers. I remember one instance where we discovered an undocumented limitation of a mature third-party application.
A few years ago, we were asked to quote a small automation for an existing, repeat client. They wanted help streamlining a spreadsheet-based process that took about 1/2 day of a high-level employee's time each week.
Customer: Can you help us save some time by writing some Excel macros?
Susco: Of course we can develop some Excel macros for you. But first, why do you need them?