I’m not the 10x developer I thought I was.
For years, I‘ve believed that I was a great developer because I was more efficient than others. I knew what shortcuts to take, how to give precise time estimations, and deliver on time, almost every time.
I was proud to ship and display dozens of diverse side-projects on my website. I ranted about communication inefficiencies on Medium. And, most dramatically, I accepted several freelance gigs based on how the client agreed to communicate with me, rather than on my motivation to work on their project.
Why I don’t answer most phone calls
I wrote this article because many people don’t understand why I don’t pick up their phone calls, and why I love emails…
Today, I realise that this belief of being an efficient developer is not only pretentious, it’s an illusion I’ve been hiding behind for years.
Don’t get me wrong. I definitely love to develop software products. And my many years of experience do bring a lot of value.
I also love to define and sustain processes that allow people to work together efficiently, regardless of their location, their level of skill and experience, and the number of mistakes they make. (e.g. Agile / Lean methodologies)
Today, while replying to the teammate of a 2-month project, I came to the idea that, maybe, I had been lying to myself for years.
Yes, I had just said “no timeline in mind.”
The fact of replying this phrase may seem unimpressive to you. But those who know me well would be surprised to see me letting go like this.
I’m still feeling pumped about that experiment I’m working on, and confident that it can bring a lot of value. But surprisingly, this time, I don’t care about how much time it’s gonna take. I’m going without an agenda.
This time, I don’t care about what my teammate will think of my efficiency as a developer. I’m just gonna do it, enjoy doing it, and see where it leads us.
I think that, for years, I’ve convinced myself that I was an “efficient / no-bullshit developer” (a.k.a the “10x developer”). Not because I am!
I have used this story as a plausible excuse to not deal with my insecurities.
The fear of being trapped in the “scope creep” loop of a never-ending project, spending hours talking on the phone or in meeting rooms instead of coding the project.
Not feeling self-confident enough to take important decisions and risks.
And having a hard time trusting others, and believe in their good intentions.
So I was displaying myself in a cold posture to clients and teammates: “Send me the most concise and exhaustive brief you can do. Then shut up, let me ship it fast, and please don’t forget to tell me that I did great.”
While this promise may sound compelling for clients, it is also not the best way to create a quality relationship. And definitely not a good way to create valuable products.
Software products and their development process are made of uncertainty. And, yes, working on something uncertain requires us, humans, to communicate, take decisions, and thus, spend time doing that, instead of actually writing code.
And, yes, these discussions can be irritating or frustrating sometimes. But some of them are necessary and important.
If I’m running away from communication, I don’t think anymore that it’s my clients/colleagues’ fault.
It’s my fault.
If I want to keep coding on exciting projects, I need to stop excluding people that will get me out of my comfort zone. I should rather be more specific about what projects and domains excite me, and find the sweet spot between being open to suggestions, and decisive on what I think is right.
If I want to craft and ship great products, I need to fight my insecurities and become a better communicator, a better teammate, a better human.