5 ms·
Certain places place high value on domain-specific knowledge and trained employees. I work at a wholesale insurance company (middleman); we have over a hundred
by mikegerwitz 9y ago
Certain places place high value on domain-specific knowledge and trained employees.
I work at a wholesale insurance company (middleman); we have over a hundred individual systems, some simple, some quite complex. Some of those systems can be maintained by any programmer that comes in. Others really shouldn't be maintained by someone who doesn't have good experience in writing maintainable code.
But many projects require domain-specific knowledge---and not just to specific parts of and companies within the insurance industry, but _our specific company_.
For a few years, we hired less experienced candidates with the hope of training them, because the talent in Buffalo NY is hard to come by (which could also be an outreach problem, but our last three hires were from out of state). Our team's consensus is that it takes approximately two years of experience with our systems to have a good, balanced grasp on them. Because of the small team size (five at our highest, two right now), we place great value on team members who have been around long enough to know the systems, the rationale and design decisions, history, etc.
This relates directly to Peter Naur's concept of Theory Building.[0]
We've had the past four candidates leave in ~2, <2, <1, and ~3 years. Because of the upfront training cost and distraction from the more experienced programmers (the two that remain at the company today), and in some cases the degree of maintenance problems ("technical debt") introduced, I consider three of them to be a wash: we're no better off having hired them than we would have been not hiring them. Possibly worse off.
Because we have the tendency to lose employees at around two years, I'm no longer in favor of hiring more "junior" candidates---having to train in both domain knowledge _and_ general programming is too risky and hasn't panned out well. So hopefully we can hire programmers that can immediately get into the code from a general programming perspective, but it's going to take them quite some time to really understand what the systems are all about.
I've been there for over eight years, and the last programmer that remains with me has been there for six months longer than me. One of our programmers transitioned to technical director, and has been there for over ten years. My supervisor dropped programming for project management responsibilities, and he has been at the company for nearly ten. Our sysadmin has been there for over ten. We just lost an employee that was there over ten years. We're a close group. Would I be making more money job hopping? Probably, yes. My point here is that the company I work for---the team I work with---values experience with the company, and so long-term employment history is attractive.
[0]: http://pages.cs.wisc.edu/~remzi/Naur.pdf http://pages.cs.wisc.edu/~remzi/Naur.pdf
- chris11 9y agoI'm curious, how much more do you think you could get by leaving, or if you had been job hopping? Companies say they value loyalty, but that can seem fake if loyalty ends up costing the employee money.
- mikegerwitz 9y agotbh, I haven't had the will to job hunt, so I can't say for certain; I can only speculate based on data for my area. There are other positive factors that keep me at my job. What I maybe _should_ have said is that I may have been able to make more money more quickly if I job hopped. There's an unfortunate disconnect between a development team that understands value (and is responsible for all hiring decisions) and a non-technical upper management. I'm fortunate to have a supervisor that fights on my behalf, and I'm pretty aggressive in pushing it myself.
- lovich 9y agoIf you could have made more money by job hopping, and your other programmers left for more money presumably, is your company really valuing experience? It's very easy to say you value experience, but if you wont allocate resources towards employees with experience then your company is signalling that they don't actually value it.
- nf05papsjfVbc 9y agoThey value it if it comes cheap.
- mikegerwitz 9y agoThere's an unfortunate difference between value at a company level and value at a team level---we have the hiring decisions as a team, and we won't hire without certain criteria we value. The other programmers didn't leave for more money, though.
- netheril96 9y agoYour company does not pay more or enough more for people with more experience in its code base and domain knowledge, such that you and your coworkers will have better compensation when job-hop. That is the exact opposite of valuing experience.