As an engineer myself, I’ve built and sold products since I was 14 years old. I have lived 10 years in Silicon Valley and had the chance to talk to hundreds of engineers over the last 20 years. Most were located in the US, India, Latin America, France and Ukraine. Everyone is different, to a degree, but people have common patterns. Engineers do.
In order to help managers, CEOs, and anyone working with engineers looking for a better and more effective relationship, I’d like to discuss those patterns. This article could also be useful to engineers looking for some self-awareness, to see the bigger picture, or be willing to debate the points addressed in this post.
Engineers pushing back on novelty
Aren’t engineers supposed to be at the core of innovation? Well, in reality, I’ve seen two categories: the followers, and the inventors.
School rarely teaches you how to think outside of the box, it mainly teaches you how to decompose a final product into pieces to understand how they work together. It’s up to engineers and their personalities to either make/tweak existing products by replacing components with better versions or create new ones totally from scratch. From my experience, I estimate there is about 15% of innovators for 85% of inventors.
The inventors will push the limits of what is feasible, and will give birth to product innovations like smartphones, personal computers, rockets that can lend, and the others will most likely maintain these. The difference is actually very thin between the 2 as often, an existing version of product is reused, but key innovative components would be added to make it a revolutionary update (think electric cars).
For my second startup in 2010, I wanted to create a simple way for people to record themselves live, and online, pause/resume the recording, and instantly preview it afterward (which were all big challenges at the time). The goal was to add a video recording of job applicants answering pre-listed questions for each role they were applying for and cut on screening time.
Unfortunately, I had no idea how to do any of this and spent days doing research. Despite my multiple attempts, I had to come to the conclusion that no public documentation existed and that I would have to assemble multiple existing pieces together and create such solution myself.
Most of the engineers (and maybe people in general) would give up right there. They would conclude that the technology isn’t available, and can’t be done because “they’ve searched and couldn’t find anything”. Instead, They would suggest to go with an already built solution that doesn’t answer all your needs but most, or forget about the product/feature altogether.
This is when you have to push back as a manager, and challenge the conclusion of the research. We are so used, as engineers, to just look for answers on Google and reuse what has been done by one of our peers that if we can’t find a proper documentation on something else, we unconsciously assume it’s impossible to create. As a manager, it is the right time to introduce new perspectives and fight the mental barrier. Help them assemble the pieces of their research together, remind them of where they’re coming from and how much they were able to learn and that the answer doesn’t have to exist, that they have the capacity to come up with one. It’s the perfect moment to give them the confidence they need in order to realize, that they might themselves, create something no one else has done yet.
Build confidence and trust
After concluding that I’d have to build the live recording/streaming myself, I looked at existing solutions (looking at you YouTube and brand new streaming feature on Netflix) and convinced myself there had to be a way of building what I wanted since these guys already existed.
A month later of trial and error, I had built the recorder with all the features I wanted, without any experience with the components I’ve used. I wrote a Flash/ActionScript recorder accessing the webcam and microphone, created an infrastructure using AWS, EC2, installed and set up an Apache Streaming Server, and started live recording, with instant post-processing, compression and storage on S3. I just had created some kind of godfather of the now Twitch of this world, and had no idea about the potential of such solution…but at least, our startup was able to keep moving forward and finalize the product.
The point I’m trying to make here is to sit down with your engineers (or yourself if you’re the one) and push for confidence and creativity. First, make it clear that you’re not going against their conclusion nor doubting their skills; you only want to have a better understanding of the roadblocks and want to work as a team. You don’t want them to feel like you’re pushing back, it’s on you to clear the negative feelings before going further. It is important to make them realize the discussion is not about them, but about a product you want to build together and from the same side.
Here is my how to overcome the next part of the discussion:
- List all the technical reasons stopping the idea from being built
- List all the logical reasons stopping the idea from being built
- List all the skills missing stopping the idea from being built
- List all the already existing technical solutions that overlap in some ways with what you’re trying to build (think video recording for live streaming)
- List all the products these solutions have created (like Netflix and Youtube in my case)
- Help your engineers identify and explain to you the gap between these products and yours by asking them questions on how similar/different they are
- Make them list in a logical way, based on everything listed, what would be the right approach if someone else wanted to build it. What existing tools would you start from? What is actually needed to fill the gap? Is it more code? a different infrastructure? A protocol? A different bandwidth? User education?
- Insist on combining/tweaking existing solutions to get as close as possible to yours and highlight how the gap to get where you want your product to be is now clearer. Can this be filled with internal resources? Is an expert in a certain field necessary?
- You should now have a clearer vision on the next steps to achieve what you’re looking for. Removing the unknown, should have reassured your engineers.
By helping your team to remove their ego from the equation of being responsible for the final product, you push them to unconsciously stop worrying about their own skills, the time it would take, motivation to do it, etc. You’re talking only to their logical brain and make them focus on what they’re best at: problem solving. At this point, it is clearly possible to identify one of the three following issues:
- Your innovation is clearly impossible (Can human breath in space without a spacesuit?)
- Your company lacks the skills required to achieve the idea
- Your engineers can do it but are uncomfortable with their existing skills and not motivated to get out of their comfort zone
The last point is the hardest to deal with but the most common. Hear me out.
You could be in this situation for many reasons. You could be dealing with makers who’ve never been thinking like innovators. Your engineers could lack the confidence to tell you they don’t have the skills and could be scared of losing their jobs, or they could be afraid they would disappoint you and themselves because they’ve never done it prior, or they just feel overwhelmed and don’t know even where to start. It’s on you to identify the true emotional and practical reasons you’re facing this situation, and if it can be overcome by active coaching or if you have to hire someone else.
Different approaches that could allow the project to move forward
- Help your engineers find the confidence they need by listing all their accomplishments.
- Insist that the gap between existing innovations and yours is small and can be achieved somehow
- Find out which personality inspires them and remind them that these people are just humans like us. Normalize who these people are, and that they can too build whatever they want if they put their mind into it (limitless is a good book for that)
- Make it a fun hackathon with 1-many teammates and only have them focus on removing the gap. Bring the lists made prior. Forget about the whole picture, just laser-focus on working on a potential solution by using the skills they have, plus finding out how to acquire the missing skills then re-using what exists to build what you want.
- Take them in a group activity where they have to be creative, and more art oriented than logic, in order to stimulate their imaginative side.
Real-life example: Install an Online ordering in minutes
While working on Trackin in 2013, I quickly realized that restaurants didn’t have time to re-create deliveries manually in our system after customers placed their orders. So I decided to develop an online ordering system on top of our technology, to help restaurants automate data entry, provide a better customer experience than what existed and to allow Trackin to grow even more.
This was my thought process:
- Technical reasons to stop: An online ordering needs to be a website, with a domain, its own database, its dashboard, and a payment system. Trackin has a feature to manage a restaurant menu, but very basic. Living in Silicon Valley, I wasn’t aware of any company doing it differently. How to provide restaurants with an online ordering system, connected to Trackin, without having to deal with any annoyances related to managing/selling websites?
- Emotional reason to stop: None, quite the opposite, I was exhausted by selling websites and dealing with customers looking for one (I used to do it from my 16 to 23 yo), and I wanted to automate it.
- Solutions that overlapped: Stripe was growing in the USA, Wix, WordPress, Shopify, Doordash, Postmates…and then I thought about Optimizely, Twitter follows and Facebook like buttons embedded everywhere in multiple solutions.
- Innovations they’ve created: Some solutions were centralizing the creation and hosting of websites (WordPress, Wix…), others were grouping all options on one website (food delivery marketplaces), and the last ones could get people to follow you, like you or control your website appearance without writing any line of code on your own website (optimizely, FB, etc).
- The gap: I decided to focus on the solutions that were controlling your website remotely, just with one line pasted in one of your page. I had no idea how it worked, and I had no idea if it could work at the scale of an online ordering system where a fair amount of data and multiple pages back and forth come into play.
- How to execute: It would be important to define a section on the website that will inherit the online ordering (using an anchor) for the script to target where to inject the new pages. Only very basic frontend knowledge would be require from my potential customers. If not from an anchor, adding automatically a fullscreen iframe on top of the existing website with configurable CSS would keep the customer’s trust and not disrupt the experience.
Using this list, it was really easy for me to identify the next steps regarding skills, potential challenges, and unknowns. I first looked at the code Twitter and Facebook used, and made sense of it. Applied it for my needs (wayyyy bigger needs) and solved one problem after another until it fully worked. I also thought of how Optimizely was able to control your website from a an external dashboard and thought the same was possible to manage restaurant menus.
With this approach, you quickly realize that innovation is often a list of unknowns mixed with a lot of existing knowledge that is used for something different. That can be overwhelming for most, but as you execute, and focus on one problem at a time, you’ll realize it’s 20% innovation and 80% solving a bunch of minor issues that were already solved by others, in a different context. This is where, as an engineer, you need to use your capacity to analyze how something works, so you can tweak it, take any component you’d need in your solutions and adapt it for your own needs.
Hope this was helpful and feel free to ask questions or reach out if you need advice or facing different struggles. I’d love to help!