For the past several months, I've been harboring a lot of anxiety about the quality of my work. I'm on a "legacy" team that has a finite amount of time in which to operate. And, in that time, I'm trying to breathe new life into the product that we maintain. Only, I neither have the "official permission" to do so; nor do I have the breadth of talent required to build something truly amazing. And, considering that this is all being done in the context of one of the world's premier design platforms, I fear that anything less than a flawless implementation will be brushed aside before it ever has the chance to grow legs.
And, the longer it takes me to get my ideas designed, built, and in front of real-world users, the more angst I feel over the questionable outcome of my efforts. Last night, however, I was walking the dog and listening to the Freakanomics Podcast when I heard a statement that gave me pause. One of the interviewees quoted painter, Chuck Close:
Inspiration is for amateurs - the rest of us just show up and get to work.
This statement struck a chord in me. I felt that, in some way, it was speaking directly to this emotional burden that I've been shouldering. I stopped right there on the sidewalk and looked it up on my phone. It turns out to be part of a longer quote from an interview in the Princeton Architectural Press:
Inspiration is for amateurs - the rest of us just show up and get to work. And the belief that things will grow out of the activity itself and that you will - through work - bump into other possibilities and kick open other doors that you would never have dreamt of if you were just sitting around looking for a great "art idea". And the belief that process, in a sense, is liberating and that you don't have to reinvent the wheel every day. Today, you know what you'll do, you could be doing what you were doing yesterday, and tomorrow you are gonna do what you did today, and at least for a certain period of time you can just work. If you hang in there, you will get somewhere. (Wikiquote)
The truth is, I am a mediocre designer. And, a mediocre engineer. But, I do have a superpower: I know how to grind. I thrive within the constraints of a predictable, repetitive daily routine. I wake up at the same time every day. I keep the same schedule. I put in the work. And, I move those tickets across my Kanban board.
And maybe that's enough. I've been so worried about delivering a flawless experience, I've forgotten the fact that a mediocre feature, completed, is infinitely better than a flawless feature, forever lost in the endless cycle of ideation, design, and development.
So going forward, I'm going to be so mediocre they can't ignore me. Which means taking my flawed ideas, grinding them out, and then getting them in front of real-world users where they have a chance to grow and evolve into something that may - one day - become truly inspirational.
Ben. I really think you underestimate yourself. I am very similar, but with more justification for thinking so. I have always struggled with technical development, coming from a graphical design background. Some of the articles you have written, are truly enlightening. I follow quite a few bloggers, but your technical explanations, are, by far the most thought provoking. You always seem to approach objectives, by thinking outside the box. I am always surprised by your ingenuity.
I have to say, I became very disillusioned, a few years ago, because, almost every corporation, I worked for, seemed to sap a little bit more of my confidence.
This is when I decided to set up on my own and build my own products. Throwing off the shackles of feeling inferior and being able to shape my own destiny, has really reenergised my passion for software engineering!
I'm not saying that working in a team is bad thing, but it can sometimes constrain our natural inclination for exploration.
I think you're hitting yourself upside the head with some serious impostor syndrome.
To me, a mediocre person just slapdashes through without caring or knowing what they're doing. You clearly care about what you do, and obviously do your best to understand the "whys" behind what you do.
Oh, most definitely! "Impostor Syndrome" is my move! :grimace:
I think you are right-on there in terms of the empowering nature of being able to set your own course, shape your own destiny, and build your own products. I think that is a lot of what I am reacting to -- not feeling that power to get certain things done -- feeling like I'm going to be judged by the Product team, who have more time to think deeply and design with care. But, I need to just move forward with my ideas!
And thank you very much for the kind words.
You're being too hard on yourself, Ben. You're a very experienced developer and have been a source of inspiration for many with your excellent blog providing ideas to others, comparing A with B so devs can see which works best... you know how to do things correctly. Don't let others shake your confidence. If you can justify why you wrote code in a particular way then that's better than others who may say "it's the only way I know how to do it". Be the boss, Ben. Own it! :-)
Thank you for the kind words -- it means a lot. It's tough when you work at a company with a lot of really brilliant people that are all working on different things. It's hard not to look at what they are doing and wonder if it is something I could do as well. This is especially true when it comes to visual design. But, again, I need to own the skill-set I do have; and, turn that into a completed idea, rather than worry about fine-tuning every single pixel.
I want my 2019 to be all about getting things done!
If you're working in a team then each person is employed because of their strongest individual skill. So the guy working on UI probably has better UI skills than the guy working on back-end code, and so on. That's assuming the boss has allocated the right people to each job! If you're looking over the web designer's shoulder thinking "I'm not as good as him/her" then don't sweat it. (Save that for the gym!) My second or third strongest skill is unlikely to be as good as someone who has it as their primary skill.
Ah, yes, fiddling around seeking perfection versus getting a move on and completing the damn job! I fight that balance every day and it hurts. It's like OCD or caring a lot - I don't know which. I was up until 4am this morning fussing with detail trying to complete a task that I could have completed hours earlier. Why!!! I'm a fool because no one apart from myself would notice, yet alone appreciate the difference. And do I learn? Heck no.
Ha ha, I was actually proud of myself the other day because I would closing a ticket opened by our Bug Bounty program and I did, essentially, the least that I could do. The code in question was so old and janky, so I just did the fix and then added a comment like,
NOTE: This is here to fix vulnerability TICKET-1234. This code really
shouldn't be here. But, refactoring the code would have required many
changes and this code will likely never be touched again. As such, I am
implementing the fix and then moving on.
I felt like I had to apologize to the next dev; but, I also didn't want to get sucked down a rabbit hole of cleaning up the code that was, in all likelihood, never going to be touched again.
It was a little victory :D
I'm never impressed with anything I do because when I step back I say: "Heck, I could that".
But when I try to teach someone what I'm doing, it's impressive to realize how great the gap is.
Yeah, that's a good point. I can't tell you how many times I'm listening to pod-casts where the host, who is someone that is clearly great at what they do, says something that makes go like, "Wat?! How did you not know that?"
Function.apply(). Which, to me, was funny because those methods seem so fundamental to me.
Not to say that you need to know them -- only to say that we have this mental model of what we think other people know; and then we find out that the gap isn't what we necessarily perceive.
I really like that quote! It reminds me a lot of how we were taught to approach the creative process in my art school days. After being given an assignment we were told to just sketch pages and pages of drawings instead of trying to develop our first idea. After pages of drawings you may still end up selecting your first concept but you'll understand why you are picking it better after choosing it over so many other drawings. You may even improve your original idea with some of the "unused" work you creating the other sketches.
All that to say that I agree =P
You're truly one of the most humble, competent, and empathetic engineers I've ever worked with. You have a "get it done" and "keep it simple" mentality that's exactly what makes you so special. You strive to write code that is understandable, which makes it easy for the next developer who touches the code to successfully iterate on. In our line of work, you need to move fast or you'll fall behind the competition. I've seen time and time again where engineers fuss over the fine details to achieve "code perfection": only to miss deadlines, overcomplicate the code, and essential provide the same outcome that could have been done in a fraction of the time. Then, the next engineer who goes in to work on it can't figure it out and decides to just rewrite it anyway.
Beyond your coding abilities (which are great in my opinion), you provide so much value to the team. Your personality, willingness to help others, and depth of knowledge are instrumental in our success. I can't recall a single time over the last 6+ years of working together where you were unwilling to help myself or others. You crave learning and are always willing to dig deep into understanding complex problems.
Lastly, I just want to say: It's been a real blessing to work with you. You were one of the primary reasons I joined InVision in the first place. I believed (and still do) that if you are part of this company, that it was going to be successful. As a coworker, mentor, and friend, you've been instrumental in my growth as an engineer. For this, I thank you!
Keep on doing what you do and don't worry about the details!
Blimey Ben - I can only aspire to be as 'Mediocre' as you!
In effort to "Grind out" some ideas here at work, I've put together a proof-of-concept for a feature that I want to pitch at work, It's called "Screen Flow":
.... it's been an uphill battle even getting anyone to consider it. So, I am trying to get more public feedback so that I can gather evidence that the idea might be valuable. And, if it's not valuable, perhaps feedback as to how I can make it valuable.
They will not be able to ignore me ... eventually :D
Ha ha, you are too kind, sir.
Sir, I am truly touched. It really means a lot to me that this is how I am perceived. I really love this team and I really do want to help it do amazing things. And, of course, I want to have fun along the way :D
It has been a pleasure working with you as well. Plus, how else would we get any PRs approved at 8AM if we didn't have each other ;)
Great analogy. It reminds me of the Studio Art class I took in school. The teacher would always start the class with 10-mins of "30-second" sketches. The model would pose only for 30-seconds, then change positions, and you had to get things down on paper as fast as possible. It was stressful, but a lot of fun, and certainly forced you to not get too attached to any one sketch.
Quality read! I feel this 100%:
Research shows that sustainable progress, in everything from diet to fitness to creativity, isn't about being consistently great; it's about being great at being consistent. It's about being good enough over and over again.