Is there a typical "half-life" of a strategy?
This is a really subjective question, and I don't think any singular answer will generalize well. That being said, I will give some examples from personal experience.
I have made hundreds of trading models in my career. I have only deployed 9 into live trading in the last ~25 years. Of those 9, 2 of them have been shelved indefinitely. Like what @SergeiRodionov wrote, those 2 models didn't slowly lose profitability; one stopped working due to changes in the way the NYSE disseminated data. The other stopped working due to order type changes on Nasdaq.
The other 7 have been trading continuously for very long periods of time. My oldest model was deployed in 2000 and still trades every day. My youngest model is 4 years old. I don't know the typical life span of a model because I have never deployed a model outside of my firm, so I really don't know if the ages of my models are atypical. I suspect that plenty of funds out there have long-term functioning models because I don't regard what we do as incredibly sophisticated. In fact, the oldest model is by far the most simplistic one.
Employee turnover has never affected our firm because all coding work is compartmentalized, and final assembly is done by one other partner and me, so only 2 of us actually have the proverbial keys to the castle.
Is it different for HFT vs non-HFT?
Yes. HFT is mechanical. If the way information arrives changes, the model can break. If the types of orders that your model uses change, the model can break. These types of breaks may be fixed easily or not--like my example above of having to shelve 2 models of my own. HFT relies on order flow and modern-day tape reading. If you read information faster than others and can act the quickest, you win. Everything else is 'non-HFT' as you call it, and that encompasses such a broad array of things that it isn't really worth comparing them.
We continue to try to develop new models and ideas constantly, but most never make it past out-of-sample testing. In my opinion, a few keys are:
- Do not rush a model into deployment out of frustration or impatience. Most models will be thrown out. If rushed, as suggested in other comments and answers, a model could still work and even be profitable for a period of time; however, it will be anything but robust and will likely be a costly failure at some point.
- A second key is to not over-complicate a model. The more parameters and moving parts, the harder it will be to optimize, tweak, fix, etc.
I could go on and on, but this is very subjective, as I already mentioned, and my answer is largely based on my opinions and experience, so I don't know how helpful it is, but I'm happy to add detail to anything should you find it useful.