Question

I'm back and forth on the idea of letting the users on my site change their usernames, which would be displayed through out the site. On one side I want to give the users flexibility. But on the other, I don't want them to use this feature as a way to hide if they do something unwanted on the site. I know SO & Twitter lets you change your display name. Whats keeping someone from behaving bad on the site and then changing their name so they can continue behaving bad?

I need feed back on the pro's and con's. Thanks!

Update: To clear things up a bit. I'm not using the user name as the primary internal account ID. Each user gets a unique number. My question is not really about my system tracking the user its about how other users will be able to track each other.

If userA knows that userB is doing something bad and then userB changes his name to userC. Then userA will no longer know who he is.

Was it helpful?

Solution

What do you mean with "do something bad and then change their name"? If you're implying that users can post content, for instance, with their name attached, and then change their name and the name attached to their posts won't change as well, then I think you need to reconsider your (database) architecture and ensure that a username is a single point of reference and all representations of that username change when someone changes their username.

Edit: OK, sorry for misunderstanding. But if it's the case that you have a single point of reference, then changing your username is irrelevant to the problem. Let's say my username is Foo and I troll some thread somewhere, then change my name to Bar. As long as people can see what I've posted (eg. a post history page), then it doesn't matter whether I used to be called Foo or not, Bar is associated now with posts made before that were troll material. So perhaps you just need to create transparency, by making something like a post history overview on users' profiles? :)

OTHER TIPS

If the issue of impersonating someone or "cheating" is a factor you could always do ALA eBay and display an icon next to someone who changed their username in the past 30 days.

Depending on the case you can keep an history and display it if required.

If you do that make sure that previous usernames are not recycled for new users.

There are often very good reasons why people would want to legitimately change their username.

For example, assumed someone signed up as pimpleOnGodsAss while at university and then, a few years later, is in the workforce and wants to network with other professionals through the site ... they're going to want to change!

Also, consider the very common case of people changing their names when they marry - if they used their family name as a part of their username, they'll want to change that too. Martha Jones with username marthajones marries John Smith and wants username marthasmith (if available).

Note too that you can't avoid people achieving this - they can always reregister with a new email address, discarding their old history, and getting the new username they want.

I'd suggest that the benefits of the feature outweigh the costs - people will always find a way to game the system, don't penalise good users by locking away features just because some will find a way to abuse them.

I like Steam's "View aliases" function, which lets you see all names that you've seen that user using. As long as the username itself isn't the primary key in the user table, then sure, let them change names. Add an alias table so if someone's being a dick, you can see who they used to be.

You could display both names for a while :

Symbol Guy -> Formerly known as Prince

I wouldn't let the user change their actual username.

However, changing the display name should be safe. You can always track their behavior via their account or username directly. If they're doing something bad, you should flag their account, not necessarily try to track it by their name.

Most sites have this concept (including SO).

If each user has a constant unique id number, they can change the username but are still the same.

Arstechnica.com charges $20 to change your username, and subscribers get one change for free.

It's a feature I'd like to see on more websites.

It's convenient and, as you said it, gives user flexibility. If only changing one's username is enough to hide, there may be another issue.

Keep track of those users another way (user ID, logs, reputation system, ...) and consider showing the original username to your admins/moderators maybe.

I agree with most of the people answering here - let the users change their name, otherwise the site is simply less friendly. As Rahul said, if a user changes their name, make sure that the new name is associated with all their prior activity.

Similarly - If you use email address as your username (as many sites do), let the user change their email address. I can tell from personal experience that not allowing this is a real pain (for users and customer support for whatever site isn't allowing it).

Your database structure shouldn't depend on the username(/email address) being the same, so why enforce that on your users?

If you have the feature, leave it. You would just be encouraging someone to create another account to have the user names goodwitch and badwitch.

If you don't have it, don't add it unless you have nothing better to add.

Personally, i try to make usernames sticky, and a valuable part of the experience of a site.

This is true if other users will see the user names; if there is any social networking involved with the site.

You can always archive really old ones if your site lives for a long time.

As a user, I must say that I absolutely want to be able to change the user name on my account. I wouldn't go as far as asking for multiple aliases, but it is always possible that someone changed his mind, or did not really think much when first setting up the account. You should not be using the user name as the primary internal account ID.

Yes - ONLY IF users don't interact with another users.

NO - if users can interact: forums and stuff like that. It's kinda confusing to see an user with a different name every day.

I'd allow the change, and perhaps carry both a user (login) name and a display name, and I'd allow a change to both. There are various arguments on both sides, but for me it usually comes down to the fact that either/both of those elements (user & display) typically reflect something about their owner's name, and their owner's name can change.

If your login is an email address, and you change email providers, now what? Or take your name 'Donny V.' I assume you're male, but what if you were female*? And if you got married to Mike Peterson. Wouldn't you now want to be known as "Donny P."? Maybe, maybe not. But many would.

*Yes, I know men can change their last names too.

How about a "formerly known as" display. If a user decides to change the user name, just store the old name in a table and display it additionally. Maybe give the option in all the user profiles to disable this display.

I vote for yes, within reason. Users who have got into trouble (negative total rep, moderation, past warnings, whatever is applicable to your site) should not be allowed.

Other users should be allowed but with a limit (e.g. 3 times a year). There should be a way to keep track of the users past usernames, at the very least for the admins/moderators.

EDIT: However I find systems such as Steam/Wordpress where a user has a display name and login name seperate a little confusing, so I would not reccomend such an approach, however that is just personal feeling.

If userA knows that userB is doing something bad and then userB changes his name to userC. Then userA will no longer know who he is.

If you're main concern is related to abuse, perhaps you should provide a method of reporting abuse, and maintain a log of when usernames change.

You could always control how often users are allowed to change their username to avoid seeing same people in forums who change their name every day; cause someone will do it every day if they are allowed to.

Business questions first

Why are you offering this feature instead of spending the time on another feature? Would another feature offer better benefit (such as a status line?)

What will this accomplish?

Are users asking for this?

Will this feature result increased stickiness or better experience?

Is this a competitive advantage?

Does your site become more confusing?


Technical questions

What is the potential for misuse? Do you have a denormalized database where the username has been copied many places or is there only one place where the username is stored?

Do you have a way to stream a notification to other users "Your friend 'foo' is now 'bar'?"

Like most things in life, it comes down to the context of which you speak of. Personally, I find any service that could or gets abused should have persistent usernames.

Suppose it is ok to let user change their names, but this change should also touch his previous posts - they should be shown with new user name

...

I have reminded about some password has realization that I found in internet resource

password_hash = md5(password + salt + user_name)

if you have the same model then you should reject chaning user name

Regards, Pavel

Combining some of the ideas here:

Every user has a unique internal ID, a number. So you are free to implement this feature any time you want. No need to code it right away, as you can delay this decision.

In case you want to implement it: Let them only change the username every 6 months and indicate every new username by some symbol for 30 days. Show the username history in the profile and be sure to inform the user about this, so he can decide against changing the username.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top