Emrah Ozer
5 min read
.
Aug 30, 2023If you’ve worked in the development field for any length of time, you’ve probably encountered situations where achieving 90% of a task is effortless. Yet, reaching that last 10% demands considerably more work or even a completely different approach you’re unacquainted with.
I view these challenging moments as golden opportunities. Throughout my career, embracing these challenges has yielded immense benefits.
That elusive 10% might manifest as a nuanced hover animation dreamt up by designers using After Effects, pushing you to learn how to sequence tweens or introducing you to Lottie. Alternatively, it might mean discovering the command pattern instead of serializing the entire state for every action, enabling your system to undo or redo many steps with minimal memory use.
Or it can emerge when you’re not content with mediocre code and strive for a more streamlined architecture or when you’re determined to speed up a query tenfold.
No matter the challenge, it should propel you out of your comfort zone. And it’s important that decision-makers, whether they’re co-workers or product owners, are receptive to both the simpler solution and the more ambitious one.
Years ago, I embarked on a project to develop an iPad app that allowed users to draw freely with their fingers and project these drawings onto a wall display.
The design called for brush effects, which meant drawings would vary in thickness based on finger speed and exhibit fluid curves. This was the designer’s vision, endorsed by the client, but not an absolute necessity.
Upon reviewing this requirement, the obvious, straightforward solution was to draw lines connecting each touchpoint. A basic approach achievable within hours, but it would fall far short of the target design, risking dissatisfaction from both designer and client.
A more refined solution involves curves. There’s a wealth of resources online and numerous plug-and-play libraries for this purpose. Employing this method would likely meet acceptable standards.
Had I settled for the above, my learning would have been confined to a specific drawing library. By adhering to the design, I delved deep into Bezier curves, understanding their types, the mathematics behind them, and how to replicate the brush effect using multiple curves and linking lines and forms. This challenge was the cornerstone of my expertise in curves, and the end product received much admiration from peers.
Here’s why I advocate for tackling such challenges:
However, be mindful of these pitfalls:
You might wonder, “When should I tackle challenges and when should I sidestep?” There’s no universal answer. It hinges on various factors: your expertise, project deadlines, task nature, team dynamics, and the potential value addition to the project and your skill set. Maintain open communication with your team and stakeholders, adopt a continuous learning mindset, and make informed choices.
Embrace challenges. Venture into the unknown. The last 10% might be the steepest climb, but it often holds the most profound lessons.