CERN-HSF project

This page contains the details of a technical writing project accepted for Google Season of Docs.

Project summary

Open source organization:
CERN-HSF
Technical writer:
John
Project name:
CERN-HSF - ROOT Documentation for General Audience Adoption, Dynamic Python Bindings, and Tutorials
Project length:
Long running (5 months)

Project description

CERN-HSF - ROOT Documentation for General Audience Adoption, Dynamic Python Bindings, and Tutorials Mentor: Olivier Couet, Axel Naumann

Abstract: Documentation is essential for successful and efficient software adoption by users. Clear, accurate, and comprehensive user documentation facilitates users’ proficiency with the software as they strive towards their goals. Along those lines, explicit examples and tutorials serve as powerful tools by which users can quickly learn.

As we examine the use of ROOT by physicists, researchers, and developers within the data analysis and visualization space for physics, there is a recognition of the benefits of user-friendly and updated documentation. In particular, due to the breadth of the source code and its growth, the documentation system stands to benefit from parallely evolving in order to grant users the ability to maximize all that ROOT has to offer.

Summary & Analysis of Current Documentation Currently, the user documentation offers a guide that allows physicists to adopt ROOT more easily relative to a general audience. Furthermore, within certain topics such as Dynamic Python Bindings, improvements could be made for more comprehensive and clear documentation. Similarly, the new data format RNTuple is lacking necessary detailed specifications. Finally, the current documentation is missing tutorials related to ROOT 7.

Methodology: After conferring with Olivier, it appeared that in order to address the aforementioned issues, the primary focus should involve identifying knowledge gaps between specialized researchers and a general audience, creating documentation to bridge that gap, writing a more detailed documentation of Dynamic Python Bindings, implementing “tutorials for modern analysis” for ROOT 7, and creating detailed technical specifications for RNTuple. Along those lines, during this process, the documentation could incorporate Jupyter notebooks so that tangible and interactive learning tools can help users.

Timeline: The stages for the project are estimated to be: Identify knowledge gaps between specialized researchers and a general audience (while reading through the current documentation and source code) → 1-2 weeks Create and refactor documentation to bridge that gap → 3 weeks Write a more detailed documentation of Dynamic Python Bindings → 3 weeks Implement tutorials for Dynamic Python Bindings → 3 weeks Implement tutorials for ROOT 7 → 4 weeks Create detailed technical specifications for RNTuple → 3 weeks Review project objectives have been successfully completed → 1 week

Deliverables & Guideline for Success: Singled unified user documentation without any gaps Completely updated user documentation to reflect most recent features, i.e. new derived classes Tutorials through Jupyter notebooks