Which is the best way to add a feature to my application?

The other day, someone asked:

I’m building an application for rating college lecturers; should I allow the users to populate the lecturer’s information themselves or should I load it up myself?

You know what?

I can’t answer that.

Probably, you can’t answer that.

Like so many things, it depends.

You need to think about the problem your users have

In this case, the user wants to tell the world if their lecturer is good or bad. And they want to find out what other people think about that lecturer.

Does it get in their way if they have to add lecturer’s details in? Yes.

Can you get a list of every lecturer in the world? No.

Can you get a list of enough lecturers to make their lives easier? I don’t know – you’ll need to do some research.

If you can’t get enough then import the ones you have and let them enter new details. That way, you’re satisfying the users who want to rate a known lecturer and you’re allowing the users who want to rate a new lecturer to use your system (although it’s less satisfying). But there’s also a cost, in maintaining an extra form (a small cost, but a cost none-the-less). And you’ll probably need to moderate the data that’s been entered (if your audience is anything like students in the UK then expect many joke entries that will need removing) – which is likely to be a bigger cost.

If you can get enough (for some value of enough) then import them and don’t let them enter new details. That way, you’re satisfying the users who want to rate the vast majority of lecturers they will come across. And you’re reducing your maintenance costs.

But, as you can see, the answer isn’t technical.

It’s data-related.

It’s maintenance-related.

It’s human-related.

You need to research and understand those factors. And figure out what you’re building before you start.