← Back to list

Two sides of the same craft: why software developers and data analysts keep drifting towards each…

There’s a moment, usually quiet, usually accidental, where a data analyst realises they are not just analysing the world, they are shaping…

Jacob Reilly-Cooper in The Digital Edge · 2025-12-22 16:04 · 11 claps · 8.7 min read
#software-development #data #data-science #technology
Open on Medium ↗
Wiki topics: ML · Machine Learning 🔬 · Science · General 🛠️ · Crafts & DIY

Two sides of the same craft: why software developers and data analysts keep drifting towards each other

There’s a moment, usually quiet, usually accidental, where a data analyst realises they are not just analysing the world, they are shaping it. It might be the first time they build a dashboard that changes a senior leader’s decision. Or the first time they automate a recurring report and get those hours back. Or the first time they see a messy dataset and feel that itch: “I don’t just want to describe this problem. I want to fix the system that creates it.”

And there’s a matching moment for a software developer. The first time an “obvious” feature request turns out to be the wrong thing because nobody asked what success looks like. The first time a system is technically perfect but commercially useless. Or the first time they realise that data is the product’s memory, and without it, the code is a body with no history.

Software development and data analytics look like different worlds on paper. One builds, one measures. One ships features, one ships insight. But in practice, they overlap constantly, because both are disciplines of translation: taking fuzzy reality and turning it into something you can run, test, trust, and improve.

So why do strong analysts fall in love with software, and why do strong developers fall hard for analytics? Because under the tools and job titles, it’s the same craft wearing different clothes.

Photo by Joshua Chehov on Unsplash

Photo by Joshua Chehov on Unsplash

The shared heartbeat: turning ambiguity into decisions

Both roles live in the space between “what someone asked for” and “what the organisation actually needs”.

A developer gets a ticket that says: “Add a button that exports to Excel.” A good developer asks: “Why?” Is it for audit? Sharing? A workaround for missing permissions? A symptom of a bigger data access problem?

An analyst gets a request that says: “Can you tell me why sales dropped?” A good analyst asks: “Compared to what baseline, over what time period, and do we trust the inputs?” Is this a seasonal pattern? A product change? A data pipeline issue? A reporting definition mismatch?

This is the first big similarity: both jobs are detective work before they are delivery work. The best practitioners in both spaces do not rush to output. They slow down at the start, interrogate assumptions, define terms, and only then build.

That is not just a mindset. It’s a risk strategy. Most failures in software and analytics are not “bad code” or “bad maths”. They are misunderstandings that shipped.

Photo by Milad Fakurian on Unsplash

Photo by Milad Fakurian on Unsplash

Both are systems thinkers, just at different layers

Software developers are trained to see systems as components and contracts. APIs, modules, services, boundaries, failure modes, performance constraints, security policies. They learn to ask: “What happens when this breaks? What happens when this scales? What happens when the user does something weird at 2am?”

Data analysts are trained to see systems as flows and definitions. Data sources, transformations, joins, grain, lineage, missingness, bias, measurement error. They learn to ask: “What does this number actually mean? Who defines it? What got excluded? What’s the confidence here?”

Underneath, both are mapping reality into a model.

A developer models reality as behaviour. An analyst models reality as evidence. But it’s still modelling. It’s still deciding what matters, what gets captured, what gets ignored, and what the consequences are.

If you’ve ever watched a developer draw a sequence diagram, and an analyst draw a data flow diagram, you’ve seen the same instinct in action: “Let’s make the invisible visible.”

The crossover superpower: both are translators between people and machines

A strong analyst is already halfway to being a strong developer because analytics teaches you to be precise with meaning.

When analysts write SQL, they learn that ambiguity is punished immediately. “Customer” is not a feeling, it’s a definition. “Active” is not a vibe, it’s a rule. “Churn” is not a word, it’s a calculation.

That exact discipline is the same discipline that makes someone good at writing software requirements and building reliable features. A developer’s job is also to convert human intent into machine behaviour, and machines do not accept hand-waving.

Likewise, a strong developer is already halfway to being a strong analyst because software teaches you to be disciplined with execution.

Developers understand pipelines, dependencies, environments, versioning, testing, observability, rollback. They know what it means to run something repeatedly and get the same result. They know that “works on my machine” is not a success criterion.

That is exactly what modern analytics needs, especially in organisations moving from ad hoc reporting to data products. When analytics becomes operational, it starts inheriting software’s expectations: reliability, repeatability, monitoring, and change control.

The crossover is not a leap. It’s a natural extension.

Photo by Vlad Hilitanu on Unsplash

Photo by Vlad Hilitanu on Unsplash

The tools are converging, and so are the teams

Even if we ignore job titles, the actual work is blending.

Analytics has moved beyond spreadsheets into version-controlled code. SQL lives in repos. dbt turns transformations into modular, testable artefacts. Python notebooks are used for exploration, then packaged into pipelines. CI/CD is increasingly applied to data models. Data quality checks look suspiciously like unit tests. Observability tools watch freshness, volume, schema drift, and anomalies.

Software development has moved beyond “just code” into product analytics and experimentation. Instrumentation is part of the feature. Event schemas need governance. A/B tests require clean data. Feature flags and metrics decide whether something is kept or killed. Developers are expected to interpret dashboards, understand funnels, and reason about causal impact, not just performance.

The result is a shared middle ground: the world of building things that measure themselves, and measuring things that need to be built properly.

Craft parallels: debugging, but with different symptoms

If you enjoy debugging, you can enjoy either discipline.

A developer debugs by tracing execution. What path did the code take? What state was the system in? What input triggered the failure? Where did the contract break?

An analyst debugs by tracing provenance. Where did the data come from? What transformed it? What got filtered out? Where did the definition change? Is the “drop” real, or a reporting artefact?

Both involve forming hypotheses, isolating variables, running controlled tests, and being humble in the face of complexity.

The difference is mostly the shape of the evidence.

In software, bugs often show up as crashes, incorrect outputs, or weird edge cases. In analytics, bugs often show up as impossible trends, suspicious spikes, or numbers that do not reconcile across reports.

But the method is the same. Curiosity, discipline, and a willingness to be wrong quickly.

“Quality” means the same thing in both worlds: trust

Here’s a useful way to think about it. Software quality is user trust over time. Data quality is decision trust over time.

In software, trust comes from things like reliability, usability, security, performance, maintainability. In analytics, trust comes from things like accuracy, timeliness, consistency, explainability, lineage, reproducibility.

Notice the overlap hiding in plain sight. Maintainability and reproducibility are siblings. Explainability and debuggability are cousins. Security matters in both. Documentation is undervalued in both, until it hurts.

A strong analyst who cares about trust will eventually be drawn to software techniques because they are trust machines: tests, code review, versioning, automated checks, structured deployment.

A strong developer who cares about trust will eventually be drawn to analytics because trust is also about outcomes: measuring what users do, understanding impact, and making decisions based on evidence rather than opinions.

The shared art: storytelling with constraints

This is the bit people often miss. Both roles are creative.

Developers tell stories about behaviour. They create experiences. They decide what happens first, what happens next, how errors are handled, what the user sees, and what gets remembered.

Analysts tell stories about reality. They decide what to measure, what to compare, what to visualise, what to caveat, and what conclusion is justified.

Neither story can be pure imagination. Both are constrained. Software is constrained by physics, budgets, time, and existing architecture. Analytics is constrained by data availability, bias, definitions, and statistical uncertainty.

Creativity under constraint is a craft. It’s also addictive, which is why people cross over.

Why data analysts fall for software development

If you are a strong analyst, you already know the frustration: you can see the pattern, but you cannot change the system.

You discover that a business process creates messy data because the UI encourages bad entry. You find that teams cannot self-serve because access is a maze. You realise that the dashboard is always late because upstream systems are stitched together with hope and manual steps.

At some point, insight stops being enough. You want leverage.

Software development offers that leverage. It lets you build the thing that prevents the problem recurring. It lets you automate, standardise, and embed the logic where it belongs. It turns “Here’s what’s happening” into “Here’s what will happen now”.

Also, analytics quietly trains you for development in practical ways. Writing SQL is programming. Building reproducible notebooks is software thinking. Creating consistent metrics is designing contracts. Communicating assumptions is product work. Analysts often make excellent developers because they are already allergic to vague requirements and unvalidated outputs.

Why software developers fall for data analytics

If you are a strong developer, you know the other frustration: you can ship a feature and still not know if you improved anything.

You can build something elegant, scalable, secure, and still miss the mark because you solved the wrong problem. You can deliver on time and still lose to a competitor because the user journey is misunderstood. You can optimise performance and still bleed retention.

Data analytics offers feedback, and feedback is oxygen for builders.

Analytics gives developers a way to close the loop: instrument behaviour, observe outcomes, test hypotheses, learn what matters, and iterate with intention. It turns product development from opinion-driven debate into evidence-driven evolution. It also gives developers a new kind of power: not just building systems, but understanding systems.

And there is a deeper pull as well. Developers often enjoy structure. Analytics offers a different kind of structure: the structure of reality, the messy truth, the hidden shape of what people actually do.

A practical picture: the same lifecycle, different artefacts

Imagine a simple loop, drawn as a circle with four quadrants.

In the first quadrant, you define the question or requirement. In the second, you build or transform something. In the third, you validate it. In the fourth, you ship it and observe what happens.

Software and analytics both run this loop, repeatedly. The artefacts change, but the loop stays.

In software, you define user needs, build features, test, deploy, monitor. In analytics, you define business questions, model data, validate with checks and reconciliation, publish dashboards or datasets, monitor freshness and drift.

If you’re someone who enjoys that loop, you can feel at home in either world.

The modern hybrid: data products and “analytics engineering”

The industry is quietly creating a bridge role because the overlap is so real: people who build analytics like software.

Call it analytics engineering, data product development, BI engineering, whatever fits your organisation. The theme is consistent. These practitioners treat metrics as contracts, transformations as modular code, dashboards as products, and data reliability as an engineering responsibility.

This is one of the clearest signals that the similarity is not philosophical, it’s operational. The work is converging because organisations need it to.

The deeper reason they attract each other

Both disciplines offer a particular kind of satisfaction: you take confusion and turn it into clarity.

Sometimes that clarity is a feature that makes a user’s day easier. Sometimes it’s a dashboard that changes a strategy. Sometimes it’s an automated pipeline that quietly removes friction from a whole organisation.

Either way, it’s the same emotional payoff: you made something that makes the world more legible and more controllable.

That’s why crossovers happen. Not because people are bored, but because they’re drawn towards more leverage, more feedback, and more truth.

Where this goes next, if you want to lean into it

If you’re an analyst curious about software, start noticing where your work repeats. Repetition is a sign that automation is waiting. Pay attention to data quality pain points and ask what behaviour in the source systems creates them. Learn just enough software craft to build small utilities, APIs, or internal tools that remove those pains permanently.

If you’re a developer curious about analytics, start with instrumentation and definitions. Learn how events become metrics. Learn SQL properly, not just enough to get by. Get comfortable with questioning whether a number is meaningful before optimising how fast you can compute it. Build the habit of shipping with measurement built in.

And maybe the real question is this:

When you look at your own work, do you feel more energised by building the engine, or by reading the dashboard?

Because the best people eventually do both, and the best organisations make room for that.


메타데이터
post_id
f41afe901e54
slug
two-sides-of-the-same-craft-why-software-developers-and-data-analysts-keep-drifting-towards-each-f41afe901e54
url
https://medium.com/bpp-digital-edge/two-sides-of-the-same-craft-why-software-developers-and-data-analysts-keep-drifting-towards-each-f41afe901e54
canonical_url
https://medium.com/bpp-digital-edge/two-sides-of-the-same-craft-why-software-developers-and-data-analysts-keep-drifting-towards-each-f41afe901e54
author_url
https://medium.com/@jacobreillycooper
status
ok
fetched_at
2026-06-13 07:35:29