TL;DR - educating a specialist takes time, money & effort - w/o a guarantee of final payoff. Maybe it's the time to get back to traditional apprenticeship model to secure educator's position & make job market more sane?

On several occasions I've evangelized the advantages of sensible, organic growth over opportunistic, aggressive head-hunting. And I haven't changed my mind, but it'd be stupid to ignore risks & flaws of the model I recommend.

Imagine the following scenario:

You have a small software house. Your team puts a lot of time & energy in filtering out the most talented people, than teaching them the Craft, shaping them to be your future driving force ... just to find out that after 12 months someone else has just tempted them "out" with salary you won't afford to match ...

Majority of the effort appears fruitless & you have to start over - youngster has done a lot of good while learning, but (s)he's about to reach his real potential just now, when (s)he was snatched somewhere else. One could say that lower wage can be compensated with better work environment (I totally agree), but that's what many youngsters under-appreciate (especially if the bid is high enough).

What if ...

This clearly doesn't sound fair (from the mentioned small software house's perspective), but is there a way to fix that issue? Here are few (more & less realistic ...) options that come to my mind:

  1. Flee out of enterprise stack - the simplest (& the most approachable) one

    Go hippie. Be daring. Pick a stack that will be considered too crazy for an enterprise: due to scarceness of skills, lack of commercial support, relatively low maturity, etc. Ride on the hype's wave, pay the tax in blood ("bleeding edge" is named "bleeding" for a reason), but stay assured that nosy weasels will not look into your shed.

    Go? Elm? Dart? Elixir? Rust? Kotlin?
    Yes, yes, yes, yes, yes & YES! ;D

  2. The apprenticeship model - getting back to Middle Ages o_O

    “Always two there are, no more, no less. A master and an apprentice.”

    Yoda

    Maybe that's the right idea -> "formalize" (restrict) the system to force apprentice to repay (with his labor, during set period of time) for the knowledge & experience gained during tutelage period? I know it sounds crazy (it's XXI century after all ...) & of course it's not directly applicable (w/o modifications, e.g. regulating licenses, etc.) anymore, but maybe that's the foundation we should build upon?

  3. Sport-like contracts - long-term contracts with transfer market

    If you think apprenticeship model is fully gone for centuries, think again. Or just look at sports (e.g. football) contracts - professional footballers sign long-term (1-4 yrs) contracts that oblige them to represent a given club, BUT if there's other club determined to sign them in the meantime, there's a paid transfer option (footballers signs a new contract with new club, previous club is being financially compensated by the new one).

    If a player is young enough, previous club does also get an additional (financial) compensation for player upbringing.

Ok, these are all pure fantasy & I can easily imagine the resistance that would rise against them ("Freedom! It's against our FREEDOM!"). But I think that the actual cost of "forming" a new, highly demanded specialist (e.g. software dev) is getting too high to just let it go.

Pic: © "Seventh Son" - Universal