<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Brian Cariveau</title>
    <description>The latest articles on DEV Community by Brian Cariveau (@analyticspitfalls).</description>
    <link>https://dev.to/analyticspitfalls</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3707834%2F9f55ef4c-7e0e-4327-96a5-1e062a00846a.jpeg</url>
      <title>DEV Community: Brian Cariveau</title>
      <link>https://dev.to/analyticspitfalls</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/analyticspitfalls"/>
    <language>en</language>
    <item>
      <title>She had a PhD from MIT. She quit after 6 months because nobody knew what sls_txn_f47 meant.</title>
      <dc:creator>Brian Cariveau</dc:creator>
      <pubDate>Sun, 22 Feb 2026 12:59:00 +0000</pubDate>
      <link>https://dev.to/analyticspitfalls/she-had-a-phd-from-mit-she-quit-after-6-months-because-nobody-knew-what-slstxnf47-meant-4cmo</link>
      <guid>https://dev.to/analyticspitfalls/she-had-a-phd-from-mit-she-quit-after-6-months-because-nobody-knew-what-slstxnf47-meant-4cmo</guid>
      <description>&lt;p&gt;Dr. Jennifer Park walked into my office on her last day.&lt;/p&gt;

&lt;p&gt;"I'm sorry," she said. "I really wanted this to work."&lt;/p&gt;

&lt;p&gt;I'd recruited her personally. PhD in Machine Learning from MIT. Five years at Spotify building recommendation engines. Above-market salary. Equity. The works.&lt;/p&gt;

&lt;p&gt;She lasted six months and four days.&lt;/p&gt;

&lt;p&gt;"What happened?"&lt;/p&gt;

&lt;p&gt;"I spent six months trying to do one thing: build a recommendation engine. At Spotify, I built similar systems in six weeks."&lt;/p&gt;

&lt;p&gt;"And here?"&lt;/p&gt;

&lt;p&gt;"Here, I spent six months just trying to &lt;em&gt;understand the data&lt;/em&gt;."&lt;/p&gt;

&lt;p&gt;She opened our Snowflake warehouse. 847 tables.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sls_txn_f47&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;usr_bhv_ag_01&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;car_lst_vw_2&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;bid_hist_tmp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;"Nobody knows what these mean," she said. "The engineer who built them left two years ago. I spent three months reverse-engineering the schema. Then I discovered we have &lt;strong&gt;seven different definitions of &lt;code&gt;user_id&lt;/code&gt; across tables.&lt;/strong&gt; Seven."&lt;/p&gt;

&lt;p&gt;"I'm not a bad data scientist," she said. "Your data is just impossible to work with."&lt;/p&gt;




&lt;h2&gt;
  
  
  Four months later
&lt;/h2&gt;

&lt;p&gt;We hired Alex.&lt;/p&gt;

&lt;p&gt;Same challenge: "Build a recommendation engine."&lt;/p&gt;

&lt;p&gt;He understood the data model in &lt;strong&gt;15 minutes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Had a working prototype by end of day.&lt;/p&gt;

&lt;p&gt;Shipped an upgraded version the next week. Clickthrough rate up 18%.&lt;/p&gt;




&lt;h2&gt;
  
  
  What changed?
&lt;/h2&gt;

&lt;p&gt;We rebuilt the foundation.&lt;/p&gt;

&lt;p&gt;Killed 535 zombie tables nobody was querying.&lt;/p&gt;

&lt;p&gt;Renamed everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;sls_txn_f47&lt;/code&gt; → &lt;code&gt;auction_transactions&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;usr_bhv_ag_01&lt;/code&gt; → &lt;code&gt;user_behavior_daily&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;car_lst_vw_2&lt;/code&gt; → &lt;code&gt;car_listings_current&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Created one source of truth for every entity.&lt;/p&gt;

&lt;p&gt;Documented everything.&lt;/p&gt;

&lt;p&gt;Asked "Is this stupidly simple yet?" until the answer was yes.&lt;/p&gt;




&lt;p&gt;The test:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Old model:&lt;/strong&gt; 30 minutes to find last month's revenue&lt;br&gt;&lt;br&gt;
&lt;strong&gt;New model:&lt;/strong&gt; 30 seconds&lt;/p&gt;

&lt;p&gt;Alex understood the &lt;em&gt;structure&lt;/em&gt; in 15 minutes because the naming was self-explanatory. Actually &lt;em&gt;building&lt;/em&gt; the recommendation engine took the rest of the day.&lt;/p&gt;

&lt;p&gt;But he wasn't stuck for weeks reverse-engineering cryptic schemas like Jennifer was.&lt;/p&gt;




&lt;h2&gt;
  
  
  The lesson
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You can't build on top of chaos.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Jennifer was brilliant. The data was just impossible to work with.&lt;/p&gt;

&lt;p&gt;How many great engineers have you lost because your schema looked like &lt;code&gt;tbl_usr_tmp_20220304&lt;/code&gt;?&lt;/p&gt;




&lt;p&gt;This is a scene from &lt;strong&gt;The Auction Block&lt;/strong&gt; — a business fable I wrote about what data/analytics teams get wrong (and how to fix it). Think &lt;em&gt;The Phoenix Project&lt;/em&gt; but for data &amp;amp; AI teams. I promise you will become a better version of yourself if you thumb through it!&lt;/p&gt;

&lt;p&gt;If you've ever inherited a data graveyard and had to rebuild it, you might find it useful.&lt;/p&gt;

&lt;p&gt;Available on Kindle &amp;amp; paperback - &lt;a href="https://www.amazon.com/Auction-Block-Novel-About-Teams-ebook/dp/B0GM8BRVWC" rel="noopener noreferrer"&gt;https://www.amazon.com/Auction-Block-Novel-About-Teams-ebook/dp/B0GM8BRVWC&lt;/a&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>ai</category>
      <category>dataengineering</category>
      <category>career</category>
    </item>
    <item>
      <title>We're Manufacturing Dashboards &amp; Data Nobody Uses (And the Data Proves It)</title>
      <dc:creator>Brian Cariveau</dc:creator>
      <pubDate>Thu, 15 Jan 2026 05:31:35 +0000</pubDate>
      <link>https://dev.to/analyticspitfalls/were-manufacturing-dashboards-data-nobody-uses-and-the-data-proves-it-djh</link>
      <guid>https://dev.to/analyticspitfalls/were-manufacturing-dashboards-data-nobody-uses-and-the-data-proves-it-djh</guid>
      <description>&lt;p&gt;I ran usage analytics on our dashboards.&lt;/p&gt;

&lt;p&gt;(I like to call it "Analytics on ourselves"—actually paying attention to what we build.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result: 60%+ hadn't been touched in 90 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run the same analytics at the data level and the picture is usually uglier! &lt;/p&gt;




&lt;h2&gt;
  
  
  The Retail Analogy
&lt;/h2&gt;

&lt;p&gt;If a product sat on an end cap at Target for 90 days without selling, how long would we keep it there?&lt;/p&gt;

&lt;p&gt;Zero days. Pull it immediately. Run a promotion or discontinue it.&lt;/p&gt;

&lt;p&gt;But in analytics and data? We just keep building more.&lt;/p&gt;

&lt;p&gt;47 dashboards. 28 unused. But we're planning three more this quarter.&lt;/p&gt;

&lt;p&gt;1,000s. or 10,000s. or 100,000s+ of tables and views. 70% plus never used. But we are adding 500 more in the next week.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Manufacturing Problem
&lt;/h2&gt;

&lt;p&gt;In my &lt;a href="https://dev.to/analyticspitfalls/garbage-in-powerhouse-out-nope-why-your-data-foundation-matters-more-than-ai-5a8c"&gt;last post&lt;/a&gt;, I talked about viewing analytics as a manufacturing floor.&lt;/p&gt;

&lt;p&gt;Here's what that looks like in practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We're manufacturing products (dashboards, reports, insights) that nobody's buying (using).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But we keep the production line running.&lt;/p&gt;

&lt;p&gt;Why? Because we're not measuring the right thing.&lt;/p&gt;

&lt;p&gt;We measure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Time to build&lt;/li&gt;
&lt;li&gt;✅ Data accuracy&lt;/li&gt;
&lt;li&gt;✅ Dashboard performance&lt;/li&gt;
&lt;li&gt;✅ Number of features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don't measure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ Actual usage&lt;/li&gt;
&lt;li&gt;❌ Time to value&lt;/li&gt;
&lt;li&gt;❌ Decisions influenced&lt;/li&gt;
&lt;li&gt;❌ Products we should sunset&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Usage Analytics Framework
&lt;/h2&gt;

&lt;p&gt;Here's how we started tracking what actually matters:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Instrument Everything
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;dashboard_usage&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;dashboard_id&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="n"&gt;viewed_at&lt;/span&gt; &lt;span class="nb"&gt;TIMESTAMP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;time_spent_seconds&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;filters_applied&lt;/span&gt; &lt;span class="n"&gt;JSONB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;exports_generated&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Page views (basic)&lt;/li&gt;
&lt;li&gt;Time spent (engagement)&lt;/li&gt;
&lt;li&gt;Filters applied (actual use vs casual browsing)&lt;/li&gt;
&lt;li&gt;Exports/downloads (taking action on the data)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Define "Active Use"
&lt;/h3&gt;

&lt;p&gt;Not just "someone opened it." &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Active use = viewed + spent &amp;gt;60 seconds + applied filters OR exported data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This separates "accidentally clicked" from "actually using."&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Run the 90-Day Audit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; 
  &lt;span class="n"&gt;dashboard_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;unique_users_90d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time_spent_seconds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;avg_time_spent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;exports_generated&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;total_exports&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;dashboard_usage&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;viewed_at&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="k"&gt;CURRENT_DATE&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;INTERVAL&lt;/span&gt; &lt;span class="s1"&gt;'90 days'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;dashboard_name&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;unique_users_90d&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The results were brutal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;60% had zero active users in 90 days&lt;/li&gt;
&lt;li&gt;20% had 1-2 users (probably just the creator checking it)&lt;/li&gt;
&lt;li&gt;Only 20% had genuine regular usage&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Sunset Process
&lt;/h3&gt;

&lt;p&gt;We created a simple decision tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Zero active users in 90 days?
  ↓
Email the creator: "Dashboard X hasn't been used. Sunset in 30 days unless we hear otherwise."
  ↓
No response OR "yeah, nobody needs it anymore"?
  ↓
Archive it. Remove from production. And you can track very similar stats at the data level. It is as simple as who queries what when?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result: Went from 47 dashboards to 12 in one quarter.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The remaining 12? Actually used. Actually maintained. Actually valuable.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Pushback We Got
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"But what if someone needs it later?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Archive it. If they ask (they won't), restore it. In two years, nobody asked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"But it took us months to build!"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sunk cost fallacy. The cost of maintaining unused dashboards is higher than the cost of rebuilding if needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"But leadership asked for it!"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Leadership asked for it two years ago. They haven't looked at it since. Show them the usage data. They'll agree to sunset it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"But I worked hard on it!"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know. I did too on dashboards that are now archived. It hurts. But unused work is waste in manufacturing terms.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Factory Floor Mindset
&lt;/h2&gt;

&lt;p&gt;If you view analytics as manufacturing (which I do after reading The Phoenix Project), then:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unused dashboards = inventory sitting in a warehouse&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They cost money to maintain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data pipeline costs&lt;/li&gt;
&lt;li&gt;Storage costs&lt;/li&gt;
&lt;li&gt;Mental overhead ("should we update this?")&lt;/li&gt;
&lt;li&gt;Confusion ("which dashboard is the source of truth?")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Better to:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build less&lt;/li&gt;
&lt;li&gt;Measure usage&lt;/li&gt;
&lt;li&gt;Sunset quickly&lt;/li&gt;
&lt;li&gt;Focus on what's actually used&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Sarah Chen Story
&lt;/h2&gt;

&lt;p&gt;This is exactly what happens in Chapter 1 of the Analytics Pitfalls fable.&lt;/p&gt;

&lt;p&gt;Sarah Chen joins ClassicMotors.io as Head of Analytics. Day one, she discovers 47 dashboards.&lt;/p&gt;

&lt;p&gt;Leadership keeps asking "what does the data say?" but nobody can answer because they have too much data and not enough insight.&lt;/p&gt;

&lt;p&gt;Sarah realizes: This isn't a data problem. It's a production problem.&lt;/p&gt;

&lt;p&gt;She needs to audit what's actually being used, sunset the waste, and focus the team on the 20% that drives 80% of value.&lt;/p&gt;

&lt;p&gt;Sound familiar?&lt;/p&gt;

&lt;p&gt;Read Chapter 1 (free): &lt;a href="https://analyticspitfalls.com/fable" rel="noopener noreferrer"&gt;analyticspitfalls.com/fable&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Your Turn
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Have you run usage analytics on your dashboards or your data?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If not, start here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instrument basic tracking (views, time spent)&lt;/li&gt;
&lt;li&gt;Run the 90-day audit&lt;/li&gt;
&lt;li&gt;Email creators of unused dashboards&lt;/li&gt;
&lt;li&gt;Sunset what's not needed&lt;/li&gt;
&lt;li&gt;Focus on what drives value&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drop your results in the comments. I'm betting most teams have 40-60% unused.&lt;/p&gt;

&lt;p&gt;Let's stop building inventory nobody wants.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion Questions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What % of your dashboards do you think are actually used regularly?&lt;/li&gt;
&lt;li&gt;How do you track dashboard usage in your org?&lt;/li&gt;
&lt;li&gt;What's your process for sunsetting unused analytics products?&lt;/li&gt;
&lt;li&gt;Anyone else view analytics as a manufacturing floor?&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is part of my Analytics Pitfalls series - lessons from 25 years of data mistakes. Follow for more.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Previous: &lt;a href="https://dev.to/analyticspitfalls/garbage-in-powerhouse-out-nope-why-your-data-foundation-matters-more-than-ai-5a8c"&gt;Garbage In, Powerhouse Out? (Nope.)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>ai</category>
      <category>dataengineering</category>
      <category>dataops</category>
    </item>
    <item>
      <title>Garbage In, Powerhouse Out? (Nope.) Why Your Data Foundation Matters More Than AI</title>
      <dc:creator>Brian Cariveau</dc:creator>
      <pubDate>Tue, 13 Jan 2026 00:57:13 +0000</pubDate>
      <link>https://dev.to/analyticspitfalls/garbage-in-powerhouse-out-nope-why-your-data-foundation-matters-more-than-ai-5a8c</link>
      <guid>https://dev.to/analyticspitfalls/garbage-in-powerhouse-out-nope-why-your-data-foundation-matters-more-than-ai-5a8c</guid>
      <description>&lt;p&gt;"Garbage in, garbage out."&lt;/p&gt;

&lt;p&gt;You've said it. I've said it. Every data engineer has said it.&lt;/p&gt;

&lt;p&gt;Then we move on. We buy the next AI tool. We hire more data scientists. We build more dashboards.&lt;/p&gt;

&lt;p&gt;Meanwhile, our data foundation is still garbage.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Uncomfortable Pattern
&lt;/h2&gt;

&lt;p&gt;After 25 years in data and analytics—from small business, through consulting, and on to Wells Fargo &amp;amp; UnitedHealth Group—I've watched the same pattern repeat. At Fortune 10 companies and scrappy startups alike:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Organizations spend millions on insights initiatives while their data is fundamentally broken.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I watched a company invest heavily in machine learning. World-class team. Sophisticated models. The demos were perfect.&lt;/p&gt;

&lt;p&gt;Then they pointed the models at production data.&lt;/p&gt;

&lt;p&gt;Everything broke.&lt;/p&gt;

&lt;p&gt;Why? The foundation was garbage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inconsistent naming conventions&lt;/li&gt;
&lt;li&gt;No data quality checks&lt;/li&gt;
&lt;li&gt;Undocumented edge cases&lt;/li&gt;
&lt;li&gt;Historical baggage nobody understood&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ML team had learned to solve problems that didn't exist in production.&lt;/p&gt;




&lt;h2&gt;
  
  
  "Stupidly Simple Data"
&lt;/h2&gt;

&lt;p&gt;A colleague of mine, Matthew Stearns, coined a phrase that stuck: &lt;strong&gt;"Stupidly simple data."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not "clean data." Not "governed data." Not "enterprise-grade architecture."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stupidly. Simple. Data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data so simple that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A new hire can understand it on day one&lt;/li&gt;
&lt;li&gt;Your grandmother could read the table names&lt;/li&gt;
&lt;li&gt;Edge cases are documented&lt;/li&gt;
&lt;li&gt;There are no cryptic abbreviations&lt;/li&gt;
&lt;li&gt;Everything is self-documenting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sounds basic, right?&lt;/p&gt;

&lt;p&gt;Most organizations have data that looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;sls_txn_f47&lt;/span&gt;
&lt;span class="n"&gt;usr_bhv_ag_01&lt;/span&gt;
&lt;span class="n"&gt;car_lst_vw_2&lt;/span&gt;
&lt;span class="n"&gt;tmp_final_v3_ACTUAL_USE_THIS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And when you ask what they mean? Nobody knows. The engineer who built them left two years ago.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Day We Almost Lost "Stupidly Simple"
&lt;/h2&gt;

&lt;p&gt;Let me tell you what happened when my team tried to practice what we preached.&lt;/p&gt;

&lt;p&gt;We were building a cloud data warehouse from scratch. Clean slate. No legacy baggage.&lt;/p&gt;

&lt;p&gt;We made a pact: &lt;strong&gt;No jargon. No abbreviations. No "lift and shift" thinking.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Three data layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raw Data&lt;/strong&gt; (not "bronze")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System Specific&lt;/strong&gt; (not "silver")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics Ready&lt;/strong&gt; (not "gold")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why not medallion architecture? Because going to Home Depot and asking "Where's the paint?" and hearing "It's in the silver department" is absurd.&lt;/p&gt;

&lt;p&gt;Everything spelled out:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;salesforce_opportunities_raw&lt;/span&gt;
&lt;span class="n"&gt;google_analytics_sessions_cleaned&lt;/span&gt;
&lt;span class="n"&gt;customer_lifetime_value_monthly&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No &lt;code&gt;sf_opp_raw&lt;/code&gt;. No &lt;code&gt;ga_sess_cln&lt;/code&gt;. No &lt;code&gt;cltv_mo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The goal: &lt;strong&gt;stupidly simple.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  When Standards Drift
&lt;/h2&gt;

&lt;p&gt;About six months in, our &lt;code&gt;system_specific&lt;/code&gt; schema started getting messy.&lt;/p&gt;

&lt;p&gt;One of our data scientists: "You have got to be kidding me. This is getting messy. I thought it was supposed to be stupidly simple."&lt;/p&gt;

&lt;p&gt;She was right.&lt;/p&gt;

&lt;p&gt;The team had been using it as a staging area for AI experiments. Transitory tables nobody would ever query directly. Tables that should've lived somewhere else.&lt;/p&gt;

&lt;p&gt;Here's the beautiful part:&lt;/p&gt;

&lt;p&gt;Because everything was spelled out—because we'd held to no abbreviations—we knew &lt;strong&gt;EXACTLY&lt;/strong&gt; which objects were AI staging tables.&lt;/p&gt;

&lt;p&gt;We created a new schema: &lt;code&gt;ai_model_staging&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Moved everything over in a day.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;system_specific&lt;/code&gt; was clean again. Back to stupidly simple.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Standard That Enforces Itself
&lt;/h2&gt;

&lt;p&gt;Here's what made this work:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Stupidly simple" had become our language. Our shared value.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When we drifted, someone called it out. That data scientist didn't need permission to point out the mess. The standard gave her permission.&lt;/p&gt;

&lt;p&gt;That's when simplicity becomes sustainable.&lt;/p&gt;

&lt;p&gt;Not when it's written in a document nobody reads.&lt;/p&gt;

&lt;p&gt;Not when it's enforced top-down by governance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When it becomes the language your team uses.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Technical ROI of Simple Naming
&lt;/h2&gt;

&lt;p&gt;Let's talk actual impact:&lt;/p&gt;

&lt;h3&gt;
  
  
  Onboarding Time
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before (cryptic naming):&lt;/strong&gt; 3-6 months for new data engineers to be productive&lt;br&gt;
&lt;strong&gt;After (stupidly simple):&lt;/strong&gt; 2-3 weeks&lt;/p&gt;

&lt;h3&gt;
  
  
  Debugging Time
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt; "What does &lt;code&gt;usr_bhv_ag_01&lt;/code&gt; mean?" → Slack thread → wait for someone who knows → maybe they respond&lt;br&gt;
&lt;strong&gt;After:&lt;/strong&gt; &lt;code&gt;user_behavior_aggregated_daily&lt;/code&gt; → self-documenting → no questions needed&lt;/p&gt;

&lt;h3&gt;
  
  
  Refactoring Time
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt; "Which tables are AI staging?" → guess → break production → rollback → try again&lt;br&gt;
&lt;strong&gt;After:&lt;/strong&gt; &lt;code&gt;ai_model_staging.*&lt;/code&gt; → clean migration in hours&lt;/p&gt;

&lt;h3&gt;
  
  
  Mental Overhead
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt; Everyone maintains mental map of abbreviations → tribal knowledge → lost when people leave&lt;br&gt;
&lt;strong&gt;After:&lt;/strong&gt; Zero translation needed → new hires productive immediately → knowledge doesn't walk out the door&lt;/p&gt;




&lt;h2&gt;
  
  
  The Foundation Nobody Wants to Build
&lt;/h2&gt;

&lt;p&gt;Here's the truth: &lt;strong&gt;The foundation matters more than the fancy stuff.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;More than AI. More than machine learning. More than real-time streaming or data lakes or whatever the next buzzword is.&lt;/p&gt;

&lt;p&gt;If your data foundation is garbage, everything built on top of it is garbage.&lt;/p&gt;

&lt;p&gt;You can't AI your way out of bad data.&lt;/p&gt;

&lt;p&gt;You can't dashboard your way out of cryptic naming.&lt;/p&gt;

&lt;p&gt;You can't innovate on fake problems and expect real solutions.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Controversial Take
&lt;/h2&gt;

&lt;p&gt;Want to be a powerhouse with data and AI?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with the boring stuff:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stupidly simple naming&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No abbreviations, ever&lt;/li&gt;
&lt;li&gt;Self-documenting schemas&lt;/li&gt;
&lt;li&gt;Table names your grandmother could read&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Real data, secured properly&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not fake data theater&lt;/li&gt;
&lt;li&gt;De-identify where needed, but keep it real&lt;/li&gt;
&lt;li&gt;Test on production-like data&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clear ownership&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every dataset has someone responsible&lt;/li&gt;
&lt;li&gt;Documented edge cases&lt;/li&gt;
&lt;li&gt;Quality checks that actually run&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Self-documenting architecture&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New hires productive in days, not months&lt;/li&gt;
&lt;li&gt;No tribal knowledge requirements&lt;/li&gt;
&lt;li&gt;Code comments are last resort&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quality over quantity&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 trusted metrics beat 47 questionable ones&lt;/li&gt;
&lt;li&gt;Better to have less data that's reliable&lt;/li&gt;
&lt;li&gt;Ship working foundations, not complete messes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Not sexy. Not flashy. Not conference-worthy.&lt;/p&gt;

&lt;p&gt;But it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  Your Turn
&lt;/h2&gt;

&lt;p&gt;If you've ever:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inherited a database nobody could explain&lt;/li&gt;
&lt;li&gt;Spent hours debugging cryptic table names&lt;/li&gt;
&lt;li&gt;Watched new hires struggle for months&lt;/li&gt;
&lt;li&gt;Built something on fake data that broke in production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Share your story in the comments. Let's learn from each other's mistakes.&lt;/p&gt;

&lt;p&gt;Because the goal isn't perfection. It's progress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;People helping people.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Follow me here on Dev.to and &lt;a href="https://linkedin.com/in/briancariveau" rel="noopener noreferrer"&gt;connect on LinkedIn&lt;/a&gt; where I share more data engineering lessons learned the hard way.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion Questions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What's the most cryptic database naming you've encountered?&lt;/li&gt;
&lt;li&gt;How long does it take new data engineers to be productive on your team?&lt;/li&gt;
&lt;li&gt;Do you use medallion architecture (bronze/silver/gold)? Why or why not?&lt;/li&gt;
&lt;li&gt;What's your take on "stupidly simple" vs. more structured naming conventions?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's debate this. 👇&lt;/p&gt;

</description>
      <category>database</category>
      <category>dataengineering</category>
      <category>datascience</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
