Why: Airflow has been a cornerstone of data orchestration at Discover, enabling various data pipelines and powering numerous business-critical applications. However, Airflow currently does not meet script governance requirements, as defined by Capital One. Controls need to be adopted by all customers by mid-May 2026.
Scope: This story is to ensure that Airflow jobs that have not been registered in Alation within a reasonable timeframe (configurable value, initial value =48 hours) are deactivated in Production.
As an Airflow user, I want to create and test a job in Airflow, but prevent it from residing permanently in Production without Alation registration, so that I can ensure I am following proper script governance control policies.
Airflow Customer Journey:
Steps:
(Those owned by Analytic Platforms are in green)
User goes to Airflow Production UI and submits a job The user is notified that BI-Ops registration is required or deactivation will occur in X hours (configurable). This number may be different for new jobs versus jobs that are being recreated. Airflow creates the job in production User tests the job and make sure it runs as expected This job in the stage is automatically disabled after X number of days (ensuring the user has to complete their test within X days) Later, user goes to a UI (either ServiceNow or a Custom UI) User inputs the following details Existing Airflow Stage Job Id Names of the source datasets Names of the target datasets Form will trigger the pipeline Pipeline will retrieve the details of the stage job Based on the stage job details and the user inputs from the form, it will check/validate the necessary controls Error is thrown if any controls fail the check and is displayed to the user in the UI If all controls pass the check, pipeline will issue a tag to indicate the Airflow job is registered. The BI-Ops pipeline will tag the Airflow job to indicate it is registered. A Cron will run that deactivates untagged jobs after X hours. On failure, Operations will be notified to resolve the issue. An automated email will be sent to users (need to check on contact information) At what point do we delete deactivated jobs, and how are we distinguishing between those that were systematically deactivated versus those deactivated by users? The cron (or a separate cron) will be used to reactivate jobs registered after they were deactivated. Need more discussion on how it will work if the job had already been deleted. Need a story (BI Enablement team?) to work on customer communication and DTA ‘how-to’ instructions.
Dependency:
Product Owner: Khanjan Lakhani Engineering Manager / Chapter Lead: Naresh Vuppala Customer adoption (Outreach led by Business Intelligence Enablement: Esther Nadler)
Acceptance Criteria:
Airflow users must be able to continue creating and testing jobs in all environments. If the BI-Ops tool is available: During the job creation process, users will be notified that they must register jobs in Alation, after which jobs will be systematically deployed to Production. (Exact wording is TBD) If the BI-Ops tool is available: During the job creation process, users will be notified that they will have 48 hours (configurable number) to register jobs in Alation prior to job deactivation in lower environments. (Exact wording is TBD) If the BI-Ops tool is unavailable: During the job creation process, users will be notified of upcoming changes to the job deployment workflow. (Exact wording is TBD) The Airflow job deactivation timeframe must be configurable. The same value used by back end Airflow services / APIs should also be used for displaying messages on the UI. Access to make configuration changes must be limited to Airflow administrators. Airflow UI messaging, as well as changes to the workflow, must be controlled through feature toggle, given the dependency on BI-Ops tooling. Access to feature toggle must be limited to Airflow administrators. A mechanism will exist to allow the BI-Ops pipeline to tag a job in Production, indicating the job has been registered in Alation. A mechanism will exist (cron job) to deactivate jobs in Production that have not been properly tagged. Failure cases? User notification? Cleanup of deactivated jobs? Reactivation support?
1. Initiation & Awareness
3. Governance Registration
What is a user journey map?
A user journey map is a visualization of an individual’s relationships with a product/brand over time and across different channels.
While user journey maps come in all shapes and formats, commonly it’s represented as a timeline of all touchpoints between a user and a product. This timeline contains information about all channels that users use to interact with a product.
A user journey map template. Image: What design problems user journey helps us to solve?
User journey map is an excellent tool for UX designers because
"It visualizes how a user interacts with a product and allows designers to see a product from a user’s point of view."
This fosters a more user-centric approach to product design, which ultimately leads to better user experience.
User journey map helps a product team to find the answer to the “What if..?” questions. Also, a user journey map can be helpful when the company tracks quantitative KPIs. In this case, a user journey map has an opportunity to become a cornerstone for strategic recommendations.
The 8-steps user journey mapping process
Before creating a user journey map, it’s important to review the goals of your business/service. This knowledge will help you align business and user goals.
1. Choose a scope
The scope of the user journey map can vary from the high-level map which shows end-to-end experience to a more detailed map that focuses on one particular interaction (for instance, paying a bill).
2. Create a user persona
Who is your user?
A user journey map is always focused on the experience of one main actor — a user persona who experiences the journey.
User persona should always be created based on information you have about your target audience. That’s why always start with user research. Having solid information about your users will prevent you from making false assumptions.
Gather and analyze all available information about your target audience:
Interview your real or potential users Conduct contextual inquiry Analyze the results of user surveys 3. Define scenario and user expectations
The scenario describes the situation that the journey map addresses. It can be real or anticipated.
It’s also important to define what expectations a user persona has about the interaction.
For example, a scenario can be — ordering a taxi using a mobile app with expectations to get the car in 5 minutes or less.
4. Create a list of touchpoints
Touchpoints are user actions and interactions with the product/business. It’s vital to identify all main touchpoints and all channels associated with each touchpoint.
For example, for touchpoint ‘Buy a gift,’ channels can be — purchase online or buy in a store.
5. Take user intention into account
What motivates your user to interact with your product?
What problem are users looking to solve when they decide to use your product? Different user segments will have different reasons.
Let’s take an e-commerce website. There is a big difference between a user who is just looking around and a user who wants to accomplish a specific task (purchase a particular product).
For each user journey it’s vital to understand:
Motivation. Why are they trying to do it? Channels. Where interaction takes place Actions. The actual behaviors and steps taken by users. Pain points. What are the challenges users are facing? Tip: Ensure that the user is getting a consistent experience across all channels.
6. Sketch the journey
Put together all the information you have and sketch a journey in a format of step-by-step interaction. Each step demonstrates an experience that the persona has with a service/product or another person.
Here are that can be helpful during user journey mapping: Tip: A tool called storyboard can help you show how users can interact with a product. Using storyboard, you can show visually what happens during each step.
A storyboard can help you build a strong, clear narrative. Image credit: Chelsea Hostetter, Austin Center for Design
7. Consider a user’s emotional state during each step of interaction
What does a user feel when interacting with your product?
Products we design need to mirror the state of mind of our users. When we consider a user’s emotional state, this knowledge will help us to connect with users on a human level. That’s why it’s important to add an emotional lane to the user journey map. By visualizing the emotional “ups” and “downs” of the experience you’ll show the areas of experience that require refinement.
Tip: Create an empathy map to better understand how the user feels.
8. Validate and refine user journey
Journey maps should result in truthful narratives, not fairy tales. Even when a user journey is based on user research, it’s vital to validate it. Use the information from usability testing sessions and app analytics to be sure that your journey resembles a real use case.
Gather and analyze information about your users on a regular basis. For example, user feedback is something that can be used to improve your understanding of the user journey.
Conclusion
It’s important to remember that the goal of creating a user journey map is to create a shared vision. That’s why once a user journey map is created, share it with your peers. Make it possible for everyone in your team to look at the entire experience from the user’s standpoint and user this information while crafting a product.