Job To Be Done & Job Map
[[[dblineage] Gathering User Data]]
JTBD: Bridge the knowledge gap between business users and team data
- When I’m a data engineer work with business users to build a ETL pipeline
- I want to close the gap for business users who need to understand the fine-grained logic within those transformations.
- They’re left wondering, “Okay, I see this column came from that column or that table, but how was it calculated? If so, can I trust?”
- So that I and data team can brainstorm, design, discuss, and align on the same business logic
Job Map
- Who: BA/PO/PM (business side) working with data engineers/analysts
- Why: Align on business logic so designs, models, and outputs reflect the real business
- Where it lives: PRs, documents with lightweight, embeddable data lineage
- Steps
- Define
logseq.order-list-type:: number
- Goal: Agree on the job, outcomes, scope, and “value signals” logseq.order-list-type:: number
- Actions: Draft the core job statement, users, triggers, desired outcomes, constraints logseq.order-list-type:: number
- Artifacts: Document (problem, success metrics, non-goals) logseq.order-list-type:: number
- Outcomes are measurable and business-tied (not “build X tool”) logseq.order-list-type:: number
- Locate (input/source)
logseq.order-list-type:: number
- Goal: Identify data, policies, and decisions need making logseq.order-list-type:: number
- Actions: Metrics, tables, dbt models, events, and owners; note gaps logseq.order-list-type:: number
- Artifacts: Source register (tables/models/files), domain glossary, policy links logseq.order-list-type:: number
- Prepare
logseq.order-list-type:: number
- Goal: Set up a shared frame for collaboration logseq.order-list-type:: number
- Actions: Metric definitions, acceptance criteria, review cadence logseq.order-list-type:: number
- Artifacts: “Definition of Done” for metrics, wireframes for deliverables (dashboards or datasets) logseq.order-list-type:: number
- Confirm (readiness/alignment)
logseq.order-list-type:: number
- Goal: Business users and data team validate understanding before building logseq.order-list-type:: number
- Actions: Check data availability + Run a quick alignment session, walk the logic with examples and edge cases logseq.order-list-type:: number
- Artifacts: Reviewed examples (“before/after” calculations), risk list (quality, latency, privacy) logseq.order-list-type:: number
- Execute (co-design/build) logseq.order-list-type:: number
- Monitor (feedback) logseq.order-list-type:: number
- Modify (refine) logseq.order-list-type:: number
- Conclude logseq.order-list-type:: number
- Define
logseq.order-list-type:: number
Market Research
- Open-source data catalog tools (openmetadata, datahub)
User Interview
- Tuan (Data Engineer at Cake)
- At Cake there’re 3 places to view data lineage
- Airflow 2
- dbt docs
- Datahub (he uses this mainly)
- Main use case: view data catalog and data lineage
- Use cases
Whenever a data member request code review, he views the code changes
- => imagine the data lineage in his mind to understand the changes
When DE and DA teams want to announce the important changes, they share a document about the high-level business logic, usually draw using excalidraw/drawio, not at detail at dbt flow
- If teammate wants to view the details, they should go to the PR
- ((6912a103-f464-4701-b570-b5fbd49810fd))
- If teammate wants to view the details, they should go to the PR
Some roles in the company: PO/Business User/DE
- PO is the coordinator between DE team and Business User, he represents users to request data from DE team
- Usually share a document and do sync communication (Cake’s culture), draw diagrams using free tools like excalidraw/drawio to illustrate the logic flow
- At Cake there’re 3 places to view data lineage
- Tuan (Data Engineer at Cake)
Assumptions
- Users often do documentation
- Mainly use dbt/table-based for data transformation
Other Use Cases
- In database users have tables and views, where views are depended on tables => users need some kind of dependency notation from tables -> views
Notes from Patrick
- Biến việc đi kiếm input thành 1 phần solution luôn
- Map the entire Job Map, a strong product can solve more than 1 core job in the job map
- Mapping the job map helps identify potential use cases that also can be used by users
References
Archive
- https://stackoverflow.com/questions/78200908/create-dynamic-yml-creation-in-dbtbigquery
- Similar to dbt2dbml: https://github.com/neo-andrew-moss/erdgen
- Lineage parsing from SQL (python library): https://github.com/reata/sqllineage
Personal feedback
1. Learning points
- Đợt này thì trong team em làm role giống PM, có cơ hội được ứng dụng kiến thức PM vào thực tế
- Trước khi bắt tay vào làm idea của em là định build cái app hầm hố lắm, sau khi ngồi phân tích lại & brainstorm thì thật ra cái solution đơn giản và giải quyết được cái vấn đề cốt lõi hơn nhiều
- Cùng một cái job map nhưng khi mình chọn cách tiếp cận ở đoạn nào khiến cho solution nó thay đổi rất nhiều
- Em học được là trong problem space lúc mình vẽ ra nó rộng thế đấy nhưng thời gian có hạn nên mình phải biết chọn và ưu tiên cái quan trọng và value nhất để làm
- Cái em học được nhiều nhất là communication. Em là đứa trước đây rất kín tiếng, qua giải này em mới nhận ra tầm quan trọng của communication tốt nó mang lại ROI lớn như nào
- Học được vài thứ: phải articulate rõ ràng problem từ đầu tới cuối, giao tiếp với teammate, trình bày slides để sale cái solution của mình
- Sau đợt này em gain thêm kinh nghiệm về product, management, communication
- 3 judges mỗi người nói một ý, mình phải biết chắt lọc thông tin
2. Feelings
- Giải này em hơi competitive nên có overwork nhiều, sau tuần đó em ốm luôn :hang: nhưng không thấy hối hận vì solution của mình được đánh giá khá cao
- Cảm xúc chung là vừa excited vừa nervous
3. Teamwork
- Cảm ơn teammate đã ngồi nói chuyện với em 2/4 ngày. 2 ngày đó chỉ only nói chuyện. Nhưng giúp em hiểu sâu problem và ngộ ra rất nhiều learning point mà có khi em còn không nghĩ tới
- Cho em cơ hội được làm việc với những người mà chắc em sẽ không bao giờ làm việc được chung vì role và lầu khác nhau
- Có thêm những người bạn mới
4. Organizing
- Nóng
- Lúc Vincent đặt câu hỏi loa bị rè rè làm em không nghe được