Dear Developer, a series
Our Ugly Middles
I want you to hug your ugly middle.
No, I wasn't insulting your body. I want you to embrace the concept of the Ugly Middle. You might know it. The Ugly Middle is that part after the high of the Shiny New Thing has worn off and before the excitement of The End hits.
In Corporate Work: The Ugly Middle is when the project is most likely to fail; where the aspirational criteria hit the reality of API limitations, when engineers have been pulled into too many directions, and when lofty and unclear leadership plans mean one too many pivots.
In Personal Work: The Ugly Middle is when the project is also most likely to stall out; where the excitement of starting our own portfolio in a new framework has worn off when our big aspirations for customisation have hit the rubber of the Documentationless Road, where our enthusiasm has been met with our old friend, Imposter Syndrome, and we realise "wow, copywriting is really hard."
While The Ugly Middle is decidedly Not Fun, it can provide us with valuable lessons in resilience and acceptance and teach us how to stop the quest for perfection, particularly for the work we do for ourselves.
Completion is Arbitrary 📌
I think that chasing the high of completion is a fallable hunt. When is something really done? It shouldn't be, as it's likely that we've forgotten something. Usually, and unfortunately, that thing is probably accessibility- or performance-related (as evidenced by WebAim's The Majestic Millions 2020 update, where things got worse. I mean, we knew 2020 sucked more than 2019—here's how we made websites suck too! 🙃).
Perfection Kills Progress 📌
The longer we spend in the Ugly Middle, the more time we can iterate and improve. Searching for perfection does one of two things:
- We stop ourselves in our tracks from imposter syndrome, and never finish; or,
- We put out what we think is perfect and think we're done.
Both are problematic, because both involve stopping (unintentional in one, intentional in the other). One incapacitates us from moving out of abject fear that we'll fail, the other arrogantly, perhaps, thinks that failure isn't a possibility.
What if, we instead, recognised that failure is inevitability and one we can embrace. If we build the concept that we don't ever plan to stop, it gives us room to Err, to Forgive ourselves, and then to Fix it. The EFF This Cycle, we'll call it.
Embracing this cycle allows us to constantly improve and move forward. The increments they may be small, until we realise that incremental progress is better than none. Slow and steady wins the race, the tortoise reminds us.
Stop letting your fear of the ugly middle, driven by your impossible search for perfection, stop you from starting or continuing. To allow ourselves this, we must allow ourselves to ship things that we recognise will not be perfect. I recognise that some people will find this unacceptable.
I dare those people to show me something that's perfect.
Perfection, I humbly think, is nothing more than a standard set by whomever is in power. The entity in power might just be social structurally set (like, Western standards for beauty or cleanliness, as one example), but it's always there. Perfection for me is not the same as perfection for you. We're chasing the impossible.
If we accept things at their Ugly Middle, and build in a mechanism for feedback and ways to improve, we're shifting our focus from the ethereal in the distance to the step immediately before us. I'd like to think the more we do that, the less imposter syndrome that we would have.
My Ugly Middle 📌
To eat my own dogfood or whatever (aside: I find that to be the most disgusting analogy—why are startups eating dogfood?), I want you to know that as much as I love this here personal website of mine, I know that there's a dumpster fire about to burn a house of cards down. The things I'd like to fix (which I should remember to migrate to GitHub issues, I digress):
- The accessibility isn't perfect. I know that accessibility wonks will run the same audits I run for clients on my site and be like "gotcha!" And yes, you gotme! I know of plenty of fixes that I want to make, and there are plenty more that I'll eventually learn.
- The code is messy, both figuratively and literally. I see this somewhat as a sandbox, and as much as I believe in validated code and ensuring things are to standard, I miss things sometimes.
- The design system broke down when Performance Tatiana went ham on the code and Designer Tatiana tried to add some new fonts without really considering all the design impacts. It pains her that the padding is inconsistent across pages and modules.
- There is a LOT of unused code, which I'm reminded of everytime I run Lighthouse and look at all the unused CSS.
- I have approximately 943,349 ideas that I want to write about and never enough time to do it. You'll find abandoned branches by the side of my Repo Road, all desperate for me to pick them up in my Code Camaro—what wait are we talking about?
The point is: I love things to be good and right but my shit isn't perfect. And some of you still seem to think it's worthwhile. So I let it be. Something here to represent me is better than nothing here to represent me.
Permission Granted 📌
I'm giving you permission, Developer, to launch your site when you know that there are accessibility improvements to be made or if the content causes horizontal scroll, so long as you promise to prioritise investigating ways to fix it. I'm giving you permission to ship a little too much JS (as a treat), so long as you promise you'll find ways to shave of a few KB each time you touch the code. I'm giving you permission to have spelling errors, so long as you promise you'll spell check as much as you can.
Most importantly, I'm giving you permission to be and to make enough, so long as you build in a mechanism for people to give you the feedback and for you to take the feedback seriously sans fragility.
I ask, in return, that you give some grace to other people and their work. When you find something wrong or incomplete, provide space for context you don't have. Find ways to be helpful instead of hurtful. If you must get angry at something, get angry at infrastructures that make it harder for us all rather than at each other and find ways to dismantle those infrastructures. If you don't have energy to help, then simply step away. If you have the energy to call it out, then you have energy to do so helpfully. We are not burdened to fix everything, nor can we, nor should we try.
Whether we admit it or not, we're all at our Ugly Middles—some day uglier than others—just trying to make it to the next commit, the next day, and the next challenge ahead.