-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add learning center to docs (#10921)
- Loading branch information
1 parent
8266b02
commit 8124ecf
Showing
15 changed files
with
745 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 30 additions & 0 deletions
30
docs-website/src/learn/_components/LearnItemCard/index.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import React from "react"; | ||
import clsx from "clsx"; | ||
import Link from "@docusaurus/Link"; | ||
import { useBlogPost } from "@docusaurus/theme-common/internal"; | ||
import styles from "./styles.module.scss"; | ||
|
||
export default function LearnItemCard() { | ||
const { metadata } = useBlogPost(); | ||
const { permalink, title, description, formattedDate, frontMatter } = metadata; | ||
return ( | ||
<div className={clsx("col col--4", styles.featureCol)}> | ||
<Link to={permalink} className={clsx("card", styles.card)}> | ||
{frontMatter?.image ? ( | ||
<div className={styles.card_image}> | ||
<img src={frontMatter?.image} alt={title} /> | ||
</div> | ||
) : ( | ||
<div className={clsx("card__header", styles.featureHeader)}> | ||
<h2>{title}</h2> | ||
</div> | ||
)} | ||
<div className={clsx("card__body", styles.featureBody)}> | ||
<div>{description}</div> | ||
</div> | ||
|
||
<div className={clsx(styles.card_date)}>Published on {formattedDate}</div> | ||
</Link> | ||
</div> | ||
); | ||
} |
53 changes: 53 additions & 0 deletions
53
docs-website/src/learn/_components/LearnItemCard/styles.module.scss
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
.featureCol { | ||
display: flex; | ||
} | ||
|
||
.card_date { | ||
padding: 1rem 2rem; | ||
font-size: 0.8rem; | ||
font-style: italic; | ||
color: gray; | ||
margin-top: auto; | ||
} | ||
|
||
.card_feature { | ||
font-size: 2rem; | ||
font-weight: 700; | ||
} | ||
|
||
.card { | ||
color: var(--ifm-text-color); | ||
text-decoration: none !important; | ||
padding: 0rem; | ||
margin-bottom: 2rem; | ||
align-self: stretch; | ||
flex-grow: 1; | ||
&:hover { | ||
border-color: var(--ifm-color-primary); | ||
} | ||
hr { | ||
margin: 0; | ||
} | ||
} | ||
|
||
.featureHeader { | ||
h2 { | ||
margin-bottom: 1rem !important; | ||
font-size: 1.25rem; | ||
} | ||
padding: 1rem 2rem; | ||
} | ||
|
||
.featureBody { | ||
padding: 0 2rem; | ||
} | ||
|
||
.card_image { | ||
margin: 0; | ||
margin-bottom: 0.5rem; | ||
|
||
img { | ||
width: 100%; | ||
height: auto; | ||
} | ||
} |
91 changes: 91 additions & 0 deletions
91
docs-website/src/learn/_components/LearnListPage/index.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
import React, { useState } from "react"; | ||
import clsx from "clsx"; | ||
|
||
import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; | ||
import { PageMetadata, HtmlClassNameProvider, ThemeClassNames } from "@docusaurus/theme-common"; | ||
import BlogListPaginator from "@theme/BlogListPaginator"; | ||
import SearchMetadata from "@theme/SearchMetadata"; | ||
import { BlogPostProvider } from "@docusaurus/theme-common/internal"; | ||
import LearnItemCard from "../LearnItemCard"; | ||
import Layout from "@theme/Layout"; | ||
import styles from "./styles.module.scss"; | ||
|
||
function BlogListPageMetadata(props) { | ||
const { metadata } = props; | ||
const { | ||
siteConfig: { title: siteTitle }, | ||
} = useDocusaurusContext(); | ||
const { blogDescription, blogTitle, permalink } = metadata; | ||
const isBlogOnlyMode = permalink === "/"; | ||
const title = isBlogOnlyMode ? siteTitle : blogTitle; | ||
return ( | ||
<> | ||
<PageMetadata title={title} description={blogDescription} /> | ||
<SearchMetadata tag="blog_posts_list" /> | ||
</> | ||
); | ||
} | ||
|
||
function BlogListPageContent(props) { | ||
const { metadata, items } = props; | ||
const [activeFilters, setActiveFilters] = useState([]); | ||
// These are currently hardcoded, check the frontmatter of the blog posts to see what audiences are available | ||
const audiences = ["Data Governance Leads", "Data Engineers", "Data Architects", "Data Platform Leads", "Data Analysts"]; | ||
|
||
const filteredItems = activeFilters?.length | ||
? (items || []).filter((post) => activeFilters.some((activeFilter) => post?.content?.frontMatter?.audience?.some((a) => a === activeFilter))) | ||
: items; | ||
|
||
const handleFilterToggle = (audience) => { | ||
if (activeFilters.includes(audience)) { | ||
setActiveFilters(activeFilters.filter((filter) => filter !== audience)); | ||
} else { | ||
setActiveFilters([...new Set([...activeFilters, audience])]); | ||
} | ||
}; | ||
|
||
return ( | ||
<Layout> | ||
<header className={"hero"}> | ||
<div className="container"> | ||
<div className="hero__content"> | ||
<div> | ||
<h1 className="hero__title">DataHub Learn</h1> | ||
<p className="hero__subtitle">Learn about the hot topics in the data ecosystem and how DataHub can help you with your data journey.</p> | ||
</div> | ||
</div> | ||
<div className={styles.filterBar}> | ||
<strong>For: </strong> | ||
{audiences.map((audience) => ( | ||
<button | ||
className={`button button--secondary ${activeFilters.includes(audience) && "button--active"}`} | ||
onClick={() => handleFilterToggle(audience)} | ||
> | ||
{audience} | ||
</button> | ||
))} | ||
</div> | ||
</div> | ||
</header> | ||
<div className="container"> | ||
<div className="row"> | ||
{(filteredItems || []).map(({ content: BlogPostContent }) => ( | ||
<BlogPostProvider key={BlogPostContent.metadata.permalink} content={BlogPostContent}> | ||
<LearnItemCard /> | ||
</BlogPostProvider> | ||
))} | ||
</div> | ||
<BlogListPaginator metadata={metadata} /> | ||
</div> | ||
</Layout> | ||
); | ||
} | ||
|
||
export default function BlogListPage(props) { | ||
return ( | ||
<HtmlClassNameProvider className={clsx(ThemeClassNames.wrapper.blogPages, ThemeClassNames.page.blogListPage)}> | ||
<BlogListPageMetadata {...props} /> | ||
<BlogListPageContent {...props} /> | ||
</HtmlClassNameProvider> | ||
); | ||
} |
7 changes: 7 additions & 0 deletions
7
docs-website/src/learn/_components/LearnListPage/styles.module.scss
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
.filterBar { | ||
display: flex; | ||
justify-content: center; | ||
align-items: center; | ||
gap: 10px; | ||
flex-wrap: wrap; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
--- | ||
title: "What is a Business Glossary and How to Standardize It" | ||
description: Understand how a standardized business glossary aids in achieving consistency, compliance, and efficient data use. | ||
tags: ["Business Glossary", "Use Case", "For Data Governance Leads"] | ||
image: /img/learn/use-case-business-glossary.png | ||
hide_table_of_contents: false | ||
audience: ["Data Governance Leads"] | ||
date: 2024-06-03T05:00 | ||
--- | ||
|
||
# What is a Business Glossary and How to Standardize It | ||
|
||
Understand how a standardized business glossary aids in achieving consistency, compliance, and efficient data use. | ||
|
||
<!--truncate--> | ||
|
||
## Introduction | ||
|
||
Have you ever faced confusion due to inconsistent business terminology within your organization? This lack of standardization can lead to misunderstandings, compliance issues, and inefficient data use. In this post, we’ll explore the importance of having a standardized business glossary, its benefits, and how you can implement one effectively in your organization. | ||
|
||
## What is a Business Glossary? | ||
|
||
A Business Glossary is like a dictionary for your company. It contains definitions of key business terms that everyone in the organization uses, ensuring everyone speaks the same language, especially when it comes to important concepts related to the data your company collects, processes, and uses. | ||
|
||
For example, below are some sales-related glossary terms that can be used in an IT company. | ||
|
||
| Term | Definition | Usage | | ||
| --- | --- | --- | | ||
| CRM (Customer Relationship Management) | Software that manages a company's interactions with current and potential customers. | CRMs help streamline processes and improve customer relationships. | | ||
| Lead | A potential customer who has shown interest in a company's product or service. | Leads are nurtured by the sales team to convert into customers. | | ||
| Pipeline | The stages through which a sales prospect moves from initial contact to final sale. | Sales pipelines track progress and forecast future sales. | | ||
| Quota | A sales target set for a salesperson or team for a specific period. | Quotas motivate sales teams and measure performance. | | ||
| Conversion Rate | The percentage of leads that turn into actual sales. | High conversion rates indicate effective sales strategies. | | ||
| Upselling | Encouraging customers to purchase a more expensive or upgraded version of a product. | Upselling increases revenue by enhancing the customer purchase. | | ||
| Churn Rate | The percentage of customers who stop using a product or service over a given period. | Reducing churn rate is crucial for maintaining steady growth. | | ||
| MQL (Marketing Qualified Lead) | A lead that has been deemed more likely to become a customer based on marketing efforts. | MQLs are passed from the marketing team to the sales team for further nurturing. | | ||
| ARR (Annual Recurring Revenue) | The amount of revenue that a company expects to receive from its customers on an annual basis for subscriptions. | ARR helps in financial forecasting and performance measurement. | | ||
|
||
## What is Business Glossary Standardization? | ||
|
||
Business glossary standardization means creating and maintaining a consistent set of business terms and definitions used across the organization. This practice is essential for maintaining clarity and consistency in how data is interpreted and used across different departments. | ||
|
||
## Why Should You Care? | ||
|
||
### The Challenge | ||
|
||
Without a consistent understanding and use of business terminology, your company lacks a unified understanding of its data. This can lead to inconsistencies, increased compliance risk, and less effective use of data. Different teams may describe the same concepts in various ways, causing confusion about customers, key metrics, products, marketing, and more. | ||
|
||
### The Benefits | ||
|
||
For a governance lead, standardizing the business glossary is crucial for several reasons: | ||
|
||
- **Reduces Confusion, Facilitates Discovery:** Ensures data quality, consistency, and reliability, which are critical for effective decision-making. | ||
- **Regulatory Compliance:** Aligns data use with regulatory definitions and requirements, essential for compliance with financial regulations. | ||
- **Supports Risk Management:** Provides consistent terminology for analyzing market trends, credit risk, and operational risks. | ||
- **Training and Onboarding:** Helps new employees quickly understand the company’s specific language and metrics, speeding up the training process. | ||
|
||
### Real-World Impact | ||
|
||
Imagine a financial services company where different teams use varied terminologies for the same concepts, such as "customer lifetime value." (CLV) This inconsistency can lead to misinterpretations, faulty risk assessments, and regulatory non-compliance, ultimately affecting the company's reputation and financial stability. | ||
|
||
Here's how different teams might interpret CLV and the potential implications: | ||
|
||
| Team | Interpretation of CLV | Focus | Implications | | ||
| --- | --- | --- | --- | | ||
| Marketing | Total revenue generated from a customer over their entire relationship with the company | Campaign effectiveness, customer acquisition costs, return on marketing investment | Revenue maximization through frequent promotions, potentially ignoring the cost of service and risk associated with certain customer segments | | ||
| Sales | Projected future sales from a customer based on past purchasing behavior | Sales targets, customer retention, cross-selling/up-selling opportunities | Aggressive sales tactics to boost short-term sales, potentially leading to customer churn if the value delivered does not meet | | ||
| Finance | Net present value (NPV), factoring in the time value of money and associated costs over the customer relationship period | Profitability, cost management, financial forecasting | Conservative growth strategies, focusing on high-value, low-risk customers, potentially overlooking opportunities for broader market expansion | | ||
|
||
Different interpretations can lead to conflicting strategies and objectives across teams. For instance, Marketing’s aggressive acquisition strategy may lead to a significant increase in new customers and short-term revenue. However, if Finance’s NPV analysis reveals that these customers are not profitable long-term, the company may face financial strain due to high acquisition costs and low profitability. | ||
|
||
The Sales team’s push for upselling may generate short-term sales increases, aligning with their CLV projections. However, if customers feel pressured and perceive the upsells as unnecessary, this could lead to dissatisfaction and higher churn rates, ultimately reducing the actual lifetime value of these customers. | ||
|
||
The conflicting strategies can result in misaligned priorities, where Marketing focuses on volume, Sales on immediate revenue, and Finance on long-term profitability. This misalignment can lead to inefficient resource allocation, where Marketing spends heavily on acquisition, Sales focuses on short-term gains, and Finance restricts budgets due to profitability concerns. | ||
|
||
### Example Discovery Questions | ||
|
||
- Have you ever experienced confusion or errors due to inconsistent terminology in your organization's data reports? How do you currently manage and standardize business terms across departments? | ||
- If your organization lacks a standardized business glossary, what challenges do you face in ensuring regulatory compliance and reliable data analysis? | ||
- When onboarding new employees, do you find that inconsistent terminology slows down their training and understanding of company data? How could a standardized glossary improve this process? | ||
|
||
## How to Standardize a Business Glossary | ||
|
||
### General Approach | ||
|
||
To standardize a business glossary, start by identifying key business terms and their definitions. Engage stakeholders from various departments to ensure comprehensive coverage and agreement. Regularly update the glossary to reflect changes in business processes and regulatory requirements. | ||
|
||
### Alternatives and Best Practices | ||
|
||
Some companies use manual methods to track data terminology and manage access requests. While these methods can work, they are often inefficient and error-prone. Best practices include using automated tools that provide consistent updates and easy access to the glossary for all employees. | ||
|
||
### Our Solution | ||
|
||
Acryl DataHub offers comprehensive features designed to support the authoring of a unified business glossary for your organization: | ||
|
||
<p align="center"> | ||
<img width="80%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/blogs/glossary-terms/business-glossary-center.png"/> | ||
<br /> | ||
<i style={{color:"grey"}}>Business Glossary Center</i> | ||
</p> | ||
|
||
- **[Centralized Business Glossary](https://datahubproject.io/docs/glossary/business-glossary):** A repository for all business terms and definitions, ensuring consistency across the organization. | ||
|
||
|
||
<p align="center"> | ||
<img width="80%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/blogs/glossary-terms/approval-workflow.png"/> | ||
<br /> | ||
<i style={{color:"grey"}}>Approval Flows</i> | ||
</p> | ||
|
||
|
||
- **[Approval Flows](https://datahubproject.io/docs/managed-datahub/approval-workflows):** Structured workflows for approving changes to the glossary, maintaining quality and consistency through time | ||
|
||
- **Automated Data Classification:** Tools to tag critical data assets - tables, columns, dashboards, and pipelines - with terms from the business glossary using automations and custom rules. | ||
|
||
By implementing these solutions, you can ensure that your business terminology is consistently defined and accurately used across all teams, supporting reliable decision-making and regulatory compliance. | ||
|
||
## Conclusion | ||
|
||
Standardizing your business glossary is essential for maintaining consistency, ensuring compliance, and optimizing data use. By implementing best practices and leveraging advanced tools, you can achieve a more efficient and reliable data management process. This investment will lead to better decision-making, reduced compliance risks, and a more cohesive organizational understanding of data. |
Oops, something went wrong.