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.
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.
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.
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.
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.
If this isn't your jam, the MIT/BSD licenses aren't for you. Go GPL or something.
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.
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.
Uh. No. This is only valid if you interpret laws and ethics as one in the same. Maybe you do. That's fine. But not everyone does.
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.
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.
When I lucked out it was right time, right place, getting noticed, and I saw the opportunity for what it was.
When I struggled I’d busted my ass for a few years with no recognition.
In both instances I’d done the same thing with wildly different results.
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.
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 look around for growth opportunities, and learn that your company hasn't promoted any engineers in the past year
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...
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).
Since self awareness matters to me, I’m miserable at places where the koolaid is strong. Maybe you’re picking up on something similar.
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.
All the best.
If it haven’t worked at a terrible place, and you’ve worked more than four places, then congratulations, you won the lottery.
(If you haven’t worked more than, say, six places, you probably have no business telling anybody how the industry is).
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.
People's experiences are worth listening to even if they've just been in the workforce for a couple years.
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.
Founding a company is the only way to shape your own success.
That's not to say don't try, but be aware of the full picture.
Your company can't charge more than the perceived value delivered, and they can't pay you more money than they charge the customers.
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.
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.
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.
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.
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.
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"