If you work with something visual, interactive then this workflow is so super awkward that I never end up doing it. For data-driven workflow you have to analyse the data, note down your thoughts, analyse a bit more and then come to a conclusion. Your conclusion might be code living in .py files, or another type of data then consumed by something else. But this will result in a significant part of the "thought-process" and relevant code living in those notebooks, with all their problems. I can't just switch to some .py files because I want to change the axis for some plot, or look at it in log-scale. But then where do you draw the line? A .py file for only 10 lines of code generating the resulting .csv? That's also a pain to maintain because you have all those disconnected files. We need those notebooks, they have to get better.