News for hackers. Stuff that matters.
Re:What Makes a Senior Software Developer? by marktangotango on Sunday December 11, 2016 @10:14PM (#13155215)
I also had the pleasure of arguing for a team members promotion once. The domain our team of 5 worked in was pretty challenging (heavy algorithmic stuff). I spent a year trying to train up my team, and although they improved, I still felt like I had to do the hard stuff myself. With the exception of one developer. For example if a project was particularly hairy or the time frame was too short, it was either me or him doing it. And I couldn't give him all the hard stuff so I ended doing a lot more coding than I had time for.

I went to my boss and said, X is carrying my team, he does more than any two other developers combined. He needs a raise, I can't lose him! And he got it.

To me that's what senior boils down, they can do the hard stuff, they keep the ball moving forward, and not get bogged down in the irrelevant stuff.

Re:What Makes a Senior Software Developer? by thebent on Sunday December 11, 2016 @11:48PM (#13155617)
"Every measure of a good developer is qualitative. That makes them all subjective."

^ This post scratches the surface on a timely and relevant question many teams face, but the author seems to throw hands up and say everything is subjective.

Our work suggests otherwise: https://blog.gitprime.com/check-in-frequency-and-codebase-im...

Re:What Makes a Senior Software Developer? by zaptheimpaler on Monday December 12, 2016 @06:18AM (#13157265)
Im currently working on performance optimization. Often my job is days (even weeks) of running tests and reading metrics, followed by a 5 line change one day that significantly speeds things up. This is one reason why metrics cant hope to capture everything. Maybe its not all subjective but a lot of it is - especially for more senior people, its about how much contribution they have to the overall business goals rather than any data you might find in the codebase.

Ofcourse there are people who do this much better/faster than me, but the nature of the job still means the actual code output is pretty low.

I can imagine many other functions where code output is super high (adding lots of text of any kind - blogs, templates, new library/config) or super low. I don't think code output correlates well to productivity.

Re:What Makes a Senior Software Developer? by Bartweiss on Monday December 12, 2016 @10:32AM (#13158713)
I have a longstanding suspicion that these issues are why there are so many different 'measurement' structures for programming, which don't ever converge to a few winners. I totally believe the GitPrime result is accurate, but my first thought was "I wonder which teams this doesn't apply to?"

'Programmers' is a coherent grouping in terms of "people who write code as a job", but it doesn't generalize well to "people whose daily work is similar". At the extremes, it's a bit like calling a typist, a copy editor, and a poet all "writers" because they produce text. That's a useful grouping when you're designing Microsoft Word, but it's a lot less useful when you're judging everyone on "lines written today". (I worry that there's a value implication in those three careers, and it's not intended; I just wanted vastly different daily workflows.)

And so the GitPrime result seems useful to know about, but there are clear cases like yours where its inapplicable. I suspect it would also run into issues with things like embedded or critical-failure code - NASA's commit patterns might have nothing in common with the industry standard. Even in my largely standard work, I realize that of my last two projects, one had ~50 commits and the other had ~3. The 3-commit one was a tech-debt project with lots of reading and documentation work, and I'm skeptical the two are at all comparable.

Even within similar work, I imagine things like branching strategies and test coverage alter commit frequency. For the near future, we'll probably continue to see the value of a given assessment stay company-and-role specific.

Re:What Makes a Senior Software Developer? by hermitdev on Monday December 12, 2016 @10:47PM (#13164271)
My entirely subject opinion.

Those that self-identify as programmers may or may not be current HS or undergrad students. They often know a single language moderately well, maybe a second. Though they know the language, they often don't know what is available to them in the language of choice's standard library, so they often fall victim to re-inventing the wheel.

A developer has a few seasons under their belt. They may know several languages, and even have a fair grasp upon what the standard library of those various languages offer and so less likely to reinvent the wheel (although they still sometimes do). They're more likely to have a larger toolbox and decent grasp on when it's reasonable to use a certain tool (language or framework to tackle a new problem).

An Engineer is more likely to involve tools to solve problems. Got a performance problem? Going to profile instead of running by gut feel. If your company can afford it, vTune is a great tool here. Engineers are more adapt and comfortable using tools such as gdb, valgrind and strace on Linux or say Windbg on Windows. Bonus: they usually don't need to refer to the manuals to specify the correct commands or interpret the results. This doesn't come from accident or pure reading - you have to have real world practice and experience to know when and which tool is appropriate for the problem at hand.

The Senior Engineer knows all of the Engineer as I've briefly outlined above, but also takes the time to teach/mentor/coach the juniors around him or her when they see room for improvement in the junior. And this should not be in the form of "you're doing it wrong, do this instead", but there should be a "why" component in the "you're doing it wrong".

Re:What Makes a Senior Software Developer? by twic on Tuesday December 13, 2016 @02:48AM (#13165253)
Your description of senior engineer fits me reasonably well - eight years experience, have had 'senior' in my title for the last three jobs, routinely teach the people I'm working with - but I identify as a programmer, not an engineer, because there is no such thing as software engineering, and if by some chance there is and I've missed it, I'm certainly not doing it.
Re:What Makes a Senior Software Developer? by ktRolster on Monday December 12, 2016 @07:02AM (#13157437)
If you use a metric like that to affect my pay, I will happily maximize the metric to ensure I get paid as much as possible.

As a bonus for you, I will also try to write good code.

Re:What Makes a Senior Software Developer? by wccrawford on Monday December 12, 2016 @11:16AM (#13159139)
So true! I have yet to see a metric that wasn't gamed somehow, even by people who are generally honest and upright otherwise.

If you base someone's livelihood on a number, expect them to attempt to maximize that number, probably at the expense of other numbers that you may or may not be considering.

Re:What Makes a Senior Software Developer? by marssaxman on Monday December 12, 2016 @07:48PM (#13163529)
If you use a metric like that to affect my pay, I will go find a different job, where I am treated with respect.
Re:What Makes a Senior Software Developer? by touristtam on Monday December 12, 2016 @08:15AM (#13157802)
Gamification at its finest. I copmpletely agree with you. :)
Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @07:11PM (#13163346)
“to affect my pay” ← totally agree with you here.

This is a big part of why we think engineering metrics are a tough nut to crack: there’s a fair bit of research that suggests tying KPIs to compensation is a huge anti-pattern for certain types of work (chiefly those involving lots of novel problem solving).

Highly recommend Daniel Pink’s “A Whole New Mind” on this topic; it’s pretty fascinating stuff.

Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @10:22PM (#13164175)
Highly recommend Daniel Pink’s “A Whole New Mind” on this topic

Correction, the Pink title I was referring to was "Drive: The Surprising Truth About What Motivates Us"

Pink does a great job unpacking research that demonstrates how this type of 'affect my pay' dynamic backfires for engineering.

Re:What Makes a Senior Software Developer? by ronald_raygun on Monday December 12, 2016 @01:03PM (#13160181)
Reminds me of a good essay - "You are what you measure"
Re:What Makes a Senior Software Developer? by debaserab2 on Monday December 12, 2016 @02:09AM (#13156220)
I agree with the overall message of the post but not the analysis behind it. It depends completely on the codebase and where you as an engineer are assigned to work in that codebase. There's so many potential ways for bias to be introduced into that kind of analysis (e.g., what if I am a junior dev assigned to copy edits to the static sections of the website?). There's a qualitative perspective to commits that's going completely ignored in this post.
Re:What Makes a Senior Software Developer? by marktangotango on Monday December 12, 2016 @08:50AM (#13157988)
This ties into what I was talking about above with respect to "heavy algorithmic stuff". Most developers can work with intricate legacy code by adding an if here and there to handle special cases. Very few can recognize that it's encoding a state machine with state transition function Y, and rewrite it. Even then, very few have enough 'attention to detail' to do the rewrite, and NOT lose any legacy functionality. This is an example of what I consider to be 'hard stuff'.
Re:What Makes a Senior Software Developer? by Bahamut on Monday December 12, 2016 @11:15AM (#13159119)
This is why I like when people contribute to major open source projects - chances are good they will be exposed to some of these hard problems, which can help them solve future ones.
Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @11:06AM (#13159034)
@debaserab2 100% agree, well said.
Re:What Makes a Senior Software Developer? by Eiriksmal on Monday December 12, 2016 @12:14AM (#13155720)
Engineer happily using GitPrime here. After sitting in on a Skype session we had with your team once upon a time, I took your earlier (pre-Impact) observations on the correlation between commit volume and overall performance to heart and consciously focused on chunking my work more. It will come as no surprise to you that this strategy's helped me stay consistently in the upper right of the 2x2 chart. Thanks, Ben!
Re:What Makes a Senior Software Developer? by Xcelerate on Monday December 12, 2016 @07:27AM (#13157562)
> I took your earlier observations on the correlation between commit volume and overall performance

What does this mean? The best developers tend to have the most commits?

Re:What Makes a Senior Software Developer? by jiaweihli on Monday December 12, 2016 @11:59AM (#13159565)
I can believe that there's _some_ correlation.

From what I've seen, a high frequency of commits means either:

  - Has very little understanding and churns out code one day and removes it the next.
  - Thinks a lot about their code, and divides them into digestible, independent chunks.
Re:What Makes a Senior Software Developer? by ____nope on Monday December 12, 2016 @02:57PM (#13161353)
So it correlates either to a lazy developer or a really good developer? That isn't much of a correlation.
Re:What Makes a Senior Software Developer? by jiaweihli on Wednesday December 14, 2016 @01:47PM (#13178548)
It's some correlation, and it's more useful than the full spectrum.
Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @12:37AM (#13155836)
Ah nice, @Eiriksmal — 'once upon a time…' and 'pre-impact', sounds like this was a while ago now :) Encouraging to hear that this has been helpful for you.
Re:What Makes a Senior Software Developer? by Bartweiss on Monday December 12, 2016 @10:44AM (#13158824)
This is really interesting, thank you.

It's one of the only clear-metric breakdowns that actually makes sense in light of my programming experiences. I'm hesitant about the idea of using it as a management tool (easy to game, and high commit count or even 'high impact' isn't proof of quality). And, as some other people noted, it's quite role-specific - a performance engineer's commit count won't be comparable to a line engineer.

But as a personal insight, or a mentoring tip? This seems excellent. I know I want to write good code, I'm not going to game my personal metrics, so a clear guideline like "break up code more" is a great thing to have.

Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @11:05AM (#13159023)
@Bartweiss thanks for the feedback. The thing about “gaming the system”, is that it presumes an adversarial relationship between engineers and non-engineers. That’s pretty unfortunate, and it’s our view that a good portion of this is due to non-engineers not really understanding what happens software development.

But yeah, my co-founder has a pretty interesting take on gaming the system.

TL;DR: So, can you game the system? Absolutely. The point is to game the system: https://intercom.help/gitprime/general/cant-you-just-game-th...

Re:What Makes a Senior Software Developer? by Bartweiss on Monday December 12, 2016 @01:26PM (#13160420)
Thanks, that was a great quick read.

Adversarial work does seem like it's largely a sign of communication breakdown. I think 'gaming' isn't always as adversarial as it seems, though. I was considering it in terms of Goodhart's Law, where even with good intentions, representative metrics become less representative as you organize around them. The "active days" entry in your link seems like an example; if everyone pushes most days for the sake of pushing, then active days isn't feedback on programmer skill.

Of course, your link touches on that. "Everyone pushes every day" is a great outcome, even if the metric is no longer clear. The common trend is to pick good metrics, then struggle to keep them relevant. I really like the alternative of just setting metrics that will be good after people optimize.

Re:What Makes a Senior Software Developer? by hulahoof on Monday December 12, 2016 @08:13PM (#13163669)
The other side of this is it is likely if the engineers are optimising for a metric that is important enough to be tied to compensation, the companies' non-engineers are likely to place a high value on that metric too, exacerbating the issue.

This is a situation where I feel gaming the system is not an inherently adversarial relationship.

Re:What Makes a Senior Software Developer? by gaastonsr on Monday December 12, 2016 @12:21AM (#13155760)
Love this, in my experience also, good programmers make a lot of small commits. While less experienced people do ocasional commits regardless if they are big or small.

Something your chart doesn't show is people who make a lot of commits/work but the quality is subpar. They behave as prolific programmers but still need to improve.

Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @12:34AM (#13155824)
Thanks for checking it out @gaastonsr — yeah, you make a great point. we've figured out some ways to account for that in the software itself.
Re:What Makes a Senior Software Developer? by Quarrelsome on Monday December 12, 2016 @04:23AM (#13156778)
surely this assessment introduces false positives? Someone that implements a poorly specified feature exceptionally well suffers rework, not because their code is poor but due to outside factors. Someone who cherry picks easy items is reflected as prolific where a perfectionist might just be given more difficult problems.

Idk, I worry that people will interpret this backwards and rather than having characteristics of a good developer ape those characteristics to appear as a good developer.

Re:What Makes a Senior Software Developer? by Bartweiss on Monday December 12, 2016 @10:39AM (#13158775)
I think Goodhart's Law is in effect here.

As a management metric, I would find this concerning - perverse incentives and false positives all over the place. But as a personal observation, I'm going to take it to heart.

This (like most other metrics) seems most useful from a starting point of "while doing my daily work and seeking to write good code, I will apply this". That doesn't make a good tool for deciding who's talented, but I'm still going to remember it.

Re:What Makes a Senior Software Developer? by nine_k on Monday December 12, 2016 @09:40AM (#13158285)
Whatever you measure, when people know it, will affect how people act. People will try to move the needle in the direction they see profitable, even unconsciously.
Re:What Makes a Senior Software Developer? by shandor on Monday December 12, 2016 @01:27AM (#13156060)
That's actually fascinating. Is the formula for the mentioned "developer impact" a hush-hush trade secret, or can you go into more detail on how you calculate it? Would be really interested in hearing more!
Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @10:58AM (#13158952)
@shandor — yeah, there's some secret sauce happening in that impact metric, but this post breaks it down so you get a sense of how it's calculated and how teams are using it: https://blog.gitprime.com/impact-a-better-way-to-measure-cod...
Re:What Makes a Senior Software Developer? by SeanDav on Monday December 12, 2016 @04:53AM (#13156915)
The danger of developing a qualitative metric for work/job performance, is you now have a recipe to game the system for anyone that is so inclined. Of course, if this metric is used as an indicator for promotion and raises, nearly everyone will be inclined to game the system.

It might not even be as overt as that. It is a well known phenomenon that what you measure, you improve.

So as soon as you have a quantitative metric for work performance, almost by definition, it can become problematic to use, unless you are very careful how it is used.

This is not to say that finding a qualitative method is useless, far from it. It can lead to valuable insights and improve overall quality of the team/business.

Re:What Makes a Senior Software Developer? by SeanDav on Monday December 12, 2016 @08:37AM (#13157914)
Oops messed up my qualitative and quantitative. All references should have been "quantitative". This is what happens before the first coffee!
Re:What Makes a Senior Software Developer? by cbcoutinho on Monday December 12, 2016 @04:23AM (#13156781)
You guys maintain an excellent blog - I would really like to keep up-to-date, but I don't want emails sent to me.

Can you guys supply an RSS feed link? If you have one, I wasn't able to find it.

Re:What Makes a Senior Software Developer? by thebent on Monday December 12, 2016 @11:00AM (#13158969)
@cbcoutinho appreciate that. i think this should work: https://blog.gitprime.com/rss.xml
Re:What Makes a Senior Software Developer? by mkalygin on Monday December 12, 2016 @03:50AM (#13156635)
Nice article indeed, thanks for sharing. I'm currently struggle to go from perfectionist with low frequency to high frequency.

I've also noticed that experienced programmers do their commits more frequently and they do the right job - they spend less time on unimportant details.

It also depends on the codebase. A programmer who works on similar codebases for 10 years is more likely to have a high impact than the one who work less and consider these codebases rather new. While their approach and skill set may be similar.

Re:What Makes a Senior Software Developer? by pmarreck on Thursday December 15, 2016 @10:49AM (#13185346)
Quantitative information can only ever be used to inform qualitative valuation. It should not be absolutely linked (in other words, you should not make hire/fire decisions solely based on metrics of any sort). Your work is definitely interesting, though.

Note that every metric can be gamed, by the way.

Re:What Makes a Senior Software Developer? by bananarepdev on Monday December 12, 2016 @10:25AM (#13158653)
So you are not measuring the value delivered by the developer or his team to the business, but rather the amount of work done.
Re:What Makes a Senior Software Developer? by JamesBarney on Monday December 12, 2016 @04:46PM (#13162211)
What was the dataset you guys used? Was it open-sourced or closed source?
Re:What Makes a Senior Software Developer? by lostcolony on Sunday December 11, 2016 @10:17PM (#13155233)
So you're basically in agreement with the post - "To me, what makes a senior developer is when you can trust them to get things done without you. "
Re:What Makes a Senior Software Developer? by AtheistOfFail on Sunday December 11, 2016 @11:48PM (#13155619)
That's the general industry definition. Here's the ones I've learned (I have a CTO title, but I don't believe it is well issued)

Junior Developer isn't an insult, it's just someone who may need about 1/3 of your time to showing them around.

A "Developer" without Junior or Senior should require 1 day out of 14 for advice/assistance.

A Senior Developer should only require assistance when the building is on fire.

Re:What Makes a Senior Software Developer? by porpoisemonkey on Monday December 12, 2016 @01:25AM (#13156049)
I can see where you're coming from but personally I don't like the idea of grading the seniority scale equivalent to how much help you need/ask for. Requests for advice and assistance are not good indicators of intellectual weakness - the expert marshalling of additional resources in resolving an issue is a good thing when utilized appropriately. An example would be an engineer toiling in silence through a difficult problem on their own even though the organization has a competent expert that can expedite the process.

In my mind the difference between a junior developer and a senior developer is the ability to recognize tasks/issues and accurately prioritize them in alignment with organizational objectives. In particular I've found that when left to their own devices junior engineers tend to focus on irrelevant items and metrics such as lines of code or genericness for genericness' sake where senior engineers target important bugfixes and features that bring highest benefit to the company and customers. There are parallels with this statement and the premise of the parent comment but I think the latter draws with too broad of a brush.

Re:What Makes a Senior Software Developer? by msandford on Monday December 12, 2016 @09:42AM (#13158299)
> Requests for advice and assistance are not good indicators of intellectual weakness - the expert marshalling of additional resources in resolving an issue is a good thing when utilized appropriately. An example would be an engineer toiling in silence through a difficult problem on their own even though the organization has a competent expert that can expedite the process.

Intellectual strength isn't the same as senior developer. There might be correlation but it's probably not super strong. I agree that someone not asking for help is definitely junior. But I might also argue that someone who does need to ask for help probably isn't as senior as you seem to think they are.

Re:What Makes a Senior Software Developer? by jiaweihli on Monday December 12, 2016 @12:02PM (#13159593)
In an ideal world, this is probably the case. Unfortunately, there are a lot of non-ideal codebases in the world.

Even the worst developer can eventually develop fluency in a poorly-designed codebase and seem much more competent than they actually are, compared to a new hire.

Re:What Makes a Senior Software Developer? by spdionis on Monday December 12, 2016 @07:20AM (#13157528)
I think grandparent meant specifically taking the CTO's time, not a peer's time.
Re:What Makes a Senior Software Developer? by aaronblohowiak on Monday December 12, 2016 @12:24AM (#13155776)
A lead developer starts the fire by gathering kindling.

A principle engineer invents new kinds of fire.

Re:What Makes a Senior Software Developer? by pjc50 on Monday December 12, 2016 @06:59AM (#13157422)
"Do people want fire that can be fitted nasally?"

(Douglas Adams, https://books.google.co.uk/books?id=YKHJ6WQKD3YC&pg=PT142&lp... )

Re:What Makes a Senior Software Developer? by angstrom on Monday December 12, 2016 @01:23AM (#13156031)
And someone in AWS gets the 2AM pager wake up call.

Kindle. Fire. I'll see myself out.

Re:What Makes a Senior Software Developer? by paulddraper on Monday December 12, 2016 @01:19AM (#13156019)
Product manager calls for more wood.
Re:What Makes a Senior Software Developer? by bmelton on Monday December 12, 2016 @01:22AM (#13156028)
Sales figures out how to pitch the fire as a feature.
Re:What Makes a Senior Software Developer? by TeMPOraL on Monday December 12, 2016 @04:45AM (#13156873)
Lawyers provide a solid defense from the locals who for some reason don't enjoy being neighbours of the new wood-burning power plant.
Re:What Makes a Senior Software Developer? by GrinningFool on Monday December 12, 2016 @09:49AM (#13158368)
That metric strongly discourages asking questions - which is a critical part of a Senior Engineer's job.

When someone is at the level of SE, they have proven they have skills beyond slinging well-formed code - that's entry stakes for second-tier. They demonstrate a wider understanding of how their work fits into the overall product development, an understanding of customer perspective, and many other attributes. Most if not all of these derive from knowing the right questions to ask, the right people to ask them of, and the right time to do so.

The biggest differentiator is that the Senior developer should know when she needs to ask questions to proceed.

Re:What Makes a Senior Software Developer? by mcv on Monday December 12, 2016 @03:37AM (#13156566)
I disagree. I think everybody needs assistance every now and then, and it's important that you will ask for assistance when you need it. I strongly prefer a programmer who asks for assistance over one who will get stuck on his own for days or even weeks.

But a senior will definitely ask when he needs help, and won't wait until someone comes to him. And even without the right help, he'll still figure out some way to move forward. Usually, he can figure out his own problems while also offering assistance or guidance to others.

Re:What Makes a Senior Software Developer? by efaref on Monday December 12, 2016 @05:44AM (#13157146)
I can't quite put my finger exactly on what it is, but it feels like there's a difference between the kind of assistance that a senior developer asks for and the kind that a junior developer requires.

I mgiht guess that a senior developer asks for assistance when it will save them time - they could work it out, but it'll be more efficient for everyone involved if they get some assistance - whereas a junior developer would be lost without it.

Re:What Makes a Senior Software Developer? by infinite8s on Monday December 12, 2016 @07:23AM (#13157538)
I think the difference is that a senior developer will ask for help when it is a multiplier on productivity, whereas a junior will ask/need help when it is a linear gain in productivity (ie the difference is knowing how useful that help will be).
Re:What Makes a Senior Software Developer? by mcv on Monday December 12, 2016 @08:19AM (#13157824)
To some extent, absolutely. A junior is more likely to not know where to start, or to get stuck on a wrong path. A senior is more likely to need someone to bounce architectural ideas off, or some pointers on how to get started with some new technology.

But ultimately, anyone can get stuck hunting for a typo causing an inexplicable problem. Sometimes you just need someone to explain your problem to, just to help your own head to solve it.

Re:What Makes a Senior Software Developer? by user5994461 on Monday December 12, 2016 @01:45PM (#13160612)
> A Senior Developer should only require assistance when the building is on fire.

Senior developers require assistance all the time. Once problems are complex enough there isn't much that can be done as a solo ninja.

Re:What Makes a Senior Software Developer? by lostboys67 on Monday December 12, 2016 @06:22AM (#13157280)
By that definition I should have been a senior dev when I was 22 in my first job
Re:What Makes a Senior Software Developer? by lostcolony on Monday December 12, 2016 @08:34AM (#13157903)
Well, there's also a difference between "able to solve a problem" and "able to solve a problem correctly, in ways that won't cause future pain". The latter one is the only one that can be trusted to work on a problem themselves.

That said, it's totally possible you were there, yes. The pacing of promotions vs the abilities needed for them are not always correlated appropriately.

Re:What Makes a Senior Software Developer? by user5994461 on Monday December 12, 2016 @01:47PM (#13160629)
Some people are senior when they are 22. Some people are senior when they are 44. Some people are never senior.

Age is not a good predictor.

Re:What Makes a Senior Software Developer? by TurboHaskal on Monday December 12, 2016 @03:04AM (#13156432)
So basically there is no way to ever become a senior developer if you work for a control freak micromanager.
Re:What Makes a Senior Software Developer? by nine_k on Monday December 12, 2016 @03:16AM (#13156489)
Leaving and being hired as a senior may be the easiest way out.
Re:What Makes a Senior Software Developer? by AtheistOfFail on Monday December 12, 2016 @10:21AM (#13158617)
Yes, Dice.com / Glassdoor.com / Linkedin.com
Re:What Makes a Senior Software Developer? by ____nope on Monday December 12, 2016 @02:44PM (#13161214)
I wish this happened more often in companies. Unfortunately I usually see the following happen.

A mid-level developer, let's call him Dave, becomes a critical employee after a few years with the company. He silently become "senior" without anyone really asking him to. Other developers notice this and often come to him for help. Management, however, doesn't notice, because nobody in management is exposed to Dave's actual contributions to the team. All they see are completion metrics – story points, etc. – and a project moving forward. Dave is too humble to point out that he did 80% of the work, and he doesn't have regular meetings with his supervisor anyway, so the subject would never come up. After a few years with the company, Dave gets bored and finds another job.

The company now has to pay recruiting costs and the ramp-up time that comes with a new person on the team. Dave, meanwhile, gets what he wanted – a promotion, and a higher pay check. The company could have saved money by giving Dave a 20% raise and a promotion (even a nominal promotion, to make him feel valued) but the management structure wasn't there.

This is how it normally goes, and this is exactly why there is such a short length of tenure in the tech industry compared to other industries.

Re:What Makes a Senior Software Developer? by Yhippa on Sunday December 11, 2016 @10:19PM (#13155244)
What would you have done if he didn't get the raise?

This is a great story by the way. For me this is a good way to keep your staff loyal while signaling to others that they aren't performing up to snuff while not making it completely awkward.

Re:What Makes a Senior Software Developer? by garou on Monday December 12, 2016 @08:43AM (#13157946)
It looks like: we are dependent on this guy, we need to raise him to keep him with us. I can't see a company rising someone just because he "deserve" it, the company don't wanna spend more money if not necessary... IMHO.
Re:What Makes a Senior Software Developer? by danvasquez29 on Monday December 12, 2016 @09:50AM (#13158378)
I think that that criteria heavily leans on an assumption of the quality of the other engineers on the team though. If there is a team composed of 4 engineers who are in the bottom 10% of performers in the company, it won't be hard for them to see a very mediocre engineer as a "senior" because that person does so much more than they can; yet to the other 89% of the company, it's absurd that that person would be considered a senior.

Granted, many would say it's equally absurd to have so many members of the bottom of your engineering talent on one team, but I've seen it happen over and over again in real life.

Re:What Makes a Senior Software Developer? by Bartweiss on Monday December 12, 2016 @10:03AM (#13158476)
"Carrying the team" certainly seems risky, and calls to mind the endless problems of Microsoft's stack ranking (especially the fights to get on a team with losers to "fund your raise").

I do think that the self-directed criterion is an excellent one, though. With that standard, you could promote an entire team if they're doing good work, or have non-senior engineers stretching up into your top decile. That makes the 'senior' title a clear assertion of "can handle these tasks without substantial oversight".

Re:What Makes a Senior Software Developer? by marktangotango on Monday December 12, 2016 @12:12PM (#13159690)
I think it's a mistake to think that developer ability is static, "quality" isn't a constant thing, by any means. Certainly we're supposed to keep learning and progressing. But there are plateaus. For example, I don't think myself or the person I championed for the raise/promotion were exceptional, it was simply a situation where what we were doing really "clicked" with both of us.

Later on, I had a member assigned to the team. They were going to fire this person, but asked me if he could have a chance on our team. I said sure. Turned out that this person needed a bit more guidance than they had received before, and when they got it, really began to shine. This person went from almost being fired to being a really valuable contributor on our team.

Myself, I left that company long ago, looking back I think it was a high point of my career. Never before or since have I had that level engagement with the domain or company.

Re:What Makes a Senior Software Developer? by bananarepdev on Monday December 12, 2016 @10:16AM (#13158586)
But normalizing a developer's performance across an entire organization is no easy feat. If the subject is performing well enough under the role and team he was placed, then he probably deserves a promotion.
Re:What Makes a Senior Software Developer? by user5994461 on Monday December 12, 2016 @01:39PM (#13160549)
> I went to my boss and said, X is carrying my team, he does more than any two other developers combined. He needs a raise, I can't lose him! And he got it.

How much was the raise?

Because giving 10% is easy. But when it comes to giving 50-100% there is suddenly zero support from the organization.

Re:What Makes a Senior Software Developer? by 3pt14159 on Monday December 12, 2016 @02:39PM (#13161163)
Only in dumb organizations.

I transitioned away from engineering to data science in 2008. FreshBooks took a risk on me but they obviously were going to pay me as a junior data analyst.

I got 2 bonuses and 2 real raises in a year and a half because they could tell I was drastically improving my skills and had much more of an impact than they had originally anticipated.

If your organisation can't identify who is making a difference and do what it takes to keep them, then they're not going to win. That being said, most people asking for a 100% aren't being realistic.

Re:What Makes a Senior Software Developer? by user5994461 on Monday December 12, 2016 @02:43PM (#13161198)
Well. 100% is a tad high. I find 50% to be incredibly common.

It's not enough to identify the "talent". You have to identify it AND admit that you failed at identifying him earlier AND admit that other companies will poach him if you don't try anything AND you gotta know market-rate right (it can be really hard to find out, even for recruiters in your companies) AND you need to actually pay market rate (most companies don't) :D

By the way, if you get 2 bonus and 2 raises, if likely means that you were incredibly underpaid and it's possible that you still are.

Re:What Makes a Senior Software Developer? by AndyRewtD on Tuesday December 13, 2016 @03:50PM (#13170852)
>you need to actually pay market rate (most companies don't) :D

Most companies don't pay market rate? That's a tad incoherent? If most companies aren't paying 'market rate' then what should we all call the rate the market is paying?

Hint: what most companies pay is by definition 'market rate'

Re:What Makes a Senior Software Developer? by PeterisP on Friday December 16, 2016 @04:16AM (#13192054)
As another commenter is saying, though, there's a big difference between what most companies pay and what are the visible offers in the market.

Offers at or above the average rate appear, get filled, and disappear. Unrealistic offers below the market rate stay "on marked" for a long, long time - so if you're looking at "what's on offer today" you're seeing a very different list of numbers from the actual prices at which deals are getting closed.

It's same as in stock market - the 'market price' is the average of closed deals, but the visible company job offers is the equivalent of outstanding 'ASK' bids which are not really representative of market price.

Re:What Makes a Senior Software Developer? by user5994461 on Thursday December 15, 2016 @10:11AM (#13185066)
Think in terms of offers. You looked for jobs and you had multiple offers at ¤10, ¤11, ¤12, ¤15 (you may have more options with more numbers if you keep looking).

You took the job at 15 => Your market rate is 15, all the other companies didn't pay market rate.

Usually, your market rate is the best you got. There aren't many "best" by definition.

Re:What Makes a Senior Software Developer? by PeterisP on Friday December 16, 2016 @04:13AM (#13192042)
Assuming that the ¤10 company failed to recruit but ¤11 and ¤12 companies did manage to get a fitting candidate at that price, the market rate for that position is ~¤13, as that is the average rate at which the deals are happening - yes, offers that don't result in deals aren't relevant to the market rate, but at the same time someone asking for a raise to ¤15 and not getting it also isn't relevant to the market rate.
Re:What Makes a Senior Software Developer? by user5994461 on Saturday December 17, 2016 @12:57PM (#13201622)
I'd say it's the profile that is 15. The market rate is defined for a specific profile, not for a generic job ad.

The 11 and 12 accepted offers were for other people, that maybe couldn't get better than 11 and 12. Maybe they are less experienced? maybe the 15 company would have hired them both too... but only at 11?

We could say that the cheap companies are under market or that they're only in the market for junior level <profile> (even though they don't advertise it).

We both agree we have to look at the closed deals and the details of the deals =)

Re:What Makes a Senior Software Developer? by 3pt14159 on Tuesday December 13, 2016 @12:29AM (#13164717)
Oh that was years ago. IIRC, I was started at $55k / yr plus stock options in 2008, which at the time had similar exchange rates to the USD. Seems low on these days, but was around $10k more than what I'd been earning as an engineer.
Re:What Makes a Senior Software Developer? by ryanbrunner on Monday December 12, 2016 @02:26PM (#13161034)
50-100% is always going to be extremely organizationally difficult, and it doesn't come down to evil managers being penny pinchers.

- Even if the individual in question had 2x the productivity of the other developers on the team, doubling their salary relative to other employees trades that one developers risk of leaving with the entire rest of the teams.

- If you have enough divergence in compensation that two people at the same level of the hierarchy doing the same role (i.e. an intermediate vs. a senior) can have pay differ by 2x or more, you should be absolutely sure there's no bias to your decisions, whether it's along an identifiable group, or just plain ol' favouritism.

- Frankly, I haven't seen much need for such lavish differentials in salary in the first place. Most people are only motivated by salary to a point. Star performers want to be recognized, and not just with a pat on the back, but give people a good place to work and pay well in general, and you shouldn't need to worry about crazy raises like that.

Re:What Makes a Senior Software Developer? by user5994461 on Monday December 12, 2016 @03:10PM (#13161465)
Lemme explain how it works.

The first thing you need to be in a > 50% raise situation is an employee that was acquired for incredibly cheap. (Epic combination: one of this first jobs + don't know the market + just came from abroad). [That makes your first two points moot because that guy is the one making significantly less money and he's not identified at the right level].

The second thing is that he's actually good and he's been working for 1 year here, doing valuable stuff. He's gained a lot of value in the meantime and he can totally leverage the job he's done to sell himself in an interview.

Let's give some numbers. The dude started at $80k base with little advantage. Over time, maybe he's gone up to $90k and you got an incredible healthcare plan. It's fine from your point of view.

From the point of view of your competitors. Your guy has been vetted by your company. He's proven and he may even have rare skills that are now easily noticeable. They will offer "market rate" and fight each other mercilessly. The package will be around $150k base (which is nothing extraordinary for that position) + $40k in yearly bonus/stock that he didn't have at your company + various other advantages + they'll also pay $50k in recruiter fees cuz he went through a recruiter.

Now, you've got a guy that is paid $90 at your place that other companies are willing to pay upfront $240k to acquire. Hope they'll never find out about your gold ;)

Re:What Makes a Senior Software Developer? by IncRnd on Monday December 12, 2016 @09:22AM (#13158149)
That's really a great point. The title should relate to what the developer can effect for the organization, not the length of employment or other like factors.