curled_page.BqaQ6pQe.svg calendar_spiral.C44hQYcV.svg pen.I1TmZYgo.svg

IRS.gov -> Forms

An addition to IRS.gov, this project resulted in the build-out of an integrated, embedded forms system on the site for civilian users. Users may log in, access fillable PDF forms relevant to their IRS needs, and print or submit them online without the need for printing, filling by hand, and mailing.

Goals

  1. Deliver the fully functioning forms interface, minus the forms themselves as these were provided by a 3rd-party.
  2. Design a novel webpage congruent with IRS.gov design style and standards.
  3. Test-driven development from start to finish with an always-minimum code coverage of 80% or more.

Technologies

  • React logoReact 17
  • Java logoJava
  • redux logoRedux
  • Jenkins logoJenkins CI/CD
  • Jest unit testing logoJest
  • Storybook logoStorybook

UX Flow

  1. User logs in via IRS.gov "ID.ME" system.
  2. Navigate to /forms tab.
  3. Optionally search, then select a form. These are already filtered via backend processes, as some users have open cases requiring certain forms.
  4. User fills out form, and either saves a copy to their device or submits directly to the IRS.

Details

(Details are limited due to disclosure agreements.)

IRS.gov forms is additional React development on top of the existing site, and is built with standard React kit, including Jest unit testing and Redux state management. Some novel approaches were taken with this build-out, but the primary objective was building cleanly and securely.

A highlight of this project is that it was truly and fully agile. Our dedicated scrum master maintained regular standup, retrospective, and story point poker meetings.
As a result, project development was rapid, smooth, and team members were able to work according to their strengths, and tactically focus on weak points throughout the project.

Challenges

Frontend-inexperienced Junior Developers

A big feature of this project was that all of the frontend team, save myself and a project manager, were completely new to React and most frontend development. They were all junior Java developers, recently hired, and part of my job as a senior engineer was to teach them as we designed and built out the app.

Fortunately team organization was extremely competent, so sprints were planned with this kind of inevitable slowdown in mind. And ultimately I was given ample opportunity to review code, and meet with junior devs in person to discuss strategies, mistakes, etc.

Federal Design Standards

As a federal site, design requirements for appearance, function, and especially accessibility were extremely strict, but also well-expressed. As a team, we addressed these from day one by adhering to a consistent unit test methodology, and regular developer check-ins to ensure consistent standards throughout the sprints.

Accessibility was a particular thorn for the newer junior developers. Adding the nuance of aria-attributes atop general frontend methodology is a pretty heavy load all at once.