department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
281 stars 196 forks source link

Improve Preview Environments for VA.gov Products #46783

Open andreahewitt-odd opened 1 year ago

andreahewitt-odd commented 1 year ago

Problem Statement

The current approach to review instances has limitations that cause frustration for VFS teams and VA stakeholders in their efforts to test and preview their products. Examples of those limitations include the required use of SOCKS proxy which involves a level of technical fluency in its setup and use that most non-developers don’t possess, it also limits the tooling that can be used to conduct QA in review instances. Other limitations include that review instances are available for a limited window of time, they cannot be used to test on real mobile devices, and the developer workflow for preview of products that require combinations of multiple repositories is difficult. Additionally, review instances can only point to preprod/Staging environment so they cannot easily be configured to test against lower environments or synthetic data. Finally, better documentation and training on how to use review instances properly and fully would improve the experience.

How might we make it easier for VFS teams and VA stakeholders to preview their features before it makes it to production (especially as we move to a model of continuous deployment)?

User Impact

VFS Teams without SOCKS or the technical knowledge to use SOCKS: Can't use review instances VA Stakeholders without SOCKS or the technical knowledge to use SOCKS: Can't use review instances VFS engineers: Workflow for creation of Review Instances using branches from multiple repos is difficult, can't test with RI on non-GFE devices such as mobile, difficult to match Production data leads to a lack of confidence in the code

Where was this problem reported?

This problem has been reported everywhere (support requests, research, satisfaction survey). It's a common theme in the satisfaction survey quarter to quarter.

What do we not know about the problem space?

What (if any) research or discovery has been done?

Satisfaction survey quarter to quarter VFS team's testing experience study - findings Q3 2022 VFS team's testing experience study - synthesis board Q3 2022

Important Project Links

What is the acceptance criteria?

Technical Requirements

Not included in the AC

*Note: may be affected by "Is there a network path that allows off-network (non-SOCKS) access while also connecting to preprod external integrations?"

How should we measure success?

TODOs

mchelen-gov commented 1 year ago

Let's scope this to creation of preview environments. Preview environments should allow:

JoeTice commented 1 year ago

A few questions...

andreahewitt-odd commented 1 year ago

Does this only involve manual testing or automated testing too? Does this also include tooling to make automated tests? Potentially both

andreahewitt-odd commented 1 year ago

Are we conflating QA with review?

andreahewitt-odd commented 1 year ago

VFS teams aren't comfortable doing testing in a lower environment because they don't have the same data in dev and review instances.

andreahewitt-odd commented 1 year ago

We need to change the context to reviewing and testing in review instances -- what do we need to do for that piece to be effective. Getting data and information that is closely aligned to prod, easy access for anyone on the team.

mchelen-gov commented 1 year ago

How well do we understand the problem?

andreahewitt-odd commented 1 year ago

QA health survey -- success metrics could be a portion of that so we can compare.

andreahewitt-odd commented 1 year ago

Change to: Increase in usage of review instances

andreahewitt-odd commented 1 year ago

Measurements of success might be affected by implementation details.

andreahewitt-odd commented 1 year ago

track usage in staging review - how often can we use these revised review instances

andreahewitt-odd commented 1 year ago

General bugginess of spinning up review instances -- will be dependent on implementation details.

mchelen-gov commented 1 year ago

^ success metric: error rate and reliability of preview environments

mchelen-gov commented 1 year ago
  • Configuration of environment settings such as environment variables For MVP, can be accomplished by allowing developer terminal access.

  • Mocks for external services and data can be configured For MVP, can be accomplished with existing developer tooling if we are able to connect to Staging/Preprod external services

mchelen-gov commented 1 year ago

@JoeTice

A few questions...

  • The problem statement mentions 'there has been concern raised and incidents occurring due to environment promotion and the ability to reliably test' - can you expand on the concerns and incidents that are being referred to here?

The example I am aware of is code being deployed to Staging for testing purposes, which was inadvertently released to Production

  • Are there other specific 'areas of focus' that stand out to you as areas that could or should be considered as areas to improve, either in the near term or long term?

Next steps for this project might be to build out more ready to use mocks for external services.

  • In 'What is the acceptance criteria?' - Is access to previewing code in review instances limited in any way?

Updated AC.

  • In 'Not included in the AC' - Can you expand on what you mean on 'promotion of code throughout requirements'? And on why you don't think tht should be part of the acceptance criteria for this?

I'm not clear on this, so it has been removed from AC.

  • In the additional comments from @mchelen-gov

    • The comment calls out vets-website & vets-api - do we want to call out selected versions from other repositories?

This should include all repos necessary to build a working VA.gov, likely that will involve content-build and some others.

  • Is there a reason that you want to scope this only to the creation of preview environments?

Yes, because this specific piece of tooling is the farthest "left" in the development and QA process.

  • Can you provide some specific examples or use cases around the configuration of environment settings?

No, so I changed the AC to allow developer terminal access.

mchelen-gov commented 1 year ago

@andreahewitt-odd

they cannot preview products that require combinations of multiple repositories.

This can be done, however it is a more complex workflow: https://depo-platform-documentation.scrollhelp.site/developer-docs/using-review-instances-to-preview-changes#Usingreviewinstancestopreviewchanges-Manualcreation

Additionally, review instances don’t update when pushes are made to PRs and rely on mocked data/services so are not as useful as they could be.

This is incorrect, RI are redeployed on pushes and are pointed to Staging/Preprod environments per docs.

Updated issue to reflect this.

andreahewitt-odd commented 1 year ago

@JoeTice @pjhill See Chelen's comments per your information around the problem statement ^

annekerr49 commented 1 year ago

@pjhill please can you give us a status update on this item?

pjhill commented 1 year ago

@pjhill please can you give us a status update on this item?

@annekerr49 -- This project is currently in the discovery phase. Currently, the team is addressing tickets in the Discovery Epic. Individual ticket statuses within that epic are available here.

JoeTice commented 1 year ago

previewenvironments_20230103.png

JoeTice commented 1 year ago

Link to a documented plan in mural developed in Nov of 2022 that lays out the planned scope of MVP - mural link

JoeTice commented 1 year ago

Team of Teams Slide: 4/11/23

image.png

JoeTice commented 1 year ago

Update: 4/18/23 image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

annekerr49 commented 1 year ago

No match for roadmap-DMC

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

JoeTice commented 1 year ago

image.png

EricaRobbins commented 7 months ago

@JoeTice / @andreahewitt-odd - did this ship yet? If not, do you have a new Target Delivery Date?

JoeTice commented 6 months ago

Not yet, our next target milestone is April 2024, which will be the version that is made available for Usability Testing. The target delivery date will be based on what is surfaced in testing.

AparnaNittalaUSDS commented 3 months ago

Updated the target delivery date to Nov 30, 2024 based on the Milestone 4 (final testing for publicly accessible preview environment).

annekerr49 commented 3 weeks ago

With Aparna leaving are we still on track to complete this effort in November?