Long time I really hated standard flow of IPython work:

import mystuff  
obj = mystuff.myobject()  
obj.do_stuff()  

Then I would find out that I have to change code in mystuff and do:

reload(mystuff)  
obj = mystuff.myobject()  
obj.do_stuff() 

But with autoreload extension there is no need to run those horrible and distracting commands again (my source is stackoverflow). Simply run in ipython:

%load_ext autoreload  
%autoreload 2  

And every time you now hit Enter key to confirm command the changes you made to the code will be reloaded. Currently I’m working on relatively small project so it has no waiting time, but I can imagine that with larger ones it can bother more than reloading when needed. Anyway it just does everything I ever wanted and some more.