One of my first memories was sitting on the bed in the office/guest room of my childhood home watching my father attempt to repair a big 90s beige computer that must’ve been bigger than me at the time.
My dad was tinkering, trying to figure out why some peripheral was no longer working correctly. I asked him why we could no longer see anything on the screen (I loved playing Mario on DOS) and he told me very simply: “I have no idea”.
That memory hadn’t struck me as particularly important until quite recently as I’ve been establishing a training plan for new developers and I was researching what makes a good developer.
How we grow
I like to think I’ve had success helping developers grow over the years, but looking back at it, I don’t think it’s ever been about learning technologies.
Every costly mistake that was made on software I’ve worked on, either by myself or others, was never due to a lack of technical knowledge. It was never because someone was not well-versed in whatever fancy design pattern the latest trendy blog post was advertising.
I think it was simply a lack of honesty.
I’m not using the term “dishonesty” since I don’t think lack of honesty necessarily comes from nefarious intentions, simply that dealing with other professionals, especially more experienced and/or outspoken teammates, can be a challenging endeavour.
Being honest with yourself
The imposter syndrome is a symptom of lack of honesty with yourself. When dealing with other professionals, don’t trust your gut feeling telling you how out of place you are. Think logically about what you do. As illogical as it is to think that you’re the best at everything, it is not reasonable to assume that you’re not at the very least good at something.
Of course, public recognition by your peers is much easier to believe in than allowing yourself to think you’ve improved without getting feedback — who among us goes back home at the end of the day patting themselves on the back?
Being proud of small wins is not something to be ashamed of, nor is being disappointed in yourself for mistakes. Whatever you are feeling, say it out loud. “I should’ve done X”. “I did something awesome with Y”. Once you can admit to yourself your rights and wrongs, share them with your teammates. They’ll either tell you that what you did is great or that you made a common mistake that they’ve done as well.
Every morning when you come to work, tell people how you really feel. They’ll be happy to know you’re having a fantastic day but they’ll also be there to support you when you’re not. This forces you to self-reflect and if you find that you’re starting out most days being unhappy, it might be a good idea to look at what’s missing.
I’m not advocating for a “feeling hour” every day; what I’m suggesting and what I’ve been doing is being as upfront as possible with yourself and ultimately with others.
Being honest with others
Technical debt is the most flagrant example of lack of honesty with others. No one likes to tell their project manager or their client that they won’t be able to code all the features in time because they need to rework some code so the project looks less spaghetti.
The single biggest professional improvement I’ve made in the last few years is raising red flags when I get asked to evaluate how long a feature is going to take. Not by waiting after the meeting to whisper to my teammates that the next 4 weeks are going to be a nightmare with overtime and hitting up recruiters on LinkedIn but by looking the project manager in the eyes and telling him quite clearly “I have no idea how long this will take”. Most of the time I see other developers agreeing with me.
If you’ve ever liked your job, being afraid to lose it is very much normal. “What if my boss disagrees with what I have to say?”. He probably will. You are in 2 different roles after all. That said, would you want to spend years of your life somewhere you can’t give your opinions? What are you really contributing if you don’t share your thoughts on important topics?
Enjoy your work
Not everyone has a workplace that they can be really honest in. It might not even be on your list of priorities. I can only speak from my own experience: I only started truly enjoying my work when I was able to be myself.
The same lesson my father taught me about honesty and humbleness is what I now use to measure developers’ progress, my own included. I spend as much time as possible talking to my teammates about my shortcomings and achievements hoping they’ll do the same. We will all be better for it.