When it comes to new technologies like Artificial Intelligence, the pure technology is only a small aspect required to putting it to use. Still, given the hype that exists currently, one can easily loose sight of the big picture as announcements of new algorithms, toolboxes, or cloud services fight for grabbing our attention as the next game changer. The field itself can also feel quite overwhelming at times, as it is always expanding and keeping track of all the developments seems impossible for one individual to do.
There was a time when a single individual could cover all the bits and pieces, but given the explosive expansion that this field has been going through these past years, I think it is becoming more and more challenging. So this is my attempt to draw a bigger picture of how different roles and levels fit together to “do AI” in an enterprise setting.
All The Levels of Doing AI
So, let’s start at the very bottom, and slowly work our way up in the hierarchy.
At the very lowest level you are using some programming language to actually write code. Most people right now use Python when it comes to data analysis, but there are other contenders like Julia. This also the level where you’ll find the libraries like tensorflow or pytorch that are frequently used to implement ML algorithms.
With code, you put together machine learning or artificial intelligence algorithms (don’t ask me about the difference). Almost all of the research in ML works on figuring out new learning algorithms. There is tremendous depth to this work as you draw upon mathematics, physics, biology, optimization theory, differential equations, statistics and many other techniques to create new algorithms. Essentially enough to keep you occupied a lifetime.
Using the AI/ML methods, you write programs that provide some functionality like click-through probability prediction, computer vision, or document classification. This could be a program that is run once per night, extracting data, training a model, computing predictions and store them somewhere to be picked up. Or the program deploys a model you can query via an API. This is the part where the productionizing (is that even a word?) of AI/ML happens. Here, you’ll find both machine learning experts and data scientists, but increasingly also data engineers, and you work with tools like Apache Spark that provide infrastructure for data processing.
You design these systems usually not just for the fun of it (although that is a good reason, too), but to create a product that solve a problems for the customer. This is the domain of product managers that have to make the connection between what the customer wants or needs and how to use AI/ML technology to solve the problem. At this level, the question whether the whole effort is worth is financially also starts to become more important. After all, maybe a good enough solution does not involve AI/ML at all.
All of the above does not magically happen (well at least until we have AIs that can code), but there are teams of people working together to deliver the product. Team leads and managers work on this level, helping people to excel at the job they are expected to do (well, at least that is my understanding). Managing mixed data science / engineering teams has its own challenges, mostly coming from the increased amount of research compared to classical software development.
It does not stop there, as we move from a single team to a set of teams, new questions arise. What kind of common infrastructure do we need? How can we support multiple teams to use AI/ML? Or also, what is the overarching strategy to pick AI/ML topics for multiple teams? What kind of company do you want to run? Here we’re talking about strategic leadership, and depending on the company size this might come from a CTO, VP, director, or pick-your-senior-management-title.
All Levels Need To Work Together
The above is one, admittedly massively simplified way of looking at how things need to play together at different levels to “do AI.”
I think at the end of the day, every level is important to make it work. For example, you cannot have excellent strategic leadership but then no one at the bottom who knows how to code. Likewise, if you have excellent product managers and data scientists, but the strategic leadership is missing, then each team is on its own and you don’t make the right overarching decisions, or make sure that the right decisions are made on the organizational and infrastructure level to optimally support the teams.
Given that this whole area is still very new, it is also quiet difficult to find the right people at essentially any level. Finding good data scientists is already challenging, but so is finding data engineers who have experience with running enterprise scale data infrastructures, product managers who have deep experience with data driven products, and so on.
Ideally, you probably want someone who has risen through the ranks and knows all levels up to where they are right now inside out, but again given how new the area is, these people might be really hard to find.
I’ve also made the observation that everyone seems to have a level they naturally gravitate to. For example, it is not uncommon (and perfectly ok) if someone really enjoys working on machine learning algorithms but finds productionizing ML systems tedious and boring, and so on.
Why is this Important?
So why all this? I think it is important to understand that all these different levels need to work together well to create value from AI/ML, and that knowing where you are helps you to focus and worry less about all the things you are not doing. If algorithms is your thing, then by all means focus on that. If strategic leadership is more interesting for you right now, don’t feel bad you’re not following all the latest variants in network topology. Of course you should keep the big picture in mind and collaborate with people on all the other levels, and not ignore everything that is happen elsewhere, but not a single person needs to be able to do all that.