Our BAs (Business Analysts) have an annoying habit of providing us with system requirements, rather than business requirements. Often times, they don't even know what the business requirement is.
It infuriates me, because I see a list of requirements, and it will be tied to the way it should be implemented, rather than the problem that should be solved.
A very contrived example would be, "System should email customer an order confirmation." instead of "The customer needs to be informed that the order is confirmed."
Granted, in this case, it will likely be an email. However, there is a chance we make a business decision to be more personable and want to follow up orders with phone calls to verify they found everything they were looking for, etc...
Other examples are more insidious. I was working with something that handled reallocating distribution to different locations based on sales. The order is initially placed sending $X amount to store X, $Y amount to store Y, and $Z amount to store Z. However, 6 months had passed from the initial order, and we see that store Z is now outperforming store Y, who's sales have dropped. We want to swap the goods we are distribution between the stores. The business rules I were given were tied very closely to the implementation, and in many case, where X->Y, Y->Z and Z->X no swaps would occur, even though our eyes can see that we are literally just shuffling goods between stores.
So I suggested a new approach, queu up the orders we have, sort them, sort the stores based on sales, and then rematch the lists that way. Ensuring the best selling stores get the largest orders.
However, because I don't actually know the business rule, and just know the shuffling algorithm I was given, which seems incorrect, fixing it involves going back to the users, and getting the business rules...which should have been done in the first place.
What I'm asking is, is there a trick to gathering good requirements that are based upon business rules? How can I get the BAs to do this, when they aren't already. I'm having a hard time know explaining the difference between business and system rules...and they clearly aren't grasping it. How can I educate, and improve their abilities?