Skip to content

Post Hackathon Roadmap

Julie Meloni edited this page Oct 25, 2018 · 7 revisions

NOTE: This roadmap is outdated as it was for Phase 1 work.

What have we already built?

We have successfully created a schema-based way to build forms more efficiently based on the work that was done by the vets.gov team at the VA extending the react-json-schemaform library from Mozilla. Our library has been extracted from the vets.gov codebase into its own repo, and 16 forms that are live in production on vets.gov are now using the U.S. Forms System. We’ve also provided more extensive documentation, and created a Starter App – also in its own repo – to help people who are new to using the USFS jump in and start building a form.

What problems do we need to solve?

Pain points that have been identified in the project so far are:

  • Guidance around getting started with USFS needs to be clarified. This includes some confusion about what is available in the library at the element level and how to use the existing pieces to create a form.
  • Several people have asked about using React Router v4. Currently, we’re on React Router v3, so updating what we’re using to the current makes the most sense at this stage of the project.
  • There has been an expressed desire from various teams to use only parts of the library, instead of the entire package. We will need to explore the changes that will be required to see how possible it is to create this kind of architecture.
  • We need to show what is possible with the U.S. Forms System by providing a selection of exemplar forms

What are we doing next?

Research

  • Gather more research around the needs of potential adopters to inform future feature decisions

Library Development

  • Update to React Router v4
  • Clean up remaining references and dependencies on vets.gov
  • Exemplar forms
  • A spike to understand refactor possibilities to accommodate a swappable architecture

Content and Documentation

  • Complete the tutorial clean-up
  • Provide documentation and examples of what is available in the forms library today, down to the element level
  • Best practices for using the forms library

Community

  • Basic repo cleanup
  • Identification of issues that contributors could possibly pick up. (i.e. Start using the “good first issue” and “help wanted” tags.)
  • Host another hackathon

Why are we working on this next?

Our primary focus is to create a usable schema-based forms library for development teams who are building new forms from scratch. While teams who have an existing form are welcome to experiment with our library to learn how they might start to leverage it, or incorporate it into their existing work, those users are not our focus in this phase of the project.

To support our goals of providing an open source solution, we also need to continue fostering a contributor community through providing them ways to interact with the core team, learn about what is happening with the project, and contribute back to the project through the submission of issues, commenting on existing issues, and potentially contributing code back to the library.

When we complete the pieces that are listed above, we will have achieved all of the goals that were laid out in our original charter and the obligations under our initial round of CAP Goal funding.

What future considerations need to be accounted for?

In the future, we may want to take on the refactor work required to create a swappable architecture that we will explore through a spike in this phase, thus allowing users to use as much or as little of the library as suits their needs. In addition, providing more guidance around the implementation of data persistence and save-in-progress functionality would be highly desirable in future iterations.

When the team at TTS releases the new version of the U.S. Web Design System, we will need to do some work to incorporate it into the forms library. This will resolve some of our existing issues around foundations and grid support.

In the work we’re taking on next, we may introduce breaking changes to vets.gov. This is a known risk, and the potential size of those breaking changes will be taken into consideration, though will not be the deciding factor, in the prioritization of the work moving forward. While we may provide some guidance around how the team at the VA might address those changes, the responsibility for making changes to the live vets.gov forms, and the prioritization of that work, lies with the team at the VA. Our adoption of semantic versioning should allow vets.gov to continue using the most recent non-breaking version of the U.S. Forms System.