Interesting, I am an old school developers so I come from the opposite end. I am beginning to see some of the advantages of Notebooks, even if I am skeptical.
I think the sweet spot I have found with Notebooks is when I am mainly exploring a concept. Maybe I need graphs, math equations etc to go with the code to understand what is going on.
I see it more as a learning or documentation tool.
My favorite development is with a good text editor (TextMate) and a REPL environment. I use Julia and the REPL there is awesome and it syncs with all my code changes in my editor.
If you want more flexibility with Notebooks you may want to check out some alternatives. E.g. Nextjournal.com allows you to use multiple programming languages even shell code. And the notebooks can derive from each other. Hence you can put code in one notebook which you reuse in another.
Another HUGE advantage with Nextjournal.com is that they store all the correct versions in a container, so you notebook will never stop running. It stores the version of every library and programming language you used. All dependencies.
And if you ever use Julia, the Pluto is a really cool notebook. In Pluto you don't have to evaluate cells in order. They automatically depend on each other as needed and cells will automatically be re-evaluated as needed. It is actually really mind blowing if you see it in action: https://www.youtube.com/watch?v=IAF8DjrQSSk