<?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: Thabang </title>
    <description>The latest articles on DEV Community by Thabang  (@thabanglukheth0).</description>
    <link>https://dev.to/thabanglukheth0</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4047399%2F4d92f9de-227f-4586-bd95-d7f425802b83.jpg</url>
      <title>DEV Community: Thabang </title>
      <link>https://dev.to/thabanglukheth0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thabanglukheth0"/>
    <language>en</language>
    <item>
      <title>Building a Data Science Capability From the Ground Up: A Real Life Roadmap</title>
      <dc:creator>Thabang </dc:creator>
      <pubDate>Sun, 06 Sep 2026 15:50:50 +0000</pubDate>
      <link>https://dev.to/thabanglukheth0/rebuilding-a-data-science-capability-in-under-two-years-a-real-life-roadmap-30a5</link>
      <guid>https://dev.to/thabanglukheth0/rebuilding-a-data-science-capability-in-under-two-years-a-real-life-roadmap-30a5</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Sit down, let us talk about building a data science capability. Not the conference&lt;br&gt;
talk version. The real one, from inside a large, heavily regulated enterprise,&lt;br&gt;
over two years, with a small team, a tight budget, and no map. I inherited the&lt;br&gt;
team. I did not inherit the capability around it, and that distinction is the&lt;br&gt;
whole story. I am going to tell you what I was given, what I did about it, what&lt;br&gt;
it cost me, and what I would tell you to do if you were starting tomorrow.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What I was given
&lt;/h2&gt;

&lt;p&gt;Picture your first week. You ask for the handover and there is none. Not a thin one.&lt;br&gt;
None. Models are running in production, real customers are depending on them every day,&lt;br&gt;
and there is no record anywhere of how they were built, what data feeds them, who uses&lt;br&gt;
their outputs, or how accurate they are. The products exist. The knowledge about them&lt;br&gt;
lives in nobody's hands.&lt;/p&gt;

&lt;p&gt;The team is small and talented, but it has been running without structure, reporting&lt;br&gt;
into a business function rather than an engineering one. Everything is done on&lt;br&gt;
the fly because there has never been anyone whose job it was to decide how things should&lt;br&gt;
be done.&lt;/p&gt;

&lt;p&gt;And there is infrastructure. That part matters, because the lazy version of this story&lt;br&gt;
is that nothing existed. There is &lt;a href="https://kubernetes.io/" rel="noopener noreferrer"&gt;Kubernetes&lt;/a&gt;, Jenkins and CI&lt;br&gt;
pipelines, Microsoft SQL Server on premises, PostgreSQL databases, Windows virtual&lt;br&gt;
machines. Some work still runs off somebody's laptop. A few database environments have&lt;br&gt;
unclear permissions and no obvious owner. None of that is bad technology. It was built&lt;br&gt;
for applications: software that serves requests and touches a modest amount of data at&lt;br&gt;
a time. Our work was going the other way, toward large volumes, reprocessed history and&lt;br&gt;
model training. We had plenty of places to run software. What we did not have was a good&lt;br&gt;
place to do data science at scale.&lt;/p&gt;

&lt;p&gt;And the budget is tight. Not tight as in negotiate harder. Tight as in there&lt;br&gt;
is no line item for any of what you are about to need.&lt;/p&gt;

&lt;p&gt;Here is the first thing I want you to understand, because everything else follows from&lt;br&gt;
it. In that situation, the temptation is to start fixing the loudest thing. Do not. The&lt;br&gt;
loudest thing is almost never the load bearing thing. What follows is the order that&lt;br&gt;
worked, and more importantly, the reasoning behind the order.&lt;/p&gt;
&lt;h2&gt;
  
  
  First, make the work visible
&lt;/h2&gt;

&lt;p&gt;You cannot lead what you cannot see. When I arrived, work started, stalled and finished&lt;br&gt;
invisibly. People were busy, genuinely busy, but the team could not answer the simplest&lt;br&gt;
question about itself: what are we working on, and how is it going?&lt;/p&gt;

&lt;p&gt;So before touching any technology, I introduced structure:&lt;br&gt;
&lt;a href="https://agilemanifesto.org" rel="noopener noreferrer"&gt;agile&lt;/a&gt; working through&lt;br&gt;
&lt;a href="https://www.atlassian.com/software/jira" rel="noopener noreferrer"&gt;Jira&lt;/a&gt;. Two week sprints. A standup every two&lt;br&gt;
days rather than daily, because a small team fighting production fires does not need&lt;br&gt;
another meeting, it needs a rhythm. At the end of each sprint we sat together and asked&lt;br&gt;
the honest questions. What got done? What did not? Why? Who is blocked, and on what?&lt;/p&gt;

&lt;p&gt;If you have read &lt;a href="https://itrevolution.com/product/the-phoenix-project/" rel="noopener noreferrer"&gt;The Phoenix Project&lt;/a&gt;,&lt;br&gt;
you know the idea: invisible work is unmanageable work, and the first act of any&lt;br&gt;
turnaround is making the work visible. What visibility bought me was not speed. It was&lt;br&gt;
knowledge. Within a few sprints I could see who knew what, which skills we had and which&lt;br&gt;
we lacked, and exactly where work went to die. You are not building velocity in this&lt;br&gt;
phase. You are building sight.&lt;/p&gt;
&lt;h2&gt;
  
  
  Write everything down, like you might leave tomorrow
&lt;/h2&gt;

&lt;p&gt;Once I could see the work, the next problem introduced itself: every important thing&lt;br&gt;
lived inside someone's head. In a small team that is not a culture quirk, it is an&lt;br&gt;
existential risk. One resignation and a production system becomes an orphan.&lt;/p&gt;

&lt;p&gt;So I introduced &lt;a href="https://www.atlassian.com/software/confluence" rel="noopener noreferrer"&gt;Confluence&lt;/a&gt; and seeded&lt;br&gt;
it myself, starting with the onboarding guide I wished I had received: every tool we&lt;br&gt;
use, where to find it, how to get access, which entitlements to request, which&lt;br&gt;
regulations you must complete before you can do this work in a regulated environment.&lt;/p&gt;

&lt;p&gt;That was not a filing exercise. It was aimed at the small daily friction that quietly&lt;br&gt;
eats a team. Where does this thing actually run? How is it deployed? How do I get&lt;br&gt;
access? Which database does it depend on? Who owns it? None of that should require&lt;br&gt;
finding the one person who happens to remember. And I knew people would eventually join&lt;br&gt;
us. I did not want anyone else to arrive to what I had arrived to: no handover, no map,&lt;br&gt;
and a week of asking around before you can do anything useful.&lt;/p&gt;

&lt;p&gt;Then the harder job: we went into the backyard and reverse engineered our own production&lt;br&gt;
models. These were not systems we had built. They were systems we had inherited, where&lt;br&gt;
the original reasoning was thin or simply gone. So we read the repositories and the code,&lt;br&gt;
worked out what logic each model actually applied, what data went into it, what came out,&lt;br&gt;
how often it ran, who consumed the output, and what business decision sat on the other&lt;br&gt;
end of it. Nobody handed us that knowledge, so we dug it out ourselves, because the&lt;br&gt;
alternative was operating systems we did not understand.&lt;/p&gt;

&lt;p&gt;Richard Feynman, when a historian described his notebooks as a record of his thinking,&lt;br&gt;
corrected him: the notes were not a record of the thinking, they were the thinking. That&lt;br&gt;
is what documentation is for a team. It is not admin after the real work. It is the team&lt;br&gt;
thinking in a form that survives.&lt;/p&gt;

&lt;p&gt;And here is the part I did not fully predict. The documentation outgrew us. Teams&lt;br&gt;
outside our own area use it to understand our models for their own work, and when people&lt;br&gt;
later joined the team they onboarded from a documented path rather than from word of&lt;br&gt;
mouth.&lt;/p&gt;

&lt;p&gt;Then it paid off in a way I had not planned at all. Production models came under audit,&lt;br&gt;
compliance review and model governance. Reviewers wanted to know what a model does, how&lt;br&gt;
it works, what data it uses, how its decisions are produced, what controls exist and what&lt;br&gt;
evidence backs any of it. Writing things down does not make a model compliant, and I am&lt;br&gt;
not claiming it did. The claim is smaller and more useful than that: when somebody&lt;br&gt;
finally asked us to explain what was running in production, we were not starting from&lt;br&gt;
zero. We could walk them through it instead of spending weeks rediscovering our own&lt;br&gt;
estate under pressure.&lt;/p&gt;

&lt;p&gt;Months earlier, documentation had felt like extra work. During audit, it became&lt;br&gt;
evidence.&lt;/p&gt;

&lt;p&gt;Somewhere along the way it stopped being my project and became how the team works, which&lt;br&gt;
was the real point. The principle is easy to say and hard to hold: important knowledge&lt;br&gt;
belongs out of people's heads and somewhere the team can reach it. If something only&lt;br&gt;
works because one particular person is available that day, you do not have a system. You&lt;br&gt;
have a favour.&lt;/p&gt;

&lt;p&gt;The cost of this phase was my own evenings, and I will not pretend otherwise. Nobody&lt;br&gt;
asks for documentation. You do it because you are building something that must not&lt;br&gt;
depend on you.&lt;/p&gt;
&lt;h2&gt;
  
  
  The long game against the short game
&lt;/h2&gt;

&lt;p&gt;Now I must tell you about the hardest challenge of the whole two years, because it was&lt;br&gt;
not technical.&lt;/p&gt;

&lt;p&gt;Management, quite reasonably, wanted immediate results. Things they could count this&lt;br&gt;
quarter. And almost everything I have described so far produces nothing you can count&lt;br&gt;
this quarter. Sprints, documentation, governance processes: these are investments whose&lt;br&gt;
returns arrive later and compound quietly. My strategy was long term, sustainability&lt;br&gt;
over spectacle, and that meant living inside a permanent tension between what the&lt;br&gt;
business wanted to see now and what the team needed to become.&lt;/p&gt;

&lt;p&gt;I will be honest with you: sometimes holding that line means going against what&lt;br&gt;
management is asking of you in the moment, because you can see what a scalable data&lt;br&gt;
science capability requires before it is visible to anyone else. That can end well or badly, and you&lt;br&gt;
should know that before you choose it. It is ownership in its purest form. If the long&lt;br&gt;
game pays off, you were a builder. If it does not, you were difficult. I decided early&lt;br&gt;
that I was there to plant trees,&lt;br&gt;
and I accepted the cost of explaining, over and over, why I was digging when everyone&lt;br&gt;
wanted fruit.&lt;/p&gt;

&lt;p&gt;My belief, and by the end of this post I hope it becomes yours: a good data science team&lt;br&gt;
is one whose systems outlive the people who built them. If I leave, if anyone leaves, if&lt;br&gt;
the whole team leaves, the documentation, the pipelines, the patterns and the governance&lt;br&gt;
must keep working. There is a moment in One Piece where Dr. Hiluluk asks when a man&lt;br&gt;
truly dies, and answers: not when he is shot, but when he is forgotten. Systems are how&lt;br&gt;
a team remembers. Build so that nothing important dies with a resignation letter,&lt;br&gt;
including yours.&lt;/p&gt;
&lt;h2&gt;
  
  
  When the infrastructure bill arrives
&lt;/h2&gt;

&lt;p&gt;Then reality did what reality does: it presented the bill for infrastructure choices&lt;br&gt;
made long before I arrived.&lt;/p&gt;

&lt;p&gt;The business migrated to a new core policy administration environment. Things broke, and&lt;br&gt;
one of our major workflows began falling behind. This is a workflow handling roughly one&lt;br&gt;
million trips a day. At one point, the backlog had grown to around 100 million trips&lt;br&gt;
waiting to be processed.&lt;/p&gt;

&lt;p&gt;The part people underestimate is that the new data does not stop arriving just because&lt;br&gt;
you are behind. That is the whole problem, and it is simpler than it sounds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;arriving faster than we
process
   -&amp;gt; the backlog grows

same rate in and out
   -&amp;gt; it stops growing
   -&amp;gt; but never shrinks

processing faster than
it arrives
   -&amp;gt; the backlog clears
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To recover we did not just need to process 100 million trips. We needed enough capacity&lt;br&gt;
to work through the backlog while still handling the million or so arriving every day.&lt;br&gt;
No amount of team discipline fixes that. The stack was built for hosting applications,&lt;br&gt;
not for distributed data processing, and the workload and the infrastructure simply did&lt;br&gt;
not share a shape.&lt;/p&gt;

&lt;p&gt;There was a second problem, quieter and in some ways worse. The migration also introduced&lt;br&gt;
inconsistencies in the data itself. So the question was never only "how do we process&lt;br&gt;
more?" It was also "can we trust what we are processing?" Some of those values feed&lt;br&gt;
calculations with real financial consequences, including payouts. I am not claiming wrong&lt;br&gt;
payments went out. I am saying it was a risk we had to control, and quickly.&lt;/p&gt;

&lt;p&gt;Which made the real requirement something like: work through a backlog of roughly 100&lt;br&gt;
million trips, keep up with the million arriving daily, and make sure the data can be&lt;br&gt;
trusted before anything downstream uses it. That is where the need came from for reliable&lt;br&gt;
ingestion and ETL, reconciliation so we could prove a number, quality checks that catch&lt;br&gt;
bad values before they spread, monitoring and alerts so we heard about problems from our&lt;br&gt;
systems rather than from a client, lineage so we could trace where a value came from, and&lt;br&gt;
the ability to safely reprocess history.&lt;/p&gt;

&lt;p&gt;None of that was academic. Clients complained, the business pushed hard and reasonably&lt;br&gt;
so, and people were under real stress for weeks.&lt;/p&gt;

&lt;p&gt;It also changed what I thought scale meant. In a regulated environment, moving more data&lt;br&gt;
is only half of it. You also have to answer who can reach this data, where a number came&lt;br&gt;
from, whether the checks passed, and whether you can run the whole thing again tomorrow&lt;br&gt;
and get the same answer. Scaling is not only processing more data. It is processing more&lt;br&gt;
data without losing control of it.&lt;/p&gt;

&lt;p&gt;This is also where the biggest lesson of the two years finally landed for me. I could&lt;br&gt;
have spent that period improving how we built models and it would not have helped,&lt;br&gt;
because the models were not the weak part. Data scientists cannot spend their time on&lt;br&gt;
modelling if they are forever solving ingestion, movement, transformation, access and&lt;br&gt;
quality by hand. &lt;strong&gt;At scale, data science is only as reliable as the data foundation&lt;br&gt;
underneath it.&lt;/strong&gt; The answer was not to buy a platform. It was to build a stronger data&lt;br&gt;
engineering foundation underneath the data science.&lt;/p&gt;

&lt;p&gt;It is fair to ask how I knew where to look. Before this role I worked at IBM and&lt;br&gt;
Vodacom, in more mature data science and data engineering environments, where production&lt;br&gt;
data science, scalable processing and deployment were treated as engineering disciplines&lt;br&gt;
in their own right. At IBM and Vodacom I learned what a more mature capability could look&lt;br&gt;
like. Here I learned what it takes to help build one.&lt;/p&gt;

&lt;p&gt;I had seen this coming, and I had prepared for it, and this is the most transferable&lt;br&gt;
lesson I own: &lt;strong&gt;you do not get budget for infrastructure, you get budget for pain.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But the first thing I did when the backlog arrived was not to go and design a platform.&lt;br&gt;
It was to go and look at what the group already had. Large organisations are full of&lt;br&gt;
capability that one team built and nobody else knows about, and rebuilding something that&lt;br&gt;
already exists two floors away is an expensive way to look busy. So I went looking, and I&lt;br&gt;
found another team in the group already running&lt;br&gt;
&lt;a href="https://www.databricks.com" rel="noopener noreferrer"&gt;Databricks&lt;/a&gt;. I went to them, asked how they had set it up,&lt;br&gt;
and learned from what they had already worked out.&lt;/p&gt;

&lt;p&gt;That is where the honest version of this story sits, and it is worth being precise about.&lt;br&gt;
I did not introduce Databricks to the group. It was already there. What it was not was a&lt;br&gt;
capability our team could use. Getting it from the first thing to the second was only&lt;br&gt;
partly a technical problem.&lt;/p&gt;

&lt;p&gt;The technical part I could do. I piloted it against our own workloads, got our data into&lt;br&gt;
it, and built the first working pipelines. Part of that was a pattern for pulling data&lt;br&gt;
out of our on premises databases into the cloud environment and catalog over JDBC, which&lt;br&gt;
is simply the standard way applications and data systems connect to relational databases.&lt;br&gt;
I built the first one, proved it on a real business problem rather than a demo, wrote it&lt;br&gt;
down and taught it. The point was never for me to become the person who moves every&lt;br&gt;
dataset. It was that the next person should not have to solve it again from scratch.&lt;/p&gt;

&lt;p&gt;The rest of it was organisational, and I underestimated how much of it there would be.&lt;br&gt;
Working with the team that already had the capability. Bringing in our architecture&lt;br&gt;
people. Getting the commercial arrangements and the cost allocation in place. Pulling in&lt;br&gt;
platform, infrastructure and networking where we needed them. Working through access and&lt;br&gt;
enablement so people could actually log in and do something. That turned out to be the&lt;br&gt;
real lesson of the whole exercise: getting a platform to work technically is only part of&lt;br&gt;
bringing it into a team. Architecture, funding, contracts, access, support and adoption&lt;br&gt;
all have to move with it. The code can be running perfectly while the capability still&lt;br&gt;
does not exist.&lt;/p&gt;

&lt;p&gt;All of this while production was still under pressure, which meant two tracks at once.&lt;br&gt;
Track one was today: get enough of our data onto the platform, processing, and supporting&lt;br&gt;
the business right now. Track two was the slower work of turning that into a real&lt;br&gt;
capability rather than an emergency measure. You do not get to finish the second before&lt;br&gt;
the first becomes urgent, and pretending otherwise is how people end up with a beautiful&lt;br&gt;
architecture and an angry business.&lt;/p&gt;

&lt;p&gt;The risk was mine and I knew it. If it had failed, there would have been no confusion&lt;br&gt;
about whose idea it was. That is the ownership I keep talking about: putting your name&lt;br&gt;
on an outcome before you know how it ends.&lt;/p&gt;

&lt;p&gt;It worked. The new pattern gave us enough capacity to work through the backlog while&lt;br&gt;
still handling everything arriving each day, which is the only definition of recovery&lt;br&gt;
that means anything here. And something subtler happened: the team's default assumption&lt;br&gt;
shifted to cloud first, and moving our data storage fully to the cloud is now one of the&lt;br&gt;
team's biggest running initiatives. Nobody argued about strategy after that. Results&lt;br&gt;
ended the argument, which is the only way arguments like that ever end.&lt;/p&gt;

&lt;p&gt;But the destination was never that I got it working. It was that the team could work on&lt;br&gt;
it. So the early patterns were documented, taught and handed round until they stopped&lt;br&gt;
being mine, because a platform only one person understands is just a more expensive&lt;br&gt;
version of the problem we started with.&lt;/p&gt;
&lt;h2&gt;
  
  
  Teach the team you have
&lt;/h2&gt;

&lt;p&gt;Here is a constraint nobody warns you about: you will mostly not be allowed to hire your&lt;br&gt;
way out. The team you have is the team you build with, and my team had been hired for a&lt;br&gt;
different technical world. Models lived on laptops and personal virtual machines where&lt;br&gt;
nobody else could reach them. &lt;a href="https://spark.apache.org/docs/latest/api/python/" rel="noopener noreferrer"&gt;PySpark&lt;/a&gt;&lt;br&gt;
and Databricks were new to almost everyone. And the training budget was, you already&lt;br&gt;
know, tight.&lt;/p&gt;

&lt;p&gt;So the training programme was us. I taught, over and over: sessions on Databricks, on&lt;br&gt;
PySpark, on Jira, on Confluence, always showing value rather than announcing policy,&lt;br&gt;
because people adopt tools when they watch their own problem get smaller, never because&lt;br&gt;
an email told them to. The goal was never for me to become the expert everyone had to&lt;br&gt;
come back to. It was for anything I learned or solved once to become ordinary team&lt;br&gt;
knowledge: I work it out, I prove it, I write it down, I teach it, somebody else uses it,&lt;br&gt;
and eventually nobody remembers it was ever a special skill.&lt;/p&gt;

&lt;p&gt;The best example of that is not a tool at all. One of the most valuable people in this&lt;br&gt;
story already worked here. They had strong data management knowledge and, more to the&lt;br&gt;
point, they knew the place: where data lived, which databases mattered, how the business&lt;br&gt;
actually used them. With learning, opportunity, engineering direction and real&lt;br&gt;
responsibility, they grew into the data engineering capability we badly needed. Capability&lt;br&gt;
building does not always mean finding a finished specialist outside and hiring them.&lt;br&gt;
Sometimes the knowledge you need is already in the building.&lt;/p&gt;

&lt;p&gt;Then I made teaching an institution: show and tells, every Friday, with rules that are&lt;br&gt;
loose on purpose. Share the model you are building. Share something you learned about&lt;br&gt;
the business. Share the course you are studying, a better way to do something, a piece&lt;br&gt;
of technology news. Everyone becomes able to do a bit of everyone's job, which is the&lt;br&gt;
only real insurance a small team has. And this institution outgrew us exactly like the&lt;br&gt;
documentation did: people from across the business now attend and give feedback, which&lt;br&gt;
quietly turned a team ritual into a standing relationship with our stakeholders.&lt;br&gt;
Alongside it I pushed everyone toward the studies the company sponsors, because in a&lt;br&gt;
small specialised team, personal development is not a perk, it is the growth strategy.&lt;/p&gt;
&lt;h2&gt;
  
  
  Patterns, not heroics
&lt;/h2&gt;

&lt;p&gt;By now the team could see its work, find its knowledge, and stand on real&lt;br&gt;
infrastructure. The remaining gap was discipline. Deployments happened by hand, jobs run&lt;br&gt;
directly on the platform by whoever built them. It worked, and in a regulated&lt;br&gt;
environment it was quietly dangerous: not reproducible, not governed, not accessible to&lt;br&gt;
anyone but the author.&lt;/p&gt;

&lt;p&gt;So we built the engineering layer: this is how we deploy here. Ingestion patterns, model&lt;br&gt;
development patterns, dashboarding patterns, and full&lt;br&gt;
&lt;a href="https://www.atlassian.com/continuous-delivery/continuous-integration" rel="noopener noreferrer"&gt;CI/CD&lt;/a&gt; through&lt;br&gt;
&lt;a href="https://docs.github.com/en/actions" rel="noopener noreferrer"&gt;GitHub workflows&lt;/a&gt;, with governance,&lt;br&gt;
reproducibility and access control designed in rather than bolted on. A pattern is one&lt;br&gt;
person's hard won competence, converted into the team's default.&lt;/p&gt;

&lt;p&gt;And here I must tell the engine story properly, because the order matters. In my own&lt;br&gt;
research I had built an open source engine that lets you describe a data or machine&lt;br&gt;
learning pipeline once, as a small folder of configuration and Python, and run that same&lt;br&gt;
folder anywhere. It started life serving my own experiments, and I carried on developing&lt;br&gt;
it independently afterwards. That engine is&lt;br&gt;
&lt;a href="https://ubunye-ai-ecosystems.github.io/ubunye_engine/" rel="noopener noreferrer"&gt;Ubunye Engine&lt;/a&gt;, and it is on&lt;br&gt;
&lt;a href="https://pypi.org/project/ubunye-engine/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt;. Standing in front of this team's&lt;br&gt;
engineering gap, I recognised that the ideas I had already worked out, about&lt;br&gt;
repeatability and running the same work in different places, were the ones we needed.&lt;br&gt;
They shaped how I approached the problem, and helped shape some of the patterns we&lt;br&gt;
adopted as a team. Research met reality, and they strengthened each other.&lt;/p&gt;

&lt;p&gt;Rolling patterns out is not an email. It was onboarding, practical sessions, hands on&lt;br&gt;
hours every Friday, working through real pipelines together until the patterns stopped&lt;br&gt;
being mine and became the team's.&lt;/p&gt;

&lt;p&gt;Getting the foundation right also gave us room to improve everything above it. We could&lt;br&gt;
start standardising how models were built, deployed, monitored and governed, with work&lt;br&gt;
in source control so somebody else could pick it up and run it, instead of treating every&lt;br&gt;
project as a completely different engineering problem.&lt;/p&gt;

&lt;p&gt;Which is the distinction I would most want you to take from this. Databricks was&lt;br&gt;
important. Databricks was not the capability:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          PEOPLE
   skills, trust, ownership
             |
        PRACTICES
   documentation, standards
       testing, CI/CD
             |
       DATA SCIENCE
   experiments, models
      deployment
             |
     DATA ENGINEERING
   ingestion, ETL, quality
             |
         PLATFORM
   compute, storage, catalog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A platform gives people capabilities. A pattern tells the team how work should be&lt;br&gt;
structured. People and habits are what make the conventions normal. Take any layer out&lt;br&gt;
and the ones above it wobble.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn to let go
&lt;/h2&gt;

&lt;p&gt;Eventually I hit the ceiling every builder hits, and the ceiling was me.&lt;/p&gt;

&lt;p&gt;I was running the process and leading the engineering at the same time, and doing both&lt;br&gt;
badly on alternate days. Worse, every structure I personally held together was a&lt;br&gt;
structure that would fail the week I went on leave, which would have betrayed the entire&lt;br&gt;
philosophy of this build. So I went to management and made the case for help. We grew&lt;br&gt;
the team. We brought in a project manager and scrum masters to run the process.&lt;/p&gt;

&lt;p&gt;The budget was never going to stretch to a specialist for every gap, so a lot of what we&lt;br&gt;
needed came from people who did not report to me: engineers, data engineers, platform&lt;br&gt;
people, technical leads elsewhere who had already solved something like our problem. It&lt;br&gt;
worked because the problems overlapped and because I had spent time on the relationships&lt;br&gt;
before I needed them. You do not need everyone to report to you to build something&lt;br&gt;
together.&lt;/p&gt;

&lt;p&gt;There is a version of this where the data science team quietly becomes data science plus&lt;br&gt;
data engineering plus platform enablement plus everything else nobody has picked up. That&lt;br&gt;
was necessary for a while. It is a terrible permanent arrangement. So as the patterns&lt;br&gt;
matured we began handing them over to the data engineering, technology and platform teams&lt;br&gt;
whose job they properly are, which gives data scientists their capacity back for actual&lt;br&gt;
data science. Sometimes you build what is missing, prove it, teach it, and then give it&lt;br&gt;
to the team that should own it. If you want the theory underneath that move,&lt;br&gt;
&lt;a href="https://teamtopologies.com/book" rel="noopener noreferrer"&gt;Team Topologies&lt;/a&gt; is the book: platform teams exist so&lt;br&gt;
that stream teams can flow.&lt;/p&gt;

&lt;p&gt;None of this would have worked one level up. My manager was not a micromanager, and the&lt;br&gt;
room I was given is the room I was able to give the team. It is difficult to build an&lt;br&gt;
autonomous team if autonomy disappears above it.&lt;/p&gt;

&lt;p&gt;What I mean by a team that manages itself is nothing mystical. Priorities are clear. The&lt;br&gt;
work is visible. People know what they own, pace themselves, ask for help when they are&lt;br&gt;
stuck, and help each other without being asked. Knowledge is shared rather than hoarded.&lt;br&gt;
Nobody needs chasing.&lt;/p&gt;

&lt;p&gt;I used to think the point of leading was being the person who could always fix it. I now&lt;br&gt;
think it is the opposite: the measure of the job is whether the team can say they did it&lt;br&gt;
themselves and be right about it. The cost of this phase is ego, and it is the cheapest&lt;br&gt;
price on this whole page once you understand what it buys.&lt;/p&gt;

&lt;h2&gt;
  
  
  What two years bought
&lt;/h2&gt;

&lt;p&gt;So what does all of this add up to? Told plainly, the way I would tell you across a&lt;br&gt;
table:&lt;/p&gt;

&lt;p&gt;A new model used to take an unbounded amount of time to reach production. Nobody could&lt;br&gt;
tell you how long, because nobody could see the path. Now it ships in days. When work&lt;br&gt;
piles up, we have the capacity to work through it rather than watching it grow. New&lt;br&gt;
people onboard from a documented path instead of an oral tradition.&lt;br&gt;
The production models we inherited are documented and governed, and other teams use that&lt;br&gt;
documentation for their own work. The research in&lt;br&gt;
&lt;a href="https://itrevolution.com/product/accelerate/" rel="noopener noreferrer"&gt;Accelerate&lt;/a&gt; found that delivery speed and&lt;br&gt;
stability rise together or not at all, and that matched our experience exactly: we got&lt;br&gt;
faster because we got safer.&lt;/p&gt;

&lt;p&gt;And the change that matters more than every number: the team stopped being reactive. We&lt;br&gt;
were once a team that chased whatever was on fire that day. We are now proactive for&lt;br&gt;
most of what we do, which means we choose our work instead of our work choosing us.&lt;/p&gt;

&lt;p&gt;I should be honest about where this actually sits. The capability is not finished. Some&lt;br&gt;
foundational ownership is still moving toward the teams that should hold it, and there is&lt;br&gt;
plenty left to improve. But the data scientists now work on the platform, the patterns&lt;br&gt;
are increasingly normal rather than mine, and the knowledge is spread across people&lt;br&gt;
instead of trapped in one or two. The capability is not finished. The way we work has&lt;br&gt;
changed.&lt;/p&gt;

&lt;p&gt;The systems run whether I am in the room or not. That was the goal the whole time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The key takeaways
&lt;/h2&gt;

&lt;p&gt;If you are about to build a data science capability, whether or not the team already&lt;br&gt;
exists, this is what I would say to you before anything else.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Decide what you believe, because everything else follows from it.&lt;/strong&gt; Every move on
this page is one belief wearing different clothes, and you will not hold a line for
two years without one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make the work visible before you touch technology.&lt;/strong&gt; You cannot fix a team you
cannot see, and no platform purchase repairs invisible work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation is leadership, not admin.&lt;/strong&gt; Write the guide you wish you had
received. It will outgrow your team and become the organisation's memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Play the long game, and know its price.&lt;/strong&gt; Management will want countable results
now, and your most important work will not be countable for months. Sometimes you
will hold your line against what is being asked, because you can see what a scalable
capability requires. Understand clearly: that can end as vision or as insubordination,
and which one it becomes depends on what you deliver. Take that ownership with open
eyes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know what you would do before the crisis, and look before you build.&lt;/strong&gt; When it
arrives, bring a plan rather than a complaint. And check what your organisation
already has, because the capability you are about to build from nothing may exist two
floors away, waiting for somebody to do the unglamorous work of bringing it in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teach the team you have.&lt;/strong&gt; A weekly show and tell is a training programme with a
budget of zero, and a small team where everyone can do a bit of everything is more
resilient than a large team of silos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patterns beat heroics.&lt;/strong&gt; Convert individual competence into team defaults, and
automate the important operations until nobody has to think about them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let go on purpose.&lt;/strong&gt; Hand the process to process people and the platforms to
platform people. If the team only works when you are watching, you have built a
performance, not a capability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expect sacrifices, and choose them consciously.&lt;/strong&gt; This build cost evenings,
patience, political capital, and ego. Ownership means some of what you own may fail
with your name on it. I would pay all of it again, because the alternative is a team
that dies a little every time someone resigns.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One last thing, and it is the part I did not expect. The most useful skill I took from&lt;br&gt;
these two years had very little to do with any tool. I learned how to build a capability&lt;br&gt;
in a place where the structure I needed did not already exist. That meant working out&lt;br&gt;
what was actually broken rather than what was loudest, finding the right people and&lt;br&gt;
building relationships with them, asking for resources and sometimes not getting them,&lt;br&gt;
managing expectations honestly, balancing a production fire against work that would only&lt;br&gt;
pay off next year, and creating enough structure for the team to move without burying&lt;br&gt;
them in it. I did not expect that to be the lasting lesson. It was.&lt;/p&gt;

&lt;p&gt;Remember where this started: live systems, no handover, no useful documentation, and&lt;br&gt;
everything important sitting inside somebody's head. Almost everything we built&lt;br&gt;
afterwards was aimed at making sure the next person does not inherit that same darkness.&lt;br&gt;
Which is the whole belief in one line. Build systems that outlive the people who built&lt;br&gt;
them, including you.&lt;/p&gt;

&lt;p&gt;None of this required genius. It required knowing why I was doing each thing, doing the&lt;br&gt;
unglamorous ones in the right order, and refusing to skip the boring ones. That is what&lt;br&gt;
building a capability actually is: planting trees, in the right sequence, whose shade you&lt;br&gt;
may never personally sit in.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.tmashininisekgoto.com/blog/building-a-data-science-team-from-scratch" rel="noopener noreferrer"&gt;www.tmashininisekgoto.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I write about machine learning engineering, MLOps and building AI systems in South Africa. More at &lt;a href="https://www.tmashininisekgoto.com" rel="noopener noreferrer"&gt;www.tmashininisekgoto.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
