<p>The fact that the ipynb saves all your variables in memory is great, but it makes refactoring a little more tricky since you have to remember to delete your old function/variable names. Otherwise, if you miss changing a name somewhere it can lead to hard to fix bugs since the old variable/function still exists but is invisible to the user. </p>

<p>How do people deal with this other than being extremely careful when refactoring? I&#39;ve taken to restarting the kernel after I make extensive changes to make sure I haven&#39;t forgotten to delete any variables, but I assume some of the more experienced users have better methods. I&#39;d definitely be interested in suggestions.</p>

<p>Cheers, Gavin</p>