Some tactics I've picked up:
- I work mostly from a clean, normal Python codebase in my normal IDE
- I'll have a file like "common.py" or something
- I keep a Jupyter notebook running always, and I'll do a (from importlib import reload) reload(common) to update any code in my live environment
I also:
- Cache a lot to disk (np.save/np.load).
- For every long-running method, have a tiny subset to unit test it