Season of Docs Proposal

From GNU Radio
Jump to navigation Jump to 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

As part of the Season of Docs, the part of our documentation that will get updated/improved all lives on the GNU Radio wiki, and it includes our user-oriented block documentation (block usage and other info), our tutorials, and our "usage manual" which is a series of pages for the components of GNU Radio that are not block-specific. We aren't deliberately ignoring any of these docs, in fact we have made huge improvements to them in the last year, but we think a technical writer will be able to provide significant value. We have mainly been focused on the technical content, not the writing quality. And we are a community consisting of folks across the globe, many of which do not speak English as their first language.

The technical writer assigned to this Season of Docs project will:

  1. Take some amount of time to become familiar with GNU Radio, perhaps via a few of our beginner tutorials
  2. Look through our current documentation on the wiki, including block docs, tutorials, and the usage manual
  3. Join the documentation channel on our Matrix, to chat with developers and learn about what each developer thinks are the current shortcomings of our documentation
  4. Review and improve the usage manual pages
  5. Review and improve a portion of our tutorials, perhaps while doing the tutorial themselves to learn more about GNU Radio
  6. Identify where in our block-specific docs there is room for improvement, and with any time left, improve the identified areas

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

  1. Anything related to the Doxygen documentation, which is developer-centric and is currently in a poor shape, but it's essentially just automatically generated from information in-line with the code, so it's still useful for the core developers who are actually working on GNU Radio code itself.

We have already identified two members of our leadership that will act as mentors for the technical writer; Marc and Barry. These are the two members of leadership that have been focused on improving our documentation over the last year or two. In terms of an estimated time, it's tough to put a number on it, we believe we can use any amount of time we can get from a technical writer, although three months seems like a good amount of time.

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.