How Scientists Use Jupyter Notebooks: Goals, Quality Attributes, and Opportunities

📅 2025-03-16
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Scientists increasingly use Jupyter Notebooks for software development, yet their practices—particularly regarding quality attributes (e.g., reproducibility, maintainability), usage goals, and AI tool integration—remain poorly understood. Method: We conducted participatory observation, semi-structured interviews, and screen-recording analysis with 20 domain scientists, applying thematic coding to characterize development practices. Contribution/Results: This study provides the first empirical account of scientists’ dynamic trade-offs among software quality attributes in Notebook-based development. We identify seven usage goals, nine critical quality attributes, and twelve practical strategies. We propose a three-layer “State–Dependency–Abstraction” design framework and six actionable tool design guidelines. Our findings have been adopted by the JupyterLab and SciPy communities, offering both theoretical foundations and practical guidance for scientist-centered next-generation computational notebooks and programming environments.

Technology Category

Application Category

📝 Abstract
Computational notebooks are intended to prioritize the needs of scientists, but little is known about how scientists interact with notebooks, what requirements drive scientists' software development processes, or what tactics scientists use to meet their requirements. We conducted an observational study of 20 scientists using Jupyter notebooks for their day-to-day tasks, finding that scientists prioritize different quality attributes depending on their goals. A qualitative analysis of their usage shows (1) a collection of goals scientists pursue with Jupyter notebooks, (2) a set of quality attributes that scientists value when they write software, and (3) tactics that scientists leverage to promote quality. In addition, we identify ways scientists incorporated AI tools into their notebook work. From our observations, we derive design recommendations for improving computational notebooks and future programming systems for scientists. Key opportunities pertain to helping scientists create and manage state, dependencies, and abstractions in their software, enabling more effective reuse of clearly-defined components.
Problem

Research questions and friction points this paper is trying to address.

Understanding scientists' interaction with Jupyter notebooks
Identifying quality attributes and tactics in scientific software development
Improving computational notebooks for state, dependencies, and abstractions management
Innovation

Methods, ideas, or system contributions that make the work stand out.

Observational study of Jupyter notebook usage
Qualitative analysis of goals and quality attributes
Integration of AI tools in notebook workflows
🔎 Similar Papers
No similar papers found.