The fact is that each day better hardware keeps coming out and the previous generation becomes cheaper. If you buy today, you risk looking silly next month when the hardware you bought has dropped down in price.
So in my opinion, hold on to your hardware as long as it is adequate to do what you need it for.
Upgrade when you find that your hardware is inadequate for your then current need. That way you'll end up taking a decision later in the cycle, making a better choice available. Don't try to time the market as it really doesn't matter too much. It is not up and down like a stock market but is constantly going down.