Skip to content
Frank Duncan edited this page Sep 16, 2020 · 58 revisions

High-Level Plan of Work

  • May 11 - May 25: Improve test coverage. This serves two purposes: it makes future changes less risky (because that's what increased test coverage does), and it also helps us learn all corners of the code base.

  • May 26 - appx June 5: Complete Rails upgrade (#126), as prerequisite for just about everything else we are doing.

  • June 6 - June 10: Update entity names and relationships throughout the application (#185).

  • Get spreadsheets from Jim so we can convert them to scripts.

  • June 17: Completion of (#185)

  • June 18 - August 1: Do everything else in the FY20 change list. The order of events in this phase will be determined based on what we've learned from the previous steps; watch this space for more.

  • August 1-15: Adjustments based on regional testing of staging site.

  • August 15: Put realigned DCSOps into production.

  • August 15 - September 1: Post-deployment adjustments.

All dates are in 2020; all dates are estimates. See the Meeting Notes page for a detailed look at status and progress.

Detailed Schedule for Home Stretch

  • July 3: Create new scopes and regions.

    Jim will create the new scopes and regions in DCSOps, that is, create the slots into which new information will go. We know that Some of these will still need to get updated after they're created -- e.g., to configure a new Twilio number, which timeline entries are mandatory and which are not, etc -- based on information Jim is continually collecting from regions.

  • July 6: Inform regions of upcoming VC interregnum.

    Jim will inform the regions that next week we will be turning off the connection to VC for a minimum of two weeks. Anything they need to get into DCSOps, they need to do it before July 13th.

  • July 8: Completion of new (realigned) region data.

    By this time, Frank should have received all spreadsheet(s) from Jim.

    Jim is going to give Frank each spreadsheet as it is completed, by attaching them to a new issue that Jim will create (#255).

    Frank will version them in an etl/data/ subdirectory in the repository, and version related ETL scripts in etl/. We'll remove all that after the realignment is done, but we still want it all to be versioned and in the repository history.

  • July 10: Completion of admin console review.

    By now, Jim will have gone through the admin console and identified on a menu-item-by-menu-item basis which items will get deleted, and which items will be maintained and/or modified. This is everything: MOTD, home page links, dispatch configurations, etc.

  • July 10: Start using new VC data import query.

    The new unified VC query tool will be in place and will be used by DCSOps Staging to transfer data from VC Prod to DCSOps Staging. (Note that VC itself is not yet realigned at this point; we're just making sure the new query format works. It should continue to work after VC is realigned, naturally.)

  • appx July 10: Get feedback from staging site.

    Jim and regional contacts to test current DCSOps staging site and send in feedback.

  • July 13: Disconnect DCSOps Prod from VC Prod.

    DCSOps Production stops importing data from Volunteer Connection (Prod) today, after doing this morning's import.

  • July 14th: Connect DCSOps Staging to VC Prod.

    Connect DCSOps Staging to VC Production.

  • July 15 - August 15: Region-by-region realignment and testing.

    As each realigned region appears (in realigned form) in VC Prod, it'll show up, after a day or two of buffer time, in DCSOps Staging. Once it does, Jim will then contact the appropriate regional admin contact and ask them to test DCSOps Staging.

    (Frank will be refreshing DCSOps Staging manually as needed, most likely every morning.)

    Jim will be the conduit for any configuration changes the regional admins need to request. This is because it won't work for them to make such change in DCSOps Staging (there is no staging->prod data flow for DCSOps). So instead, Jim will pass those requests on to Frank, and Frank will make sure to script them up so they appear in DCSOps Prod once we go live with realigned DCSOps Production.

  • August 15: Put realigned DCSops into production.

    Push fully-realigned-and-tested DCSOps to Production, and have DCSOps Prod resume importing data from VC Prod.

  • August 15 - September 1: Handle everything reported from the regions.

    Realigned DCSOps will need lots of testing and updating. In practice, this will likely extend beyond Sep. 1.

  • Work that will happen at some point during the above schedule.

    Frank notes that VC is going to change how they export and what data they export, and Frank will make the necessary adjustements in DCSOps to handle that. We just can't say yet exactly when that work will happen, because it depends on when VC completes their query tool report.

Summary of "One Red Cross" geographic changes affecting DCSOps

  • Cascades:

    • Cedes three counties (Baker, Union, Wallowa) to the Idaho-Montana Region
    • New regional name: "Oregon"
  • Idaho-Montana:

    • Acquires three counties (Baker, Union, Wallowa) from the Cascades Region
    • Cedes two counties (Asotin, Garfield) to the Northwest (Washington) Region
    • Joins to the Pacific Division
  • Gold Country:

    • Acquires four counties (Del Norte, Humboldt, Lake, Mendocino) from the Northern California Coastal Region
    • Cedes two counties (San Joaquin, Stanislaus) to the Northern California Coastal Region
    • New regional name: "Northern California"
  • Northern California Coastal:

    • Acquires two counties (San Joaquin, Stanislaus) from the Gold Country Region
    • Acquires one county (Merced) from the Central California Region
    • Cedes four counties (Del Norte, Humboldt, Lake, Mendocino) to the Gold Country Region
    • New regional name: "California Coastal"
  • Dakotas:

    • Merges with the Minnesota Region
    • New regional name: "Minnesota-Dakotas"
  • Minnesota:

    • Merges with the Dakotas Region
    • Acquires one Minnesota county (Houston) from the Wisconsin Region
    • New regional name: "Minnesota-Dakotas"
  • Kansas, Nebraska & SW Iowa:

    • Kansas and Nebraska & SW Iowa split
    • Kansas merges with the Oklahoma Region and joins the Southwest and Rocky Mountain Division.
    • Nebraska & SW Iowa merges with the Iowa Region
    • Kansas and Nebraska & SW Iowa continue to use DCSOps independently of each other.
    • New regional names: "Nebraska-Iowa" and "Kansas-Oklahoma"
  • Chicago & Northern Illinois:

    • Merges with the Central & Southern Illinois Region
    • Cedes one county (Jo Daviess) to the Iowa Region
    • New regional name: "Illinois"
  • Central & Southern Illinois:

    • Merges with the Central & Southern Illinois Region
    • Acquires two counties (Lee, Van Buren) from the Iowa Region
    • Cedes five counties (Hardin, Johnson, Massac, Pope, Pulaski) to the Kentucky Region and seven counties (Edwards, Galatin, Lawrence, Saline, Wabash, Wayne, White) to the Indiana Region
    • New regional name: "Illinois"
  • Greater New York:

    • Cedes counties to the Northeast New York Region
    • Dispatches for New Jersey and Eastern New York
  • New Jersey:

    • Becomes a DCSOps user with incidents dispatched by Greater New York.

FY 20 change list

System

  • Coordinate with the Red Cross Volunteer Connection team to import data from Volunteer Connection via a new single data export.

    Status: In Production

    (#215, #138)

    (est: large)

  • Change entity names throughout application to align with Red Cross nomenclature. For example: "Chapter" -> "Region"; "Counties"+"Territories" -> "Response Areas"; "Roles" -> "Capabilities"; etc.

    Status: In Production

    (#185)

    (est: large)

Configuration

  • Create new Regions.

    Status: In Production

    (est: medium)

  • Automate the adjustment of positions, roles, shifts, etc (batch operation based on spreadsheet input received from Red Cross):

    Status: In Production

    (#255)

    (est: medium)

    • Create new Response Areas for all Regions
    • Great new Positions for all Regions
    • Assign new Roles to all Positions
    • Create new Shift (Time) Groups for all Regions
    • Create new Shifts for all Regions
    • Create new Notifications for all Regions

Administrative Console

  • Changes to the administrative user interface to accommodate the adjustments listed above.

    (est: No estimate because already accounted for in above work.)

Incidents

  • Create and display new regional boundaries maps.

    Status: In Production

    (#253)

    (est: small)

    (Note: Map boundaries were maintained in a Google Fusion table, and all we did was go and reference that table. We can just get those boundaries from our own team, exported from ARC-GIS, and display them. The only reason boundaries went away in the first place is that the Google Fusion table went away.)

  • For "Recent Incidents", display the street name between the city and incident number.

    Status: In Production

    (#143, #208)

    (est: tiny)

  • After clicking "Submit Incident Report", bypass the "Currently Open Incidents" page and go directly to the "Create Incident" page.

    Status: In Production

    (#198, #209)

    (est: small)

  • Paginate the "Currently Open Incidents" page

    Status: In Production

    (#223)

    (est: small)

  • Create a link to access the "Currently Open Incidents" page (see below).

    Status: In Production (Note: Was done as part of #198 bove)

    (#199)

    (est: tiny)

  • Fix the "Current Activity..." link.

    Status: In Production

    (#224)

    (est: tiny)

    (incidents/CHAPTER_SHORTNAME/incident/activity)

  • Change "Submit Incident Report" button to "Submit Incident Report: Manually". (That's the unscripted version.)

    Status: In Production

    Add "Submit Incident Report: Dispatch Console" button.

    (That's the scripted version.)

    (#225)

    (est: tiny)

  • Create a way for closing open incident reports listed on the "Currently Open Incidents" page without having to complete all mandatory fields.

    Status: In Production

    (#201)

    (est: medium)

    (incidents/CHAPTER_SHORTNAME/incident/needs_reports)

  • Allow up to 20 flex responders to be listed on the responder console.

    Status: In Production

    (#128)

    (est: tiny)

  • Permit resending of recruitment messages from the Responder Console and individual messaging to unassigned responders.

    Status: In Production

    (#140)

    (est: medium)

  • In the Responder Console, increase the size of the Recruitment message window so that the full message can be seen and edited.

    Status: In Production

    (#141)

    (est: tiny)

Dispatch Console

  • Change the "NorCen Dispatch Console" homepage link so that users bypass the "NorCen Dispatch DAT Incidents" and "Disaster Dispatch/New Incident" page and land on the "Dispatch New Incident" page where they can immediately start creating a new incident.

    Status: In Production

    (#209)

    (est: small)

  • On the "Disaster Dispatch" page accessed via clicking the "NorCen Dispatch Console" homepage button and then the "Dispatch Console" button, create a way to de-list or close the incidents listed under the "Dispatching Incidents" heading.

    Status: In Production

    (#211)

    (est: large)

  • On the page presented after a new incident is created using the "NorCen Dispatch Console", modify text.

    Status: In Production

    (#212)

    (est: tiny)

Third-Party Call Centers

DirectLine is a third-party call center currently dispatching incidents for the Cascades, Gold Country and Northern California Coastal Regions.

  • Add the Idaho-Montana and Minnesota-Dakotas Regions to DirectLine.

    Status: No longer valid

    (est: tiny)

  • Ensure compatibility between DCSOps and DirectLine systems for all using Regions: 1. DCSOps schedule exports; 2. DirectLine-triggered incident report creation and notifications.

    Status: Verified in Production

    This isn't a development project, but rather validate that everything is operating correctly in production after everything is pushed.

    (est: small)

FY 21 change list

System

  • Update Rails to to the latest viable version.

    Status: Mostly done; awaiting merge cleanup

    (#126, and see also #157)

    (est: large)

  • Update third-party upstream open source code dependencies (e.g., Bootstrap, Font Awesome) to the latest viable version, both for behavioral reasons and to strengthen the application's security profile.

    (est: medium)

  • Move application code to the redcross/dcsops repository on GitHub.

    (est: small)

Incidents

  • Create a "Response Status" field separate from "Incident Types". (Not related to the Heroku upgrade, but should be included in this phase of work because it is causing issues in the system today.)

    Status: In Production

    (#205)

    (est: medium)

System

  • Change the transactional e-mail provider from Postmark to SendGrid.

    Status: Because this involves a third party dependency, will wait until after #126 (above) is merged

    (#213)

    (est: small)

Contact Info

  • On the "Contact Info" button, add the phrase "Text messaging not enabled" to encourage volunteers to set their mobile phone preferences.

    Status: In Production

    (#189)

    (est: small)

  • Move "Contact Settings" up under "Contact Info" to increase visibility.

    Status: In Production

    (#190)

    (est: tiny)

  • Change wording of "Contact Settings" message.

    Status: In Production

    (#191)

    (est: tiny)

DAT Scheduling

  • Add a "Shift Notes" link (https://www.dcsops.org/scheduler/shift_notes) to the "DAT Scheduling" page.

    This got scoped increased to including a popup on the responder console to display current shift notes if there are any to display. So technically the estimation moved to "small," but it was worth it for the functionality improvement.

    Status: In Production

    (#207)

    (est: tiny)

  • DAT Scheduling (main page)

    • Update "Welcome" language.

      Status: In Production

      (#186)

      (est: tiny)

    • Remove Spreadsheet links.

      This definition changed to be removing the grid, and renaming "Spreadsheet." And by removing grid, we mean ripping it out of the codebase.

      Status: In Production

      (#187)

      (est: tiny)

    • Fix malfunctioning "Show Roster" hyperlink.

      Status: In Production

      (#148)

      (est: medium)

    • Next to "Current On-Call Team", enlarge the "See all" link to the size of the adjacent text and make boldface.

      Status: In Production

      (#192)

      (est: tiny)

    • On the page accessed by clicking on the "See all" link, delete "On Call Schedule", the days, months, dates and time block.

      Status: In Production

      (#193)

      (est: tiny)

    • Under "Current On-Call Team", delete the days, months, dates and time blocks.

      Status: In Production

      (#194)

      (est: tiny)

    • Move "Available Shift Swaps", up under "Your flex availability".

      Status: In Production

      (#195)

      (est: tiny)

    • Move "Your Recent Responses" up under "Available Shift Swaps".

      Status: In Production

      (#196)

      (est: tiny)

Incidents

  • In Incident Details, make changes to the "Damage Assessment" section to reflect the Red Cross' current Direct Client Assistance (DCA) model.

    Status: Invalid, Issue closed

    Sigh. See Jim and Frank's meeting about this. Much of this work is now obsolete because Red Cross is moving away from the DCA and back toward the older model, albeit with some changes that we can easily incorporate. See branch 173-damage-assessment, though note that much of what's on that branch will now never be deployed.

    (#173)

    (est: medium)

  • For attachments, increase the file size capacity.

    Status: In Production

    (#204)

    (est: small)

Administrative Console

  • Calculate time spent responding for each responder and export the result to Volunteer Connection.

    (#215)

    (est: No estimate, because this work will probably just be done as part of issue #215, as described in the FY20 SOW.)

Incidents

  • In the incident Timeline, increase the font size of entry labels and the space between entries to improve readability.

    Status: In Production

    (#203)

    (est: tiny)

Extra change list

These changes aren't part of the original statement of work, but we're including them here to help track them.

Admin

  • On admin MOTD, use "All Regions" (instead of blank) for global message.

    (#254)

    Status: In Production

    (est: tiny)

DAT Scheduling

  • Output json for /scheduler/on_call

    This may change to a more substantial project (medium sized), rather than what's listed in the issue, which would be small.

    (#257)

    (est: small - medium)

Incidents

  • Hide ‘Team Lead Trainee’ from the Response* pop-up menu, and change Dispatch name

    Status: In Production

    (#261)

    (est: tiny)