I just finished up at my last company, where most of my time was dedicated to leading, educating, coaching, and mentoring specialists in tech roles doing product work, and founders hiring them. On exit, I decided to share the top 10 things that I had learned up to that point, which I shared with the company when I started there.
I’ve learned a little bit too in my time there, so now I’ve updated them, based on those experiences.
As I’ve been doing this kind of work for ~30 years now, I’ve collected together some observations and patterns that hopefully provide a bit of insight into what it is like to operate in the tech industry, specifically in the space of “making” products, particularly in the zero -> one, and one -> two startup spaces.
Full disclosure, I am no saint, by any means. I myself have succumbed to ignorance of all of these things in the past, as I grew up in the industry. I now look back and think, I’d really hate to have met myself as I was back then, he was a bit of a dick.
As a proud maker of things, software and hardware, and working with and leading others who make things, I wanted to share the top items on my list. (It is by no means exhaustive)
This is to the “makers”:
1. It is a kind of magic
Our job (in product engineering) is literally to create something from nothing.
“Nothing”, being: the only ingredients are: ideas, impressions, maybe a vision or direction, observations, purpose, and a strong will to create something desirable that improves the lives of those who use it.
It is people who make products, not plans or processes.
Like every other “designer” in the world (as opposed to an “artist”), “makers” do all their work within constraints (e.g., time, money, resources, tools, markets, legal & ethical frameworks, personality types, environment, economics, etc.), and we don’t always have all the things we may want to have, nor need to have to succeed at delivering the outcome we may have wanted to deliver.
Thus, it is hard to succeed at creating the “perfect” thing, or even something that actually works, even if we are given that opportunity — which is often rarely the case.
So, go easy on yourself. It takes many attempts at it, to refine and get this kind of thing right, for even the smallest detail.
Ironically, I think its the small details, that many business people prefer to forget to appreciate about their product, when the chips are down, that actually make the notable differences from customer’s perspectives.
2. Don’t go it alone
You will dramatically increase the chances of building enduring and complex things that work for other humans, by working with others in close-knit and highly diverse teams, together.
Going alone feels (to a “maker”) to be the quickest way to get something done, and it is — to a degree, in the short term. But it is fraught with all kinds of pitfalls, and omissions you just can’t see at the time.
We learned long ago in this industry that to design and make something enduring and desirable and viable that has general appeal to a large market, requires diverse thinking, and other things that a single person has plenty too many blind spots to. You only get great results when a bunch of people put their minds and perspectives together, trust each other, and risk something together.
Little dirty secret: Leading and working with other creative people is a pain in the ass (in general), but that’s only because the alternative of working on your own, is so much easier — duh! When working alone, you don’t have to trust anyone, be challenged on your beliefs, be forced to change your mind, nor improve yourself in ways that may matter. Working with others requires vulnerability, ontological humility, and intentional self-growth, and that is uncomfortable to many people.
All good ingredients your customers want to see you put into the products you make for them.
3. The real hard part
After ~30 years of learning a galaxy of things in a multiverse of technologies, I can emphatically tell you that, hands down, that:
Technology is not the hard part about making digital or physical tech products. Working effectively with other people is, by far, the hardest part.
And it only gets harder if those people cannot (or don’t want to) work together with you (or perhaps feel incompatible with you in some elitist or hierarchical way).
Instead of wasting your time with people who haven’t yet pushed themselves to learn how to work together collaboratively, go find people who have done that hard personal work on themselves, who do “get” that concept, and admit their biases and blind spots. Frankly, who are adult enough to welcome and nurture you for your unique contribution and perspective as you are, at your age and stage, to their endeavor, — despite what you bring being different to, or even, in conflict with them. They help you grow.
Teamwork: is about sacrificing yourself to make the team succeed on the mission, and bringing strength at times and in places when other teammates cannot — what ever the reason at the time.
Team Leadership: Everyone in a team has the chance to lead at one time or another, even novices. Leadership isn’t about being the head of the tribe. So, don’t buy the bullshit that a team has a single leader who does all the “leading”. That is not a team.
Leadership is defined by a followship. In others words, if no one is following, you sure ain’t leading!
Nor is a team a group of people who work in isolation from each other on their own things, towards a so-called “common goal”. That is a “workgroup”. Those people are actually incentivized to compete with each other to do their part only, and they will only collaborate when it suits their individual needs to do so.
4. Stop telling me what to do!
You can’t force anyone to do or to learn anything in this world. All you can do is inspire them to do something different, to try something new, or to try to improve what they are already doing — and that’s how they learn to improve themselves.
Yes, you can try and use manipulation, fear, or coercion to get what you want, but you’ll get a far worse or diluted result, as a result.
Instead, show them “what” the real problem is, or the real “why” something needs to be done, and ask them to help you resolve it.
Provide the context, not the solution.
If you order someone to do something, you’ve just robbed them of the impetus to accept the responsibility for it being done thoroughly — well — or at all!
If you are a parent, and you order your teen to “tidy your room!” because you can see rats or mold about to happen in that mess under their bed. Then who is the one going back to the room to check it is done satisfactorily, sometime later?
If that’s you, then who took the responsibility for that thing getting done properly? Yeah, you did, the parent. Not them the child learning to deal with the real world!
Creative people enjoy the actual pursuit of learning. If they can’t do that, they are soon to be leaving you and your project, company, or leadership.
Creative people want to discover the secrets to producing their magic, themselves. But you can’t tell them how to do that. It is the pursuit of this discovery that they enjoy the most, and it is necessary to teach them the hard lessons they need to learn firsthand.
As a parent, ideally, you want your kids to be “kids”, and to make mistakes through trial and error - and then, learn from those mistakes themselves. What you don’t want is: those trials to be so severe that they kill or cause permanent damage to your kids — fair enough. So you protect and forbid from those extreme things. But most things do not have that potential at all. It’s an internal battle of your fear, you are fighting — which is a selfish position to not teach important lessons that should be safely taught.
Unless you are an expert (and patient enough) at guiding people in new tricks from step to step (on a well-defined path), all along, watching the light bulb go off (which some people can do very well). Then, the best you can do is arm them with knowledge of different ways/techniques to try and give them the confidence and support to try something different safely that leads them to discover the next step to get there.
If you are not getting this kind of inspiration yourself, in your work, then you are probably not learning. It's time to move on. There are plenty of people with the humility to share what they have learned with you.
5. Ideas are overrated
Most of my ideas (and most of yours), no matter how good they are, or how well informed they are, no matter what experience I have, or you have, no matter how much you know (or think you know), those ideas are probably not going to “just work” in any given market. Markets are not predictable.
Even if your ideas do happen to work (to some degree) in a given market, then the chance that the idea is delivered (as envisioned) fully the first time around is inversely proportional to how confident you were about your idea working in the first place.
Resist ideas taking hold of you, and then being owned by them!
“People don’t have ideas. Ideas have people” — Carl Jung.
Dabble in and entertain all ideas by all means, but understand that making them work well in specific markets takes many focused iterations, driven by actual evidence in market. That is the single most counterintuitive thing to learn about making things for people, particularly domain experts who believe they have experienced the universal truth through their own personal experiences.
Much of what you think works (or should work), counter-intuitively, does not, and that is usually due to your overconfidence in your own narrow experience in a specific area.
6. Development?
Product Development and Software Development are different in almost every dimension — other than the fact that they both involve writing software!
I’ve written at length about this apparent “paradox”, both from the business angle and the technical angle.
Programming languages (and some tooling) are the only common factors across all companies making software— but the business models and contexts that they are used in, are always very different.
What follows from there on, in how things are actually done, and by whom, is a direct result of the specific context you are in.
You need to recognize the different contexts and act accordingly.
Programmers (or even worse, ex-programmers) seem to be THE most careless people of all at conflating these contexts. They just assume because the skill translate, that all other factors are the same. (probably because some see the programming language being the only factor in common).
7. Know what you don't know
There will always be someone better than you at everything you do - learn to live with it, and embrace it.
I used to think that I was a great programmer after my first 10 years as an engineer, until I worked with the engineering excellence teams at Microsoft, and there I immersed myself with many of the best in the world — it blew my mind that there was so much more than what I had encountered, and that I would probably never reach the level that some of those people were operating at.
You quickly learn that there is so much more to learn than what your own experience has shown you, and what extents others may go to that you may not wish to go to. It is your choice to compete against it, learn from it, or quit doing it altogether.
Fortunately for me, I did the hard thing, and kept with it and in my last 20 years I’ve learned things that most programmers will never learn before they give up, and move sideways.
An excellent technique to proceed here is to practice ontological humility and find out what others see that you don’t.
p.s. You can absolutely live and prosper in a world where you are not the world’s best at something. The world is a very large place, why not try moving somewhere else to find that out yourself? It is pretty self evident.
8. You are not there yet
You don’t really know much until you are 35 years old!
And, if you haven’t become a parent by that age, then you still have a long way to go in your pursuit of taking responsibility for others, and developing your own humility around others.
Many people accept the science that your prefrontal cortex is not fully developed until your mid-20s. (apologies to the over-confident 22 year old's!)
Inconvenient truth: Many people in tech industry (particularly developers, designers and product managers) think that they are operating at a “senior“ level after just four and five years in the workplace! (whereas, they’ve only just become “advanced beginners”).
Many in those those “crafts” then hit a difficult hump after (about 5–10 years) and in response to that hardship they give up. Then seek higher-paid management roles, or adjacent roles. Long before they can really master the secrets of their craft.
They may have only just become “competent”, and, as such, maybe frustrated that there is so much more to learn that they haven't experienced yet. Very convenient to try and ignore as not applicable to your journey.
For developers, designers product managers they learn the hard way that there really is no perfect and “universally right” way to do anything in their job. That is very intimidating and confronting for some of their overconfident egos.
Instead, they seek positions to control others like them, on their own learning journeys, rather than push themselves through this hump and learn more than just their way. The Dunning Kruger Effect describes this stage perfectly.
Even worse, many of those people hold others back to only what they learned up to that point. What else is there to learn after all, beyond what I learned? I talk a lot about how that specific aspect sets back a lot of tech startups, by hiring competent programmers, as underqualified and omnipotent CTOs, who will never hire above and pay above themselves.
As a result of over-confidence (specifically) in our industry, far too many tech people are “dying in ditches” that they seem to want to defend far too early in their careers (only based on their experiences of what they think is right and wrong).
How are you dealing with the Dunning-Kruger effect in your career?
I’m going to caution you, to pick your battles carefully (before that age and stage in life), after which you can enjoy the uncertainty of knowing that what you think you know or have experienced probably isn't as generally useful as you might think anymore.
9. Learn to learn more
If you want to learn more, then you have to surround yourself with people who will challenge and stretch you and teach you more than you could learn yourself. It will hurt, and you will grow.
Try to identify when you are becoming the “expert beginner” and do the hard things to make sure you are not “that person”.
Many organizations, large or small, are littered with “expert beginners” at all levels. These are hard to spot at first. They are often revered as “the” person to go to for that “thing”, who might be truly valuable to an organization at some point in time.
We tend to think that because we they are so knowledgeable or skilled at that thing, that they MUST be knowledgeable about other things too. We hope they have that humility, but its often not the case. This is actually Dunning Kruger all over again, except that the blind spot is in our expectations of them, not necessarily in their over confidence. We should not assume that being expert in one field makes you expert in other fields. But many people who are experts in one field do think they can becomes experts in other fields too — without putting the experience or work into that other field. Thus they might have the same expectation of others.
Expert beginners are grown by: novices becoming experts in some narrow domain (“narrow” because broad domains are not so easy to adopt dogma, and built moats around, as narrow ones are). Then the novice, over the years, practicing and re-practicing over and over again the same things that they establish that area as the truth. We talk about the difference between learning a different lesson every year for 10 years, versus learning the same lessons 10 years in a row. Big difference.
In some organizations, expert beginners might have even survived years or generations of others who have come and gone in their area, who have tried to challenge them on that area, but who failed to and have since left that area — usually, exasperated. This expert then sees this expert position as their necessary contribution to the organization — it defines them to some degree. This reoccurrence of challengers coming and going, simply strengthens that persons resolve in their position as the expert in that specific field.
Unfortunately, they never are in fact challenged to learn anything else new or different and never adapt themselves to be open to new ideas. So, they “become” the universally truthful answer on all thing related to that topic. Which can be fine in some domains that do not change over time. But if things have to change, say, because that answer no longer works in the new environment, because things might have moved on, then the expert beginner starts to be an impediment to change, and its a siege. The expert beginner, won’t see that adaptability is necessary, as they have the universal truthful answers, and they won’t adapt and move on themselves. Unfortunately, to move forward, they often have to be forcefully removed.
10. Presenting your ideas
If you present anything to any people, remember your first priority is to entertain!
Only, then might you be lucky enough to inform, inspire and thus teach them something new, or that there is something new out there, that they need to go learn about themselves!
