Give clients what they need, not what they want
Oh, I’m a firm believer, most small non-technical companies have no idea what they want their software to do. Oh, yeah they know the basics, give me totals, handle some inventory, help me reduce payroll costs. They might have a few ideas, but mostly from looking at what their competitors are doing. And those
competitors didn’t come up with the idea, they bought the idea from a software company. Companies do what they do best, the are in their respective business for a reason, they are good at it! Software companies do what they do best, they are in the software business because that is what they do best, write software! (Well sometimes) Still not sure what I’m getting at?
Example #1
Our company area of expertise is Point Of Sale software, Now the purpose of POS software is to Expedite the selling process, by giving totals, helpful change amounts, tracking inventory as items are sold. We track inventory to make buying decisions easy, and to cut down on theft, since all inventory sold is tracked and money taken is recorded, your employees can’t simply walk off with your inventory without noticing its missing.
So we design the software, works great, customer is happy. Then a VP of our client company decides he is tired of hear complaints (getting e-mails) from customers stating they had to wait around for a manager to show up to get a refund of an item. (Money Refund) So, the VP in all his great wisdom, decides he can shove his problem on the software, instead of on Operations (where it should be, Their company policy is that at least 1 manager should always be on the floor at all times). So he calls his software company (Us) and demands that we grant all non-manger employees the ability to refund items at will. (Which we do, because he payed for it, he will get what he wants)
This “feature” is the single most incompetent blunder we as a company have agreed to implement for a client, You have no idea how many times I’ve had angry managers call me and imply our software is broken because his employees were/are allowed to steal money. Hence in one misguided swoop our software begins the spiral down to the level of “This software sucks, why are we using this software?”
Example #2
Our POS software supports opening electronic cash drawers that are fitted with a key. This cash drawer keeps a thief out, and limits the employees access to cash when not making a transaction, providing a nice safe place to keep money. Well, X manager at X location seems to have lost the key to one of his cash drawers. So instead of calling the manufacture of the cash drawer and ordering a new key. Manager X and his higher ups decide it would be best to push their lost key problem on to the software.
So our company gets called to add a “open cash drawer” button to the terminal. Completely negating the purpose of having an electronic cash drawer in the first place! These two examples illustrate perfectly the point, “Give Clients what they need, Not what they want”. If you end up always giving the client what they want they will eventually hate your software. I know ours does, and the sad part is, they made it that way! This brings me to the blog entry that started this blog entry.
I’d have to say, I agree with this guy completely.