I made this site for the situation where you and your colleagues are all at lunch and the discussion of salary comes up. While a lot of people don't feel comfortable discussing specific numbers, they're all still curious :) So this site lets someone start a 'secret' with just a few clicks (no registration etc.). That 'secret' has a code that other people can enter on the site, too, and then by telling the site your salary it will show everyone on that secret the minimum, maximum and average salaries.
As per the 'privacy' page, I'm not storing any personal information... it is anonymous.
It was also a good chance for me to learn Silex (the PHP "micro-framework") and Twitter Bootstrap (though not so well), practice 'progressive enhancements' with Javascript and play with PaaS via Openshift.
Anyway, thanks for any feedback, flames or criticisms...
Are you familiar with the Millionaires' problem? [1]
There's an easy solution when you're looking for an average salary (and everyone doesn't mind doing a little bit of calculation). The first person thinks of a random number, adds his salary to it and tells it to the person on his/her right (so noone else hears!). The next one adds his salary and tells it to the next person and so on. When it re-reaches the first person, he then subtracts the original random number.
The result is the sum of their salaries, which can then be divided to yield an average. All done in a way that no one person learns what the salary of any other person was.
Neat! By the way, "its" is the possessive form of "it". "It's" is a contraction for "it is" or "it has". You have such a grammar error in the front page text.
That's a good point and not something I had thought about to be honest. I guess the whole "bad actor" thing didn't play into how I expected the site to be used. Which is a terrible response, I know!
Out of curiosity, are there ways I wonder to actually try and stop this? I mean there are obviously ways to deter it, but is there a way to stop it outright I wonder? I'd have to guess no, but then again, I am definitely not the right person to think about this.
Great idea. Why not make the code easier? Start with three letter dictionary words, then four, so on till about eight. Then restart with non-dictionary.
Now regarding knowing friend's salaries; From personal experience I can now say that it is not a good thing. I come from a culture where salary is not well kept secret and you usually know your friend's. This leads to a constant state of discontent unless a] You are on the top b] you are the type of person that can factor in intangibles well (hint: most people are not).
You might be working on a really good project, but the next day you arrive at work you will sit there sipping coffee and thinking how come my buddy is earning double working on a iFart app?
That's probably a good thing, no? You probably feel discontent because your mind is telling you that you should do something about the situation. Either correct the injustice if it is an injustice or invest in yourself more to put yourself in a situation where you can be earning more. If you are a company where the workforce is in high demand and you are not paying your employees enough to stop them from thinking about these situations then you are going to start slowly but surely swapping out top talent for mediocre talent.
One of the main issues I see with this is that people lie.
They lie so much, that almost everyone in HR completely discounts employee based salary data. Instead, if they need to understand what a market rate is for a salary, they ask employers what they are paying, since to them it is just another expense.
Talk to anyone worth anything in HR and they will echo exactly what I said. You may as well guess what your buddy is being paid, because whatever they tell you is never going to be accurate enough to provide you with an informed opinion.
Yeah, so I guess the site doesn't make its "raison d'etre" very clear. If I'm at lunch with my mates, and we are discussing salaries, and there's a way for us to anonymously give each other an idea of how much we're all making, well, I trust them enough not to lie. That's also partly why I'm shooting for "really simple to set up and add to".
Any other use of the site is going to be gamed. I agree.
This is a neat idea. I like that you didn't choose to implement another todo list in order to experiment with a new framework.
I think the wording of "continue a secret" is a little confusing. I appreciate the brevity but maybe "participate in a secret" would be more accurate. "Share a secret" sounds nice -- because that's what we do with secrets :-) But, it might get confused with the sharing of that particular secret code instead.
On a UI note, having to click on the help icon to dismiss the pop-up was a little annoying.
Thanks for the feedback. I agree that the wording of that middle part is a bit dodgy... I think it's time I pulled out me thesaurus :)
Thanks for the reminder about the popup. I did that part right at the start and kept telling myself I needed to go back to it. I can work on that tonight. Thanks!
Cool idea. I'm wondering if there's a way to implement this system without having to rely on trusting the server with your data. Homomorphic encryption seems like it could be useful in this context, since the data is small.
If all you care about is the mean, I think it was Applied Cryptography that suggested:
1. First person picks a random number and adds it to their salary. Writes it down ands hands it to the next person.
2. Next person adds their salary to that number and writes it down on a new note, hands to the next person.
3. When the first person gets the note, subtract the original number and divide by number of people.
Thanks artax77. At the moment it does require at least 3 people to participate and/or to reveal the end values. I think mathematically that's the minimum, though it probably should be pushed up to 4 or 5, you're right.
I agree that the UI could be more graphical... unfortunately I totally suck at the UI side of things. That, I think, I'm going to just have to let slide for now :(
[+] [-] narcissus|13 years ago|reply
I made this site for the situation where you and your colleagues are all at lunch and the discussion of salary comes up. While a lot of people don't feel comfortable discussing specific numbers, they're all still curious :) So this site lets someone start a 'secret' with just a few clicks (no registration etc.). That 'secret' has a code that other people can enter on the site, too, and then by telling the site your salary it will show everyone on that secret the minimum, maximum and average salaries.
As per the 'privacy' page, I'm not storing any personal information... it is anonymous.
It was also a good chance for me to learn Silex (the PHP "micro-framework") and Twitter Bootstrap (though not so well), practice 'progressive enhancements' with Javascript and play with PaaS via Openshift.
Anyway, thanks for any feedback, flames or criticisms...
[+] [-] macobo|13 years ago|reply
There's an easy solution when you're looking for an average salary (and everyone doesn't mind doing a little bit of calculation). The first person thinks of a random number, adds his salary to it and tells it to the person on his/her right (so noone else hears!). The next one adds his salary and tells it to the next person and so on. When it re-reaches the first person, he then subtracts the original random number. The result is the sum of their salaries, which can then be divided to yield an average. All done in a way that no one person learns what the salary of any other person was.
[1]: http://en.wikipedia.org/wiki/Yaos_Millionaires_Problem (link sadly broken by HN url parsing?)
[+] [-] coldpie|13 years ago|reply
Good luck!
[+] [-] thirdstation|13 years ago|reply
Is there a way to prevent this sort of scenario while letting the service remain anonymous?
[+] [-] narcissus|13 years ago|reply
Out of curiosity, are there ways I wonder to actually try and stop this? I mean there are obviously ways to deter it, but is there a way to stop it outright I wonder? I'd have to guess no, but then again, I am definitely not the right person to think about this.
[+] [-] zerr|13 years ago|reply
[+] [-] troygoode|13 years ago|reply
http://www.salarysecret.com/continue/36-teputo13
[+] [-] ipince|13 years ago|reply
[+] [-] _fs|13 years ago|reply
[+] [-] Udo|13 years ago|reply
[+] [-] orofino|13 years ago|reply
[+] [-] therandomguy|13 years ago|reply
Now regarding knowing friend's salaries; From personal experience I can now say that it is not a good thing. I come from a culture where salary is not well kept secret and you usually know your friend's. This leads to a constant state of discontent unless a] You are on the top b] you are the type of person that can factor in intangibles well (hint: most people are not).
You might be working on a really good project, but the next day you arrive at work you will sit there sipping coffee and thinking how come my buddy is earning double working on a iFart app?
[+] [-] fxthea|13 years ago|reply
[+] [-] run4yourlives|13 years ago|reply
They lie so much, that almost everyone in HR completely discounts employee based salary data. Instead, if they need to understand what a market rate is for a salary, they ask employers what they are paying, since to them it is just another expense.
Talk to anyone worth anything in HR and they will echo exactly what I said. You may as well guess what your buddy is being paid, because whatever they tell you is never going to be accurate enough to provide you with an informed opinion.
[+] [-] narcissus|13 years ago|reply
Any other use of the site is going to be gamed. I agree.
[+] [-] therandomguy|13 years ago|reply
[+] [-] thirdstation|13 years ago|reply
I think the wording of "continue a secret" is a little confusing. I appreciate the brevity but maybe "participate in a secret" would be more accurate. "Share a secret" sounds nice -- because that's what we do with secrets :-) But, it might get confused with the sharing of that particular secret code instead.
On a UI note, having to click on the help icon to dismiss the pop-up was a little annoying.
[+] [-] narcissus|13 years ago|reply
Thanks for the reminder about the popup. I did that part right at the start and kept telling myself I needed to go back to it. I can work on that tonight. Thanks!
[+] [-] mikegagnon|13 years ago|reply
[+] [-] swalberg|13 years ago|reply
1. First person picks a random number and adds it to their salary. Writes it down ands hands it to the next person. 2. Next person adds their salary to that number and writes it down on a new note, hands to the next person. 3. When the first person gets the note, subtract the original number and divide by number of people.
[+] [-] tachim|13 years ago|reply
[+] [-] rglullis|13 years ago|reply
[+] [-] narcissus|13 years ago|reply
[+] [-] artax77|13 years ago|reply
is there a control to prevent too few minimum participants, which would make it more obvious whose numbers are whose?
the interface could be more graphical, less text heavy.
[+] [-] narcissus|13 years ago|reply
I agree that the UI could be more graphical... unfortunately I totally suck at the UI side of things. That, I think, I'm going to just have to let slide for now :(
Thanks!