« Home | Reading Styles » | Java and Access Specifiers » | Why refactoring helps? » | No New Year Resolutions for Me » | Learning Tips » | IIM CAT 2004 - The wounded lion roars back » | Personality Types » | Is Xtreme Programming the next Strategic Inflectio... » | I "WILL" » | Reading Better and Faster »

Business Knowledge and Software Projects

Often in every other project, we can hear the following whispers..at times they get too loud.
  • Developers: We are not getting requirments right. Typically the expecatation is from requirement gatherers.
  • Requirement gatherers: Customer is not able to give requirments clearly. Typically expectation is from customer.
So the flow usually is from developers -> requirement gatherers -> customers. This happens on development projects.

You may note I have not mentioned business analysts/functional/domain experts. You can get such experts on a project only theoretically. Practically you wont get them and dont need them either.

There are multiple aspects to this problem:
  • In today' s business scenarios, requirements are never complete. So dont expect as such. But dont accetp ambiguous requirments either. Ambiguity is removed by capturing requirments in code form for developers and non-code form for customer. (FIT) looks like a good starting point.
  • Even if you have domain experts if they dont have the skill of capturing requirements then all their knowledge will not help. We must realize every project is to add business value. If business analysts try to have this aim uppermost, many thigns will start falling in place.
  • Develoers have to change their mindset of 'we are only gonna code'. Nope you are blessed to do much more than that. Start writing automated tests as verifiction that your code works. Also some of you will convert above FIT tests inot code form. Think and ask questions. Many of them may be silly. But ask and get the answers.
So we can see that close colloboration between customers analysts and developers is required as the first step. And second a change of mind set of all three is required.
  1. Customers must be willing to put down in provide functional test specs in discussion with specs,
  2. business analysts must be willing to learn more about the art of collecting requirments, writing functional tests (even in code form if possible) and
  3. developers in automating their unit tests in code.