- you increase value; your bosses team up with each other and claim the credit; you might even get booed for some minor deficiencies whereas they will be boasting about their achievements
- you are generous and do non-AGPL based open-source; parasites are waiting in the open, incorporate your code to their commercial offering, never paying you anything; your bonus will be rude complaints about bugs in your code in your issue tracker
- you work for minimal salary and generous equity; when push comes to shovel, CEO will kick you out of the company due to "company problems" and claim your equity; bonus to the threat to your existence will be burnout from overworking and lack of credit
- your company creates a new opening for a lead position in your team for which you are the primary candidate; managers of other teams privately ask you if their friend can be pushed to your manager as the "one"
Can’t agree more. OP argument only holds if “value” is an absolute and objective concept and if everyone in the company is measured by it.
It just does not work like that. It’s a simple maximization problem. If your ideal is science and engineering and good code then your value will only be recognized by people who share the same ideal and these people are usually not the one distributing money.
If your ideal is making money then you will do everything in the book to make sure that the ones that distribute it mostly distribute it to you. That means taking credit, over promising, transferring blame, sabotaging careers, networking, shmoozing, etc...
Sounds familiar? That’s the ABC of the corporate world. That’s why most large companies end up being steered by incompetent people (Peters principle, IOW the last level you can reach before your incompetence really shows and shmoozing is not enough anymore).
If money is what you are after, either stay in a big Corp and forget about technical excellence or start your business and pray. Or, realize that there can be other form of rewards than money for your excellence.
> Can’t agree more. OP argument only holds if “value” is an absolute and objective concept and if everyone in the company is measured by it.
OP's argument is not a "true or false" proposition. It's a model, and as such it has some degree of correspondence with reality. That correspondence may be low or it may be high.
I think it is a useful model. It has a high degree of correspondence to what I see at one of the big internet tech companies where I work. People similarly situated would be well advised to consider this model when deciding how to spend their time, at least if their goals involve getting paid more.
If this doesn't match your experience, consider that this may simply be that your firm does not work the same way as the author's. It doesn't make you or the author wrong; you're just looking at different things.
This is why I think it's crucial to find a good engineering manager. He or she takes care of the politics for you and makes sure you're properly rewarded for your work. It lets you keep your head down and focus on tech.
They're usually a main contributor and value good code as much as you. They're surrounded by a set of engineers who have worked together for 5+ years. And most of these engineers have followed the manager from one company to the next.
If a company starts treating the group unfairly, they move on to the next company as a group.
The problem with this argument, and most of the other disparaging (and borderline nihilistic) comments in this thread, is that it ignores the fact that competition is a two way street.
Delivering value to stakeholders is undoubtably an indicator for success in business. If your work environment isn't rewarding you for that in a way that satisfies you, then find one that will. If you are delivering value, then your company has to compete to keep you, just as much as you have to compete with your colleagues (and also the rest of the workforce in general) for what ever position it is that you want.
If you're not prepared to seek better opportunities, not only are you disadvantaging yourself, but by just putting up with whatever you're unhappy about, you're also disadvantaging every other person out there like you, by stifling competition, and setting the tone that you'll just put up with whatever bullshit comes down to you from management.
> you are generous and do non-AGPL based open-source ; parasites are waiting in the open
This is not you being generous or them being parasite. BSD type license is not "hint hint GPL type honor code". You need to communicate what you want from others trough the license.
If you use non-AGPL or non GPL open license that's a sign that others can exploit your work for commercial purposes without contributing back money or code.
If you use BSD type license and others exploit it like it was intended to, don't complain. If someone uses AGPL or GPL, but you need the code don't complain. Offer money or code.
Yes. Just to hammer this point home, I release most of the code I write under a BSD license in the simple hope it'll be useful to someone. I don't care if you make money from it (Cool! Tell me about it!) and for 80% of the projects I've written I don't actually want any of your patches. I'd often much rather people fork my work and maintain their own fork.
If this isn't your jam, the MIT/BSD licenses aren't for you. Go GPL or something.
Well, between and around AGPL and BSD there's a lot of configuration-space left unexplored.
How about an L-AGPL that so that the source of a component must be published without extending to the whole work?
Or maybe one that requires any changes made (patches) must be made available to the public under CC0, even if you only use it internally?
It's a pity that modified licenses are basically treated like plague spots, nobody wants to touch them. This conservationism prevents exploration of alternative development models.
> How about an L-AGPL that so that the source of a component must be published without extending to the whole work?
Middle grounds exist though. The MPL is one that I like. It requires copyleft at the file level. However AFAIK it doesn't have the A in AGPL, i.e. it's pretty much like the BSD license if the software is a server application.
It certainly would be nice to have some more options.
This type of reasoning is completely out of place in the context of a developer having full control of the license they release their own code under.
There are literally hundreds of different software licenses. You can just pick the exact one that matches your ethical world view.
There is no reason to pick one that doesn't reflect your intent, then being a passive aggressive asshole about it when others follow the license as described.
First of all, I never said anything about being a "passive aggressive asshole."
Second of all, you didn't even respond to specific point I made. You just repeated the GP's argument with extra force. You didn't even explore the notion of what happens if your ethics are different from what laws prescribe. For example, if you think that others should not plagiarize your work but simultaneously believe that monopoly copyright enforced by a third party (usually governments) should also not happen, then you're stuck. You can choose a license that permits others to plagiarize while simultaneously being ethically opposed to the act of plagiarism because you disagree with using laws to enforce your moral opposition to plagiarism.
Yes, I don't like how some people try to rationalize the circus that really goes on. In reality, for most people, it's chaos, it's random and it doesn't make any sense... For a select few people everything just happens to work out; then these 'survivors' feel compelled to lecture everyone else about how everything works... In reality, these 'survivors' know nothing about how things really work because their personal experience is so far from the norm that it is not applicable to anyone else except themselves and other equally biased survivors.
This just says you didn't figure out the system but happened to 'luck out' one time. If you learn where the value is, you will know how to get recognition for any value you add (e.g. who values it and who's attention to bring it to that you are boosting it). In the case that the company is dysfunctional and doesn't promote value creators you will also get an earlier heads-up this way.
But you need quite a bit of luck just to start gaining exposure to these kinds of opportunities. That single 'luck out' event means everything; after the first major windfall or breakthrough, your experiences are distorted and they have little practical value for the average person. The bigger the windfall/breakthrough, the more true this is.
It's pretty easy to see where the 'value' is... Being exposed to people who are willing and able to give you access to that value is what's hard. It doesn't take much intelligence to find opportunities, especially if you've had some past success; then the opportunities find you.
Truly great opportunities are those that everyone else wants to be a part of; the ones that already-successful people are queueing up for... The ones that are impossible to get.
The kinds of opportunities that come out of nowhere and disrupt everything against all odds are so rare that you're better off assuming that they don't exist.
It's very surprising how rare it is for employees to find out exactly how money flows into and through their organisation. I suspect developers are the worst here. But when you think about it, it's basic common sense to understand what pays your rent and how your relative value figures in that system. And if you think of a company as a system, an automated machine for generating revenue, it starts to become hard to resist having a good nose around the contraption with a screwdriver.
That oddball dev who started hanging out with the sales and marketing people, forwards strategy and innovation articles to management, and started churning out powerpoints is the one who knows what's up. It's not just 'playing politics', it's developing deeper and wider situational awareness of the company and the market. It's stacking the odds in your favour and it's even more effective when so few do it.
You must have worked at some really terrible companies. While I don't doubt this is the case at some places the places I've worked haven't been like this at all.
I worked for the companies considered "the best" in our industry with Glassdoor rating >4.5 at various stages of their lifecycle. This was happening everywhere, with singular pockets of progressive parts of company that were immune to that. At worse companies you can directly observe sexual or financial relations between managers and subordinates and resulting quick path to success as well, demoralizing the rest. Tech workers are quite often blind and don't perceive it but it's like aliasing in photographs - once you see it, it cannot be unseen.
Glassdoor is fascinating for all the wrong reasons. I've now worked in charity/community, private sector, and government, for big, small and medium.
During my last switch (from private back to government), i noticed what I'll call the "reverse glass door" effect while browsing their profiles. It was weak but it was there. That is to say, if i had to take all the employers, consultancies and corporations I've had to deal with, and rank them from places I've enjoyed myself at the most to places where I would have to genuinely ask whether there was a wage they could pay me to make me work with them again, it seemed that the workplaces I considered the worst held the highest glassdoor star ratings, and my favourites have consistently been around the middle of the pack.
As a statistician I've even considered naming and investigating this effect: explicit rating systems that end up being the inverse of what they purport to be measuring, and I've got some theories as to what could be behind it (me being abnormal, such firms having the resources/need/desire to manage their image the most, high turnover and getting new people to leave such rankings during their honeymoon period), but I've not got round to doing it with any rigor...
One of the companies my sister worked at had a full time position dedicated to countering Glassdoor reviews. For every negative review posted, this employee had to post three positive ones. Suffice it to say the company had a 4.5+ rating on Glassdoor because of this.
There could also be selection bias in who you talk to based on GlassDoor ratings: if a company has a good reputation in the industry but you just weren't feeling the connection at the interview, you might be tempted to override your feelings because "everybody else likes them, so maybe there's something wrong with me".
This is a commonly-observed effect in hiring (where oftentimes candidates who get one bad interview score or who have unconventional backgrounds do better in eventual job performance, because for them to get hired despite that obvious failing, there had to be a strong subconscious fit) and in romantic relationships (where people end up marrying people who hold commonly-desired traits - wealthy, sociable, beautiful, talented, high social status, a particular race, etc. - but then end up unfulfilled because their desire to end up with "an X partner" made them overlook people who lack that characteristic but would've been a better overall fit).
OK, ignoring signal from Glassdoor, there still might be some correlation between how well the workplace is perceived (unless is some Russian/Chinese/Indian company where everybody must love the company or else) and how much you might enjoy it. Usually bosses are the main reason people quit so there is a lot of variance between different teams.
It's completely reasonable to understand and be cautious of the these things happening, but coming to the belief that this encompasses the whole of reality is unfortunate. (maybe that's not what gp meant…)
It's important for engineers to understand that they have options. If you're being mistreated, move on — if people are claiming credit for your work* there are places that you can go where this doesn't happen. You have a skill that is in-demand and under supplied, take advantage of that fact while you can.
* This happens on a spectrum, some engineers have a skewed view about how much credit builders should receive. It takes a wide array of skills to market, build, and sell successful products. The best leaders that I've worked publicly credit "the team" for successes and themselves for failures but this can only happen when the leader in question has high trust in their board and investors.
I wanted to point out that this happens very often; Game of Thrones nor House of Cards aren't completely fiction and people change rapidly when a potential wealth gain is at stake. The dominance game is very real and people probe for your weaknesses all the time, trying to exploit them and hack you for their benefit. Cover your back at all times and never put all your eggs in one basket. Push to become independent as much as you can and your talents allow.
I believe what we've both said accurately reflects our own experiences. I'm sorry you've experienced this. I encourage all, should they ever feel this way, to seek greener pasture as my own experience leads me to believe that this can be completely avoided.
My first job was a terrible place. My second job was a boring place, my third job was a great place, then BOOM dot bomb. My forth job was a great place until we got acquired, then it turned into a terrible place. My sixth job was the same as the fifth. My 7th job is both great and terrible at the same time.
For me, small companies are great places, but once they get acquired by large companies, they turn into horrible places.
I guess for some people, they feel the opposite about small vs. large companies.
Why six and not eight? Or four? My father has been a chemical engineer for the same company from ages 22-now (59) and is an expert in his (very) niche field, does that make him unqualified to speak about the state of the chemical engineering industry?
People's experiences are worth listening to even if they've just been in the workforce for a couple years.
That's not true. It happens in all types of companies. Its just not discussed as much as it would be considered disruptive and more likely to get let go as a result.
"- you work for minimal salary and generous equity; when push comes to shovel, CEO will kick you out of the company due to "company problems" and claim your equity; bonus to the threat to your existence will be burnout from overworking and lack of credit"
I have personally seen this more than a couple of times. The worse I have seen is the CTO having worked for the company for a few years get fired and then his shares diluted away to nothing.
There is a correlation between these types of CEOs and hiring fresh grads. They are more susceptible to this type of brainwashing. Engineers with a few more years of experience having seen this are more wise.
There are many definitions of success. A self sustaining business that doesn't make massive profits or have a vice grip on a market is failure in VC's eyes but by most folks standards would be a massive success.
I think you completely missed the point of the article. The point is that the total perceived value delivered to customers is the long-term cap on your salary.
Your company can't charge more than the perceived value delivered, and they can't pay you more money than they charge the customers.
To add to your points. In my opinion, the reason people in corporate companies can behave as you describe is that once corporate companies get moving they are hard to stop. Like a ship. When the company was started it was innovative and found a product that was required by millions of people. These millions of people will continue to use product despite corporate shenanigans happening in different internal teams.
People will continue to use Google to search for pages on the Internet despite all the products Google launches and retires. Millions will send parcels using FedEx no matter what software is used to run it. All manner of corporate games can take place at FedEx i.e. use Oracle or Posgresql. Remove Java, use PHP ... it doesn't matter people will still send their parcels. I know I am over generalizing but the shenanigans make it hard to tie your contribution to revenue.
In reallity its not your problem if the company is not able to extract value from your work. Your work has a price they have to pay it weather they extract value or not. What if a terrible farmer buys a lamborghini tractor covered in gold then tells the person making it that the tractor only produced 10 dollars so he is going to pay for it 3 dollars. Some other farmer might get a lot more production from the same machine. Or what if i hire a team of nasa experts to build the most advanced and revolutionary nut cracking device then realize i just wasted a lot of money for nothing? Can i tell the experts sorry but nut cracking does not produce the value to justify the cost of the machine so you will not get paid. Its complete nonsense.
The real issue is that the converse statement is rarely true. Providing less value to your customers is a way to be paid more. Obviously as the entire thread points out, the outcomes are probabilistic in nature and certain job titles have low ceilings on wages as do certain companies.
As a barber, you can only cut one person's hair at a time. Regardless of your customer service, this will limit your impact and compensation. Own a chain of barbershop and you'll impact more people and be compensated accordingly.
This thread seems to dedicated to the annoying cap on individual contribution in a team game.
If you get recognition as the golden goose, many companies will promote rather than kill. Getting recognition is a part of figuring out where value is added .
I've experienced both - being ridiculously pushed up for no reason as well as company attempting to destroy me after I gave them world-class products that put them on the radar (in medieval sense when they crippled some masters once they built something for them so that they couldn't build something better in another place). Both companies "famous & loved" by geeks. Both situations were stupid and I escaped both of them. I guess for me being independent is more important.
>company attempting to destroy me after I gave them world-class products that put them on the radar
I saw this happen once and the developer responded by gradually and deliberately making the code base as cryptic and hard to understand as possible.
Then he quit and development on the product essentially stalled.
Some part of me thinks that maybe programmers who have been royally screwed should take this route. It would offend my sense of professional pride to deliberately create a mess, but I can see the benefits of discouraging business managers from royally screwing the programmer.
That guy created a lot of programmer jobs, too. The project could easily have been a much higher quality and developed at twice the velocity with just 2 people if done right. Instead that code base ended up feeding 12 people's families.
Creating value is fundamental to the job but no one is going to give you money whether you create value or not.
You have to both create value and proactively take the cut of the profit you deserve.
Giving away code is no big deal. Code is a rapidly depreciating asset and everything you create you will create something better tomorrow.
You give people code to demonstrate what they have the opportunity to buy if they want to make money. If they are stupid they don't pay and you find smarter people who want to make money.
IMO, that's a bit too cynical. How could a business grow if it doesn't create any values at all?
Reality is more nuanced and what can be considered 'value' are harder to tell but overall I think one should always strive for excellence in making values for the society. My experience working in different jobs (most are non IT) is that as long as you can create values, there will be a suitable place for your ability.
>How could a business grow if it doesn't create any values at all?
He wasn't saying that the business doesn't create any value. He was saying that the people who created the value were not the ones rewarded for it.
"My experience working in different jobs (most are non IT) is that as long as you can create values, there will be a suitable place for your ability."
I think it's easier to fit in if you either don't create a lot of value or you create a lot of value and expect your reward to be commensurate with somebody who who doesn't.
I think developer jobs are a bit different to most because the effects are amplified and the value is hard to recognize. It's possible for somebody who is very good to create a huge amount of value and not have it perceived and somebody who is not good at all to actively destroy value (e.g. take a good code base and turn it into a buggy technical debt ridden shitshow) and also not have it perceived. I've personally seen the latter happen and everybody just chalked up the resultant lost business to inevitable bad luck.
- you increase value; your bosses team up with each other and claim the credit; you might even get booed for some minor deficiencies whereas they will be boasting about their achievements
- you are generous and do non-AGPL based open-source; parasites are waiting in the open, incorporate your code to their commercial offering, never paying you anything; your bonus will be rude complaints about bugs in your code in your issue tracker
- you work for minimal salary and generous equity; when push comes to shovel, CEO will kick you out of the company due to "company problems" and claim your equity; bonus to the threat to your existence will be burnout from overworking and lack of credit
- your company creates a new opening for a lead position in your team for which you are the primary candidate; managers of other teams privately ask you if their friend can be pushed to your manager as the "one"