views:

329

answers:

7

The non-technical person who asks, "Can you just put the database in an Excel spreadsheet for me?" is so common it's almost a trope. (I could've sworn there was an xkcd about this, but I can't find it.) We regularly get customers asking for all their data in a CSV.

To say this person is non-technical is redundant, so I need to explain to them in a non-technical, friendly, non-condescending way that Excel is not designed to represent one-to-many relationships (without making them grok the idea of one-to-many).

If you have had personal experience with a particular strategy that has worked for you with non-technical people, I'd definitely like to hear it.

EDIT: It seems like most of the answers are leaning toward questioning the intent of the requestor. That, in itself, is a difficult thing to do nicely. Some of the answers are leaning toward just throwing data at a person and telling them to go away. That's not what I'm going for here. I'm looking to help this person, not make them go away. That's what I'm trying to get to here.

So, two part question: What do I tell a customer (i.e., someone whose needs I want to satisfy) who requests a CSV of their data for a.) backup, or b.) getting information out of the system.

Since there's no exact right answer here, substantiated answers are welcome.

+12  A: 

Managers can afford to be vague when they want something, I suspect that rather than 'all the Salesforce stuff', he/she just wants a particular view from it. You need to clarify what the data is for and give them what they need rather than what they asked for.

Martin
+9  A: 

There is nothing wrong with asking for relational data in a CSV format. You have your choice of just dumping each table into a text file separated by commas, or being a bit nicer and joining one-to-one data into a single CSV file. One to many relationships are obviously trickier.

I recommend talking to the guys and asking them what problem they want to solve by doing this. Obviously, they want to create some spreadsheets, but don't realize that by going the CSV route they won't be able to handle subsequent schema changes, etc. After talking with your "customer", you can probably agree on the correct path. And, that just might being creating a CSV file for a one-shot deal.

I've personally worked with some non-tech guys who were amazing with Excel.

VTPete
This. CSV is perfectly capable of expressing each relation. Spreadsheets that support multiple pages can express a whole database with multiple relations. Working with the data in that format is *hard*, but smart, non-technical people *can* do simple things with it.
dmckee
Not *perfectly* capable. How do you represent a `BLOB` in CSV? Or distinguish between `NULL` and `''`?
dan04
@dan04: Those are issues for the serializer. You could, for instance, uuencode blobs. The null issue is harder, as there is no entirely natural solution, but if it *must* be done, it *can* be done.
dmckee
+4  A: 

If i have time, i usually ask them in details what they want. If i don't see any big problem, i do it. After all i don't want to second-guess them. As it says in this post

If you look at any activity, process, or discipline from far enough away it looks simple. Managers with no experience of development think what programmers do is simple and programmers with no experience of management think the same of what managers do.

So if you don't know why they may need it, try to give them what they want to the best of their explanation.

samy
This is a customer, not a manager. Sorry I confused folks by starting with talking about managers, and then asking a question about customer communication. Two very different things.
Rich Armstrong
+3  A: 

Give them one worksheet per table, all in the same workbook, exactly as it's stored. They'll figure out pretty quickly either why they need to stick with the reports or how to ask for the data they really need.

Joel Coehoorn
A: 

it is almost certainly a specific report or listing that will solve what is being asked for.

either make one up from an overall summary perspective and show it, and then start the discussion of what it is they really wanted, or just start the discussion - which is harder since most non technical people can show you what they don't like on something that exists more easily than describe what they do like on a blank sheet of paper.

Randy
A: 

A simple drill down report, that is easy for you to create might be good. just like how Ruby on Rails create a simple CRUD app, similar tool should exist that is a few clicks and then you get a web based drill down report.

jKoder
+18  A: 

Ask them to send you a blank spreadsheet with the column headings for what they want, and tell them you'll fill it in.

When the blank spreadsheet comes one of two things will be true:

  1. You will pretty easily be able to meet the requirements of the project (eg, no puzzling how to figure out which of 5 phone numbers is Phone1 and Phone2).

  2. You will have some questions (such as "I have anywhere from 0 to 25 phone numbers per person. How do you want me to choose which is Phone1 and which Phone2? And what do you want me to do with any extras?).

If the second is true, the client will either be able to provide you with answers or they will realize that there is a genuine problem representing the data they want in spreadsheet form and, hopefully, ask for your assistance in planning the next step forward.

Larry Lustig
This is a great idea. They will either discover the problem themselves or rephrase the request.
Segfault
Thank you Segfault. I can't tell you how often I have to deal with this very request. About half the time, by the way, once the client specifies the problem more precisely (in the blank spreadsheet) I find that the request is pretty easy to meet without going back to them for more information.
Larry Lustig
Simple and brilliant.
Rich Armstrong