The consultant job (sometimes even considered a business analyst) is to take all the requirements from the client and put it as a story to the developers. Once during the interview, the headhunter asked me what the consultant work is. I like to say that we are kind of translators, we talk with the clients using financial and functional language and translate it into developer’s language to create the features. As I mentioned already, we can’t always join the call, ask additional questions, and wait for the answers - so to do not stop the and try to describe the requirement as good as in possible from the beginning (even if it means redoing some of the work you already did or spending another hour on analysis).
A couple of tips:
The most important one in my opinion – write anything. Better or worse but try to write down all the requirements you know. I’ve asked my fiancée (BC developer & architect) what a good specification in his opinion is. The first answer was - any documentation, since very often they do need to work on guesses or unfinished documents from the customer. Let’s make our job simpler 😊
Try to understand the client’s requirement by yourself. I’ve done the postgraduate studies of IT Project Management and one of the courses was about facilitating the meeting. The lector repeated over and over our sentences but starting with “did I understand it correctly “, ‘did you mean that…”, etc. At the beginning I was quite frustrated, but then I tried this method with client. That’s worked like a charm! If I correctly understand the needs of my customer, I can better explain it to others. The consultant cannot be afraid to go back to the client and ask more and more. We work for them to make their lives easier. I’m not talking about sending the same questions several times because it puts as in a bad situation. I am talking about clarifying the questions which helps build the better features.
Try to put in the exact numbers of the tables and pages or at least their names, where or which the functionality that should be created is based on. I do it like: “To the Sales Header Table (36) add new flied type = Boolean”. All should know Ctrl+Alt+F1 so you know when you write down the requirement. It costs consultant 1 minute more but helps to understand what needs to be done.
As I mentioned in previous point, write down the type of the new field if this is Boolean, Decimal, Text. If this is the list put the information to which dictionary table, it should refer to. If there is a possibility you can draw a picture how it’ll look like (see example below).
For all the new fields, try to put the relation to the other tables, e.g., “the new field should be copied to the field to Posted Sales Header (112)”. Remember if that the field doesn’t exist on the second table, add it there as well. See the screens below, if I add something on the Sales Header, I should add it into Sales Invoice Header as well. Of course, not all new fields need to be copied, but always think of it.
If it will be a new table/field, always put the name in English. It doesn’t matter which language the project is in. All the names need to be created in English. Then in cooperation with developers, the consultant should fill the translation file in. If it’s possible, ask your client for the translation.
If there will be any calculations, explain exactly what to add, multiply, divide, etc. The best way is to provide all the names of fields that must be used, e.g., Quantity Unit Price Excl. VAT 10% and fill the results into new field called Transport Cost.
Think about all possible scenarios. Let’s say we need to update some data by filling the field A. What should be done with the field B? Should it be changed? Should it stay the same? If it needs to be changed, so under which conditions. Trust me, developers ask all these questions while programming.
If you ask for the report correction, because it’s too complex to do it yourself in Word (yes, some reports consultants can correct by themselves), mark exactly which fields should be placed where. Explain what caption should be used and what data should be visible on the printout.
Don’t hardcode anything. If you need to filter by any name, code, value ask to add it to the setup instead of putting the exact value in the code.
If this is possible put the pictures (no, not of yourself) 😊
In the beginning of my consultant’s career, I have sent the description of the development task to be developed. My friend did it exactly as I explained as a joke – it was completely not what I expected (even though I knew what the task was about). It was a lesson to always think twice. Communication is important. Let’s make our work simpler for the sake of all of us!
Comentários