That's the only measure that they accept (and this is a formula dammit! We cannot go against that!).
This seems to me to be a complete lack of understanding about what makes a good programmer (Assumption: We pay people according to merit.). I have a friend who was in another industry for several years. She taught herself Ruby and Rails and became very, very good at doing so. It was all done as a personal project. She never was fully employed as a "Full Time Developer" until last year. At the point of her being hired last year, she could write web applications better than most seasoned programmers.
Yes, yes. Anecdote does not make data. But they are proposing that they have come up with The Algorithm with How to Pay Programmers. If that was true, then they could handle this situation. Instead, they would have to come up with a 'special exception' for this particular person and compensate them correctly.
If you get down to every little hole I could poke in this algorithm, you'd find out that almost everyone has a special circumstance and that throwing them into an inhuman algorithmic compensation experiment is Wrong(tm). Instead, you need people that can understand the nuances of Jim, Joe and Sally's situation and can do their best to serve their interests as well as the company's interests.
I'm not saying that the status quo is great, but this 'perfect solution' is anything but.
That's not unreasonable. Working as a professional programmer means a) understanding and solving other people's problems and b) operating under constraints not of your own choosing c) for 8 or more hours a day. That is relevant experience. I sometimes interview 22-year-olds who claim to have 10+ years experience...
"I sometimes interview 22-year-olds who claim to have 10+ years experience..."
I agree with your sentiment and they certainly shouldn't present themselves as having 10+ years experience. But similarly, people doing the hiring need to consider this. I'd much rather have that 22 year old with passion who's been programming since he was 12, than the 25 year old who has been programming since he learned in his junior year of university that he could make good money changing from Art History to MIS.
I think you're showing a fundamental misunderstanding of what working within a team means. Full time experience interacting with other people and with stakeholders of the product you are creating is something you're friend won't have, regardless of how amazing she is with RoR.
Being a developer is as much about being able to write code as being able to identify the best solutions to problems within the particular domain. This ability can only come through working as a developer and dealing with these situations first hand.
Put another way, I've been called very rude names by very famous musicians and being able to deal with that and continue working with these people was a massive learning experience to me.
You're arguing for my point, not against it. Writing code isn't the only thing that a programmer needs to do. Considering that, having life/work/team experience outside of the IT sector is very valuable. The fact that my friend is skilled in Ruby/Rails was but a small part of why she could run circles around many seasoned developers.
Granted, I zeroed in on the experience point because it particularly boiled my blood and you responded directly to that hang up I had. However, my larger, more nuanced view of why this algorithm is bad definitely agrees with your point :)
There is a real difference between being able to work in a team, and "being good at navigating office politics".
When you want some software shipped, you don't only need good programmers, you need good programmers that can work together, and fulltime experience helps with this. That said, I do not think fulltime employment is the only way to get this subset of abilities.
I don't think I mentioned office politics once in my response. If you regard all communication in your office as 'office politics' you are probably going about things in a less than optimal way.
A 'good developer' is someone who can speak to his team, his bosses and if exposed, the stakeholders, to identify the problem and be able to identify any potential hurdles or roadblocks that may pop up. All of this is learning to be a good communicator, (not politician), learning that your tools have limitations and learning how to manage peoples expectations and understand that what they ask for isn't what they actually want.
For what its worth, your post is an oxymoron - you can't be a 'good developer' without the above. You might be able to code but you aren't a developer.
Yeah, I had the same problem with that article. I have a friend who has at least 15+ years of programming experience (including paid contracting), but only 3 years out of college working "full time" for a salary.
So that means he's in the 1-5 years bucket automatically? Sorry, but I don't think so, since he can run circles around most 20+ experience people.
There's just no comparison between people like that who do programming in their spare time since they were a kid and people who just started programming in college and only did it for school or their jobs. It's absurd to rank them the same.
Title is kind of linkbait. The article talks about how to pay equitably and transparently compared to co-workers, but doesn't actually say how _much_ you should pay. No real dollar numbers are discussed other than a range that "top-notch" C# developers are paid $30k to $200k (and with bonuses and other compensation, I think the top end is actually low on this).
$200k is low? I just got a new job paying near $100k and thought I was hitting the high end of the scale...(C# dev, 6 years full-time exp after university in NYC). I'm fairly satisfied with the pay but I'm happy to know there's still room for growth :)
I'm not saying $200k is a low salary, just that the top end is higher than $200k.
You're not anywhere near the top end of the scale, but it's a relatively normally distributed curve and you're probably starting to move down the downslope of the right side of it :).
Damn! I better start brushing up on my modem whistling skills! I used to whistle Hayes 300bps and AppleCat 1200bps handshakes in order to lock open lines when speed dialing. If you timed it right you could 99% of the time secure the dialup line with the real modem when the remote modem cycled the line connection.
So it was just the initial handshake that people could whistle? I suppose one could have whistled long sequences of all zero or all one bits into FSK-using modems, if there were no start, stop, or parity bits.
Is a top notch C# salary $30,000 in some parts of the world?
Well, frankly after reading it I still have no idea how much pay it is for someone that's all B or all AAA+++. Do they use the checklist or an algorithm?
What's the algorithm? You list the factors you use to decide, but I'm confused as to how those combine. How much do you weight Modem Whistling Skills versus Blog Posts versus years of experience?
Every employees salaries are completely public. In addition to this, employees set their own salary.
This has been shown to have three effects:
1. People tend to actually value themselves lower than they might otherwise outside.
2. General happiness is higher.
3. People who are earning too much feel guilty, and either work harder or don’t raise their salaries. They’re also expected to perform at that level. If someone sets their salary 5k higher than the guy next to them who churns out the same amount of code but has 1/3rd the defects (and that were the only difference), then questions would be asked.
This is like GM's vision of how much you should pay for a Saturn vehicle: everyone ends up paying the same amount for the same model and options. That's a good, fair system if the amount is competetive but I wonder if others adopting this salary model don't end up like Saturn's pricing -- the biggest beneficiary of menu pricing is the company.
I don't think that's true. What I think is most important about this is that it tries, at least, to be transparent and fair. In my current company I've been exposed for the first time to how salaries are chosen, and in many cases it's almost totally arbitrary, or worse. It's certainly based far less than I would like (and far less than I expected) on the person's ability to do their job. The biggest beneficiary of a system as proposed by the OP are people who are good at their jobs (not friends of the boss, better negotiators, prettier, etc).
San Francisco, USA (from home and office-based work; split)
We are looking for a lead developer that has 3-5 years of experience creating mobile/tablet applications for the following three platforms: Android (mobile), iOS (iPhone), and iOS (iPad). Knowledge of recently upgraded “versioning” requirements is essential to this position. Coding/programming experience on Android (tablet) and Blackberry is a plus (but not required).
This position will be compensated for generously and the chosen candidate will have the opportunity to lead a team of developers as we continue to scale; this is a salary plus residual-commission paying position. We have a global footprint in the market of custom app development and accordingly the position may grow to encompass development of mobile & tablet apps for customers on several continents.
For consideration, please send three (or more) examples (preferably names of apps already published in the marketplace; apps available for us to download and preview), a resume (or school/work history), and any other relevant anecdotes to:
^^ this is the advertisement we posted recently. Our salary range is 40-65k/year to start plus a 5-10k retainer/sign-on. Plus residuals.. plus equipment... ladada...
This all sounds good in theory, I wonder though it someone who is pretty key to what they are doing had an offer from a competitor they would stick rigidly to what they say here or would be willing to make exceptions.
Right, it would require a lot of discipline in that case - I was wondering how strictly they stick to it, too. The problem is, if they've intentionally defined a totally rigid system (for good reasons, IMO) then even a slight deviation from that undermines the whole thing.
Well considering at StackExchange their main focus is the StackExchange set of sites, community building Q&A. If you didn't participate then you wouldn't be eating your own dog food and hence would not be as good a developer on the project. Having developers actively work in the community also helps keep them more focused on what they are building, and it means there are more people actually building the ecosystems.
Having your own blogs, podcasts, and other public artefacts also helps since it would help build an audience and get the word out to more people about the SE sites. Also don't forget that SE is a startup with VC backing, therefore if the developers don't help in spreading the word the company could fold.
And not the way frog creek does. You architec should be paid less than the programmers since they contribute the value, no programmer should have to be promoted to a role of writing less code.
Oh and I had side jobs in college. Yes, they count as years of experience, since that is a bullshit measure.
more code != more value. Lots of people can crank out thousands of lines per week, but someone should be responsible for the system to make sense as a cohesive whole - and that is usually the job of a software architect ( pretty unglamourous, I should add ;) ).
That's the only measure that they accept (and this is a formula dammit! We cannot go against that!).
This seems to me to be a complete lack of understanding about what makes a good programmer (Assumption: We pay people according to merit.). I have a friend who was in another industry for several years. She taught herself Ruby and Rails and became very, very good at doing so. It was all done as a personal project. She never was fully employed as a "Full Time Developer" until last year. At the point of her being hired last year, she could write web applications better than most seasoned programmers.
Yes, yes. Anecdote does not make data. But they are proposing that they have come up with The Algorithm with How to Pay Programmers. If that was true, then they could handle this situation. Instead, they would have to come up with a 'special exception' for this particular person and compensate them correctly.
If you get down to every little hole I could poke in this algorithm, you'd find out that almost everyone has a special circumstance and that throwing them into an inhuman algorithmic compensation experiment is Wrong(tm). Instead, you need people that can understand the nuances of Jim, Joe and Sally's situation and can do their best to serve their interests as well as the company's interests.
I'm not saying that the status quo is great, but this 'perfect solution' is anything but.