The term “Full Stack” has been in common usage for the last 10 or so years to describe software engineers who are just as comfortable working across usually separate disciplines. The term initially referred to web development where the disciplines of “back end” development (primarily building infrastructure & API’s) began to separate from “front end” development (primarily focused on building user interfaces). However, the terms has evolved over time to refer to roles that require generalists, rather than specialisation.
Over time, the role of Data Scientist has also changed. As Data Science has matured, there are more and more technologies and approaches available to help organisations run more effectively. This rapid growth in the body of knowledge required makes it impossible to have both breadth and depth of knowledge across everything. For any Data Scientist planning their career, they need to consider whether they want to be a Specialist, or a Generalist and the value that each pathway will bring to them.
Disciplines in data science
There are an enormous number of disciplines to learn in the field of Data Science, each of which requiring a lifetime of effort to truly master. This includes:
- Data Management
- Classical Machine Learning
- Deep Learning (AI)
- Data Engineering
- Data Visualisation
- Reporting & Business Intelligence
- Consulting / Presenting / Influencing
The value of the Full Stack Developer
The value of the term “Full Stack” is that it implies that a “Full Stack” engineer would be capable of building an entire solution end to end, without the need for other specialists. While a team of specialists are likely to build a better solution, the capability for an engineer to go “end to end” on a project has a number of benefits for the organisation:
- Flexibility: I know that a full stack developer will be able to handle any task in the stack, so it is easier to utilise them effectively.
- Holistic thinking: By understanding (even at a superficial level) all elements of the technology stack, the full stack developer is able to better understand the solution as a whole.
- Lower management / design overhead: Managing teams is difficult which creates significant overhead for management. Having a single person go end-to-end on proof of concepts dramatically speeds up development.
The independence that full stack developers bring to a software development project is a major benefit for management, in particular in projects that are at the beginning of their life cycle.
The Full Stack Data Scientist
For the purposes of this article, I would define the “Full Stack Data Scientist” as such:
The Full Stack Data Scientist is a Data Scientist who is capable of delivering a data science project, from idea to production without the need to call on other specialist skills. Therefore the Full Stack Data Scientist should have basic skills in:
- Business Analysis: To understand the problem to be solved, and source data
- Data Engineering: To extract, transfer and load data
- Statistical Modelling: To model how data relates to the real world
- Machine Learning: To design, build & assess predictive models
- Data Visualisation: To communicate findings, predictions
- App Development: To make the analysis available to end users, via web / mobile / platform
- DevOps: To deploy the solution into a production like environment
A “Full Stack Data Scientist” need not be an expert in all these disciplines, but the core concept is that they have “enough” capability in these areas to deliver a project end to end.
The organisational context
Few organisations are large enough to run entire teams of data scientists, where specialisation is most valuable. For mid-market and smaller organisations, the prospect of hiring a Data Scientist is a major investment. The prospect of requiring an entire team to support a Data Scientist is enough to turn many organisations off building a Data Science capability.
If you are a Data Scientist with a single speciality, you really limit your employment options to those large very organisations who can afford to run an entire data science team (or consultants like us!). This also runs the risk of further pigeonholing yourself in that one specific area. When you are the expert at one thing, you tend to get more work in that area, further specialising at the expense of broader experience.
If you have a broad set of capabilities, you can be valuable to a much larger group of potential employers. If you can work independently and deliver projects without depending on too many other people, your capacity to deliver value is much greater.
Even if the idea of being a Full Stack Data Scientist doesn’t really excite you, it is still worthwhile building a base level of competence across full stack – even if it just makes you appreciate how challenging those disciplines are!