When I ran my first-ever machine learning workshops, I asked all of the new students why they signed up in the first place.
And one student, who we'll call R, surprised me by saying...
Because upper management said machine learning is important for next year's goals.
Now let me be clear: I've worked with R in the past, and he isn't the type of person who only does things because "the boss said so."
Data science is something he'd wanted to get into for a while, and it just worked out that the company was pushing towards machine learning as well.
And by the end of the workshop, R mentioned that,
Start[ing] a project doesn't seem daunting anymore. Pretty sure I can throw some code at a problem and come up with fairly good results.
Which is awesome (and why I bother teaching in the first place).
But the more I taught, the more I realized there was a problem my students kept encountering...
The people pushing for machine learning are the ones who understand it the least
In R's case, it was the boss's boss's boss that are the most adamant about utilizing machine learning and AI.
And by the time someone like R hears about it -
Especially if they don't have the skills to start a project or test an algorithm -
It can leave them feeling downright overwhelmed with their newly added responsibilities...and panicking because they don't know how to move forward.
But here's the thing.
The boss's boss (And everyone in-between) doesn't know how to do it either.
That's not a diss on their skills.
After all, machine learning is in every major tech publication these days, and they're doing their due diligence to make sure your company is up to date with the latest technology.
But here's the thing: Even they though don't know how to do it...
They are counting on you, the software engineers, to connect the dots to your work - and ask for what you need to make it happen.
Why machine learning is simple (but not easy)
Despite things like Alexa and Siri becoming commonplace in our everyday lives, machine learning is still not easy to implement in an organization.
Not to mention, it's easy to write machine learning off as...
Too time intensive to learn OR
But as R found out, any forward-thinking executive who pays attention to the news WILL ask you about it.
And learning machine learning is pretty simple, as long as you remember this simple rule of thumb:
Machine learning is just a set of algorithms that turns data into insight.
Meaning, all you're doing is taking a data set (x's and y's), and learning a function f that does one of the following three cases...
f(x) = y (Supervised Learning)
f(x) = x (Unsupervised Learning). Kind of like compression
max f_t(x) = y (Reinforcement Learning).
Scared by the higher math?
Don't be. A machine learning algorithm is linear regression, which you can learn in 57 minutes...
Probably faster if you can dust off your linear algebra skills.
"Okay, I know what linear regression is. But that doesn't explain how I turn this into code and make it real."
And that's...where us programmers get in trouble.
Because as much as it pains us to admit, lines of code written does NOT translate into productive work that make your company profitable.
And frankly, that's not what your boss is looking for when they bring up machine learning. They simply want to discuss the possibilities of how it can apply to your work.
They don't want vaporware, and I don't blame them or you...
So after working with R and the rest of my machine learning workshop cohort, I found that there are 5 critical steps to solidifying your use of machine learning.
Even if your boss isn't asking for machine learning, this process will help you center in on how to communicate and deploy your machine learning project.
Find the "why"
Simplify the jargon
Use a process to outline a project
Use visual aids
We'll go through each of these, one by one.
Step ONE: Find the "why"
Obvious advice, maybe? But always a good place to start.
Because machine learning isn't just another package that we get to download and implement with three commands in our terminal.
It takes time on your end to learn what exactly how to build a working prototype...
Let alone deploy it into a live production environment.
So the next time your boss brings up machine learning, take the time to listen to what they're saying...and start acting like a 5-year-old.
Metaphorically, of course.
Just keep asking them "why" until you find the goal they're trying to accomplish with machine learning.
This technique comes from Taiichi Ohno, pioneer of the Toyota Production System in the 1950s.
Instead of ignoring problems in the manufacturing process, he always pushed his employees to use this process to solve problems efficiently, believing that it was a valuable opportunity to reach the state of "kaizen," or continuous improvement.
Not sure how to start? Here's an example of how the conversation might go:
Why? Because our teams need to be able to derive insight quickly instead of by hand.
Why not by hand? Because our resources are limited across the company.
Why are our resources limited? Because we do things by hand instead of using code.
Why do we do things by hand instead of using code? Because that’s how we’ve always done things, and we’re stuck in a rut.
Why are we stuck in a rut? Because we aren’t making the shift towards new technologies, and to utilize something as powerful as machine learning.
Based on this method, now you know: Your boss is dying to get with the times and get the company on board with machine learning.
Step TWO: Simplify the jargon
Between LSTMs, t-SNE, and DQNs, there's a lot of jargon that accompanies machine learning.
And the truth is, you're not sure what those terms mean (and neither does your boss).
So before you completely write off your boss for using yet another buzzword, be honest and tell your boss, "I'm not sure what that means for this work, but I'll be happy to look it up and discuss it for next time."
And once you get back to your workstation, follow the 6 steps below...
Write down everything you know about the jargon term
Argue against the central points, question everything
Pretend to teach that topic to a classroom. To challenge yourself, pretend you’re in a kindergarten class, and you have to use simple words and sentence to explain it
Look at other sources to see how other people are teaching or describing it
Reduce it down into an outline of simplified concepts and analogies
Present the outline to your boss the next time you talk
These 6 steps are a modified version of the Feynman technique, which is designed to "to convey information using concise thoughts and simple language."
When we speak without jargon, it frees us from hiding behind knowledge we don’t have. Big words and fluffy “business speak” cripples us from getting to the point and passing knowledge to others.
~Taylor Pipes, Evernote
This technique allows you to be comprehensive in your research...as well as communicate it in simple terms to non-technical stakeholders.
Once you understand the jargon, you can start to understand how you can apply machine learning to your work...and begin a real dialogue with your boss.
Step THREE: Use a process to outline a project
Once you and your boss are on the same page, you can start about the fun part: How to actually implement machine learning.
It's pretty evident: You have a problem that your boss believes can be solved with machine learning.
But instead of jumping into coding right away (and having everything fall apart)...
Start with a process.
Plus, it's designed specifically for machine learning projects.
The steps, which are based off Georgia Tech's user experience design life cycle, are:
Needfinding: Determine what the customer needs or wants.
Data Collection: Brainstorm, collect and design new data structures or process
Prototyping: Build a working prototype based on the design.
Evaluation: Analyze the prototype with statistics and qualitative anecdotes.
Note: None of this is meant to go into production yet unless you want a server crisis on your hands. If you're new to machine learning, make sure this stays in prototype stage until you get additional feedback.
By following a process, you'll start to understand how to break this goal into tangible pieces...and move forward into coding.
Step FOUR: Use visual aids
If you followed my machine learning project process above, you probably found some interesting findings by now.
And while there are a dozen problems you can run into between those steps, you should at least know one thing...
Whether you should proceed with the project, based on the data you've gathered.
And remember...your boss has been talking about machine learning for a long time.
If you have something that's usable, you're going to want to prove it to them.
And if you don't have something that's usable, you're still going to want to prove it to them.
Regardless of their past technical skills (or lack thereof), the last thing you're going to want to do is send them a table of number values...
a 3.597020 b 5.982451 c 0.003964 d 0.987381 e 14.083294 f 0.001436 g 36.352898 h 0.357168 i 0.361236 j 0.442614 k 0.210225 l 10.996910 m 3.246928 n 0.984530 o 0.039655 p 1.333996 q 17.496591 r 0.000000 s 3.521701 dtype: float64
When you could send them a visual aid showcasing the same exact thing.
Trust me, your boss will appreciate it - and you'll get much further in trying to prove or disprove whether the company should proceed with the project.
Step FIVE: Counter objections
Up until this point, everything has gone well with presenting your idea...
But maybe you've come to a point where you're going to need more than that your boss's enthusiasm to put this prototype into production.
Whether it's additional money, time, or buy-in from other stakeholders, you're bound to get a few objections...
And you're going to have to find a way to convince them to let you move forward.
At this point, you've presented your argument in the best way possible, so here are 4 tricks I use to get the buy-in necessary to move forward with my machine learning projects.
The "Yes, and..." technique
Let's walk through them, one by one.
1. The "Yes, and..." technique
If you look at this clip of the Apple conference in 1997, you’ll notice that someone immediately challenges Steve Jobs.
You’ll also notice that he agrees with them...before he moves onto his next point.
It’s a technique used in improv, where you can gain favor and create new possibilities simply by agreeing with whoever objects before you start your rebuttal.
2. Motivational interviewing
Motivational interviewing is a great technique if someone agrees with the need to do the work you’re proposing...
But has a hard time giving buy-in due to the time investment necessary.
So ask them, “On a scale of 1-10, how important is it to do this project right now?”
"And maybe they’ll give you a number like 7 or something.
Then, follow up with by asking them, “Why isn’t that number lower, like a 5 or a 6?”
It will catch them off guard, and they will start to justify their answer...and maybe "talk "themselves into the reasons WHY it’s so important.
3. Future pacing
Future pacing is a great technique for seeing the future transformation IF someone were to take action right now.
It's easy to do if you went through the 5 Why's exercise (See Step 1), and have the data to back up your point.
Future pacing can be applied to machine learning in the following ways...
"Right now we have a model that does 80% accuracy. But if we keep working on it one day a week over the next 6 months, I think we can get closer to 95%. Once we get to 95%, we can build a new product line around those findings, and 5x our revenue goals for the following year.”
Pretty powerful stuff, right?
But be careful with it. You’ll come off like a used car salesman if you rely on it too much.
Anchoring is a technique that works by setting the bar higher than normal.
You see it all the time with prices.
For example, let's say you go into a store...
And notice a $2500 suit marked down 50% off. What a great deal, right?
By anchoring the original price at $2500, you think you’re getting a great deal...when in reality, the suit probably cost only $500 to make.
That is anchoring in a nutshell.
How does it apply to machine learning? Well, the biggest obstacle to getting support on a machine learning project is time, so I tend to use anchoring a lot if someone is resistant to putting the investment.
For example, I usually compare the investment of building an algorithm to activities like manual coding or shucking cells in Excel...
Which will take more resources over time than if someone coded it programmatically.
By using manual coding as an "anchor," you can convince the stakeholder that it's worth the long-term investment to invest in machine learning, even if it seems like too much work in the short-term.
And now, a recap
We covered a lot, but if you want to apply machine learning to your everyday work, you're going to have to get the bottom of why your boss wants it in the first place...
At least beyond, "Because I read about it in Forbes."
To do that, follow these 5 steps:
Find the "why"
Simplify the jargon
Use a process to outline a project
Use visual aids
Handle objections, using the 4 techniques I provided above:
The "Yes, and..." technique
If you do these things, you'll be well on your way towards becoming a technical expert on machine learning - and help your team and company accomplish their goals.
Still confused about the nuts and bolts of machine learning (Like algorithm selection)? Sign up for my free email course, where you'll gain the confidence to start a machine learning project.