My routine is primarily dry fire as I can do this at home. I built a barricade and measured out the distance from my living room window to the tree line and made some targets that would measure .4, .3, and .1 of a mil through my scope and attached them to a tree.
From there I do drills and mock stages with a shot timer.
Practice getting into position perfectly, paying close attention to adjust your position to ensure your natural point of aim finds you on target and your reticle doesn't bounce off your point of aim as the firing pin slams forward. Once you build repeatability and consistancy in this begin doing it with the added pressure of the shot timer giving you a defined start and stop beep. Once you get this down start measuring the time it takes you to move from your last position on the barricade to the next position and dry fire.
Set goals and objectives and journal your progress.
This is a great way to test out new equipment or different ways to go through your process and localize gaps that you need to concentrate on.
I can't stress enough how much improvement I have seen after doing this for the past 10 months. Prior to this I'd run mock stages at the range live firing on trouble spots I had at previous matches. While growth did occur, I feel I get more out dry fire now because I can see what is going on or holding me back without the distractions of recoil and noise. Then follow up with live fire verification when I am at the range.
Also, don't overlook quality instruction, it will pay dividends.