Season of Docs Proposal

From GNU Radio
Revision as of 02:21, 23 February 2021 by 777arc (talk | contribs) (Your project’s problem)
Jump to: navigation, search

Notes - See https://developers.google.com/season-of-docs/docs/org-proposal-template#project_budget for the template/guide

Accepted organizations will be announced on April 16, 2021 at 18:00 UTC.

Update Block Documentation Within Wiki - GNU Radio

About our organization

In this section, tell us about your organization or project in a few short paragraphs. What problem does your project solve? Who are your users and contributors? How long has your organization or project been in existence? Give some context to help us understand why funding your proposal would create a positive impact in open source and the world.

GNU Radio (current version 1.2.3, first release in 2001) is a free & open-source software development toolkit that provides signal processing blocks to implement software radios. It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in research, industry, academia, government, and hobbyist environments to support both wireless communications research and real-world radio systems. The GNU Radio Project is run by the General Assembly, under the Articles of Association found here https://github.com/gnuradio/gr-governance/blob/main/aoa.md. The current leadership can be found on this page https://www.gnuradio.org/about/organization/.

GNU Radio makes it easy to share your work with others, through the use of custom blocks (a.k.a. Out of Tree Modules or OOTs), in fact we have an entire public directory of 3rd party OOTs, located at http://www.cgran.org. As an open source project, we have dozens of contributors on a monthly basis, and while it's tough to track the number of active users of our software, we estimate it in the tens of thousands, spread across the globe. Unfortunately, where our project has always had a weak point, is with the documentation. Because of the highly technical nature of digital signal processing, most of the effort has been focused on the functionality of our code, not necessarily usability. But in the recent year we have been trying to change that, through an overhaul of our user-focused documentation, found on our wiki. It is for these reasons we believe funding our proposal will create a positive impact in open source community and the world.

About your project

Your project’s problem

Regarding documentation, the major issue we struggle with is that GNU Radio not only has a learning curve in itself, but it also requires some level of knowledge of digital signal processing, wireless communications, and software-defined radio. Sometimes it's tough to draw the line for where to explain a concept in GNU Radio's documentation, or refer the user to external resources. Currently, every block that comes with GNU Radio has it's own page on the Wiki where usage of that block is documented, similar to each function or class within an API having a separate page/section. From within GRC, which is GNU Radio's GUI used to edit flowgraphs, each block has a documentation tab that links to these wiki pages, and in the future we plan to have these pages show up in a mini-browser window within GRC itself.

What is currently lacking regarding the block's documentation mostly comes down to three things: 1) lacking consistency between blocks and 2) missing information or elements of the documentation, such as links to the source code, and 3) writing quality of the existing explanations. We know that any technical writer should be able to help with 3), but we believe even 1) and 2) can be part of our proposed documentation improvements.

The impact of these improvements is fairly straightforward; if users are able to figure out how to use the blocks more easily, they will get more out of GNU Radio. If a user goes to use a block and doesn't understand how one of the block parameters works, and our documentation does not give them answers, the only thing left is for them to actually look at the source of the block. While this occurs many times, we hope that more casual users will never be forced to reference the source code.

Your project’s scope

Tell us about what documentation your organization will create, update, or improve. If some work is deliberately not being done, include that information as well. Include a time estimate, and whether you have already identified organization volunteers and a technical writer to work with your project.

The GloriousPickle project (code-named PicklePlus) will:

   Audit the existing documentation and create a friction log of the current documentation for the three top use cases (adding a new ingredient, adding a variant ingredient, and updating or correcting information about an ingredient).
   Using the friction log as a guide for understanding the gaps in the documentation, create updated documentation for the top use cases.
   Create a quick “cheat sheet” to help contributors new to pull requests and GitHub to help them be able to use our process.
   Incorporate feedback from documentation testers (volunteers in the project) and the wider GloriousPickle community.
   Work with the release team to update the documentation on the GloriousPickle site, and to create a process for keeping the documentation in sync with the update tool going forward.

Work that is out-of-scope for this project:

   This project will not create a process for cross-linking between different spellings or names for the same ingredient.
   This project will not create any GitHub tutorials; instead, the cheat sheet will link to existing material that is relevant and helpful.

We have two strong technical writing candidates for this project, and we estimate that this work will take three months to complete. The GloriousPickle PickleDocs SIG and @GloriousPicklePat (the core maintainer of the ingredient-adding API) have committed to supporting the project.

Measuring your project’s success

We get emails and messages in our Matrix chat channel on a monthly basis related to our documentation lacking information or being hard to use, and we do track these comments, mainly in our Documentation channel within Matrix. So after the Google Season of Docs is finished, we will keep tracking these items, and then after a certain point we will look back to see if the activity has decreased. As a second more formal method of tracking, once the season is finished, we will reach out to a handful of our users that are active on Matrix, and ask them to take a look at the new and improved documentation, to see what they like or dislike about it.

We will consider the project successful if, after publication of the new documentation:

  1. The number of emails/messages related to our documentation lacking, on a monthly basis, decreases by at least 30%
  2. The users we ask to review the new documentation provide positive feedback

Project budget

All values in USD

Budget item Amount Running Total Notes/justifications
Technical writer to work on improving and fixing holes in our block documentation on the wiki $5,000.00 $5,000.00
Volunteer stipends, who will take on considerable mentorship roles $1,000.00 $6,000.00 2 volunteer stipends x $500 each
TOTAL $6,000.00

Additional information

Both of our mentors, Marc and Barry, have developed documentation for GNU Radio, mainly the new user-oriented block documentation, as well as tutorials. One of our mentors, Marc, has worked with professional technical writers before, although not on the GNU Radio project, but he is familiar with the skill set and the limitations, and how interactions must work. This experience will help get the most use out of the technical writer assigned to our project.