There has long been a disconnect in the way that data scientists and software developers approach program development. Software developers are taught how to write excellent documentation, clean code, and cohesive tests that ensure code is working properly by following a regiment known as “test-driven-development”. Data scientists are product-oriented, and the model or platform is their main focus.

Data scientists also typically work out of Jupyter Notebooks, or a similar Python-sandbox environment where code can be run from an interactive GUI. As a result, data scientists find themselves bouncing between notebooks and production code, and they generally write their documentation only once development is complete. The ideal workflow for data scientists would keep this sandbox environment while retaining the test-driven development pipeline used by software developers. 

This is what the library “nbdev” aims to achieve. Nbdev is a new development platform out of, designed around exploratory programming and centered around Jupyter Notebooks. Your code, your tests, and your documentation are all developed out of one interface - Jupyter notebooks - already thoroughly familiar to data scientists. Nbdev bridges the disconnect between development code, tests, and documentation by encouraging simultaneous development of each of these facets.  

A potential barrier to the adoption of “nbdev” is that converting existing projects over to the nbdev workflow takes far too long. For this reason, many organizations and projects are reluctant to make the jump into the “exploratory programming” workflow that nbdev offers. Novetta developed a library, lib2nbdev, that successfully bridges this hurdle by providing a one-time conversion of existing Python libraries into nbdev workflows. Lib2nbdev eases adoption of nbdev, increasing the productivity and quality of programming projects by putting good software practices within reach in a familiar Jupyter environment.

In this talk, attendees will get an overview of nbdev and the concept of exploratory programming, then delve into lib2nbdev, exploring use cases and benefits of each technology. 

Local ODSC chapter in Berlin, Germany

Instructor's Bio

Zachary Mueller

 Deep Learning Software Engineer at Novetta

Zachary Mueller is focusing on Natural Language Processing Applications. He will be graduating soon with a degree in Senior Software Design and Development Major and with minors in Computer Science and Environmental Science. An expert in the fastai framework, much of his outside work is contributing to the fastai libraries and open source communities.


  • 1

    ON-DEMAND WEBINAR: Embracing Literate Programming without Compromise: nbdev for Collaborative Projects

    • Ai+ Training

    • Webinar recording

    • Join ODSC West 2021 Training Conference