-1

Our business analysts pushed hard to collect data through a spreadsheet. I am the programmer responsible for importing that data. Usually when they push hard for something like this, I never know how well it will work out until a few weeks later when I have time assigned to work on the task of programming the import of the data. I have tried to do as much as possible along the way, named ranges, data validations, etc. But I usually don't have time to take a detailed look at all the data and compare to the destination in the database to determine how well it matches up.

A lot of times there will be maybe a little table of items that somehow I have to relate to something else in the database, but there are not natural or business keys present that would allow me to do so. Make the best of this, trying to write something that can compare strings and make a best guess at it and then go through the effort of creating interfaces for a user to match the imported data to the destination.

I feel like if the business analyst was actually creating a data model, they would be forced to think about these relationships, and have an appreciation for the need of natural or business keys to be part of the spreadsheet for the purposes of smoothly importing the data. The closest they come to business analysis is a big flat list of fields, and that would be fine if it were like any other data dictionary and include data types+relationships, but it isn't. They are just a bunch of names. No indication of what type of data they might hold, and it is up to me to guess. When I have pushed for more detail, they say that it is just busy work.

How can I explain the importance of data modelling? How can I tell them what it is and how to do it? It feels impossible, because they don't have an appreciation for its importance. They do however, usually have an interest in helping out in whatever way they can, it's just this in particular has never gotten a motivated response.

AaronLS
  • 206

3 Answers3

7

Provide your business analyst with a data template that both of you can live with. It's not necessarily his job to do database and system interface design; it is yours.

Robert Harvey
  • 200,592
1

Personally, I feel it is much better not to have such a "business analyst" in your team when that person does not have any programming or data modeling background. Ideally, let a programmer who is part of the development team doing the requirements analysis - that will prevent you from a hell lot of communication problems. However, if you can't change the situation, suggest the BA to take a few lessons in data modeling.

Doc Brown
  • 218,378
1

Buy the Business Analyst a cup of coffee. Start by asking them to explain to you why the they gather the data in the spreadsheets in the manner that they do.

Its just like writing code, you need to understand the problem you are trying to solve before you write the code to solve it.

A lot of developers often miss this because they feel that technical proficiency is more important than anything else (and this is coming from a developer). Explain to him or her how your approach can help them meet the objective and get the job done more efficiently.

There may be a reason for these spreadsheets that you have not considered. For example, Business Analyst are often communicating with non technical senior management persons (what the developer often doesn't see) and trust me, the essentials of data modeling means very little that audience.

Kmb40
  • 111