Tell me more ×
Project Management Stack Exchange is a question and answer site for project managers. It's 100% free, no registration required.

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?

share|improve this question

4 Answers

up vote 5 down vote accepted

Change the format. Traditional functional requirements are pretty flawed and have decades of focusing on the "what" and not the "why" or the "who."

User Stories and User Persona based requirements focus on the "who" and the "why." While agile is the most obvious user of this today, it's not a new concept. I first learned about this concept through a product management methodology from the 1990's call "Building a Market Focused Organization."

Take US Banks in the 70's and 80's. In their efforts to become more competitive in post deregulation era they went out to their customers. They didn't start with what to do, they started with asking the customers questions. Then they looked at what the customers said "Longer hours, more tellers." and asked how they could solve this (without spending the $ on longer hours and more tellers). The outshoot was to leverage a technology that had been around since the mid-60's but had languished as a gadget without a true market. And so came to pass ATMs.

So use User Personas and User Stories. Mike Cohn has published two very good books on this topic that I highly recommend.

I recently did a two part blog on using agile practices at the product requirements level, to drive useable requirements. If you're interested in it, my blog is linked in my profile. Look for the "Garbage in, Gorilla out" and "How much is that gorilla in the window" blogs.

share|improve this answer
+1 - User Personas is really a good approach. – M0N4K0 Feb 10 '12 at 8:33
1  
Buy them The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper and then tell them to read the part about personas. – SBWorks Feb 14 '12 at 7:17
I ordered that book a few days ago...at least I think it was in the order I placed. – CaffGeek Feb 14 '12 at 14:39

Not sure whether you would have the chance, time and resources to reject existing requirements and get them rewritten based on a more business usage perspective.

If you have the opportunity, try to work with the relevant manager and build together a Business Request / Change Request Form (depending on the type of action) Template for future demands. This template should incorporate all relevant information from the requester's name, dates, specifications required and end user expectations. You can add as many fields as you need to gather the information that is convenient for you.

Try to focus his attention on the "end usage" or "business expectation" sections where the analyst will have to describe concisely the expected output. Get this manager to agree the format with you (so in the future it will not consider a rejection as something personal) and provide examples of desired input in the template so they just have to overwrite it.

If they submit their requests via email attaching the form properly populated at least you'll get a robust mechanism that can enable you to rejected straight forward any request that does not meet the agreed criteria.

Just bear in mind that the improvement won't happen from one day to another and you need to work with them so they provide you with the right information, but providing to them a feasible solution will help to achieve what your goal.

I have found an article related to documenting business requirements that includes additional insights:

Documenting Business Requirements

share|improve this answer

There is no trick. Writing a requirement with the appropriate wording, at the right level of abstraction, without including the solution require a bit of skill, analysis, and thought. It is what the BA is supposed to do for you. Grasping the concept is simple, actualy writing it is a bit more difficult. If your employee in this role cannot even grasp the concept, then you have the wrong person or persons. Take a look at your knowledge/skill requirements you have for this role, rewrite them, then go find new talent. Looking for a "trick" is a non starter.

EDIT: I might be in favor of kicking back the work. In a process, the next step is triggered by the output of the previous step. The previous step has finish criteria that says the work here is finished. Similarly, the next step has entry criteria, against which the input from the previous step is tested to ensure fit for service. If it fails, it is rejected and the subsequent step does not start.

Kicking the BA's work back will likely cause a bit of a stir in your organizaiton, but it is a symptom of a problem in your process and might be the fastest way, albeit politically risky, to get it fixed for good, e.g., BA is replaced.

share|improve this answer
Sadly, I'm not his superior, or he'd have been gone months ago. I do however, unfortunately, have to work with the crap requirements provided. It would be nice to just once, get requirements that allow me to code, without tearing them apart, getting involved in a second round of meetings, because the wrong questions were asked in the first, and then redoing everything he did in the first place, just so I can start doing my job. – CaffGeek Feb 9 '12 at 15:55
Oh.... Well, are you able to go to his superior? Can you "kick back" his work, i.e., reject in the inputs like you would raw materials that are defective? Else, you may have no choice but to do 1/2 of his job by reinterpreting his requirements into the way they are supposed to read. Not ideal but it is a workaround. – David Espina Feb 9 '12 at 15:57
That's what I keep doing. I keep sending it back. However, he doesn't take criticism well. He takes it personally. And I'm once again, staring at an email saying "Describe general steps which will occur in this logic, so that I can update my business rules" ... failing to grasp that how we implement is NOT THE BUSINESS RULES. – CaffGeek Feb 9 '12 at 16:01
It is like a manufacturing assembly line, where a component of a machine begins to produce defects that are approaching or exceeding tolerances. Eventually, someone hits the red button that stops the line and the component issue is addressed. You have to escalate in a non emotional way and report the issues and risks the defective component is causing. – David Espina Feb 9 '12 at 16:06
I do, just like I don't take offense when a problem is found in the application after I write it and release to QA. Mistakes happen. The issue I have is when the mistake found in QA was nothing I could have prevented with the information provided. And despite trying to get better information provided up front so I can produce better work, I keep getting system requirements without business requirements. Implementing them, and then having to heavily modify the application after getting business requirements myself, which were never fulfilled because I didn't know what they were upfront. – CaffGeek Feb 9 '12 at 16:26

Lead by example. Either do a few good ones yourself to share, or hire a rock star. You also have to figure out why these folks are lacking. Many BAs do the job because they love the business they are in. Others do it because they aren't technical enough to program. The latter group focuses on how rather than what or why because they don't know better.

share|improve this answer
1  
Can't create them if I'm not in the meetings. Not invited to the meetings because I'm a "programmer" and way to busy. I'm way too busy because I'm making changes to an app written to the "requirements" because the "requirements" were wrong. When I do get to a meeting, and design something better it's either used, and good. Or too late in the process to change things and still meet the deadline...despite us meeting the deadline with a product that doesn't deliver what it should. – CaffGeek Feb 13 '12 at 14:40
@Chad - Are you in a position to hire better ones or talk to your boss? – MathAttack Feb 14 '12 at 11:36
unfortunately, no. – CaffGeek Feb 14 '12 at 14:38
Sounds like you're in a bind. – MathAttack Feb 14 '12 at 18:06
1  
already dusted off the resume. Thinking, find another job, and during the exit interview be brutally honest with the CIO about why, and what needs to improve if they want to retain workers. – CaffGeek Feb 14 '12 at 18:51
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.