Why the Last 10% Matters: Maximising Learning in Development

If 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.

Illustrating the Challenge: A Personal Story

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.

The Benefits of Welcoming Challenges

Here’s why I advocate for tackling such challenges:

  • Real-world Learning: Genuine learning opportunities like these are rarer than you’d think. You might find yourself stuck in a cycle of mundane tasks, especially if the projects you’re working on are well-established. The ability to learn from real-world problems is vastly different than learning from a toy project or reading from a book.
  • Opportunity Recognition: It teaches you to recognise these opportunities and assess the situation individually. The knowledge you gain from sticking to the design may not be worth, if the task is repetitive or manual.
  • Comfort in Discomfort: It makes you comfortable with being uncomfortable. It’s impossible to improve without occasionally pushing yourself out of your comfort zone.
  • Negotiation Leverage: By understanding the complexities, you’re better positioned to push back when it’s logical to do so.
  • Progressive Learning: The frequency of these 10% opportunities diminishes over time because you progressively learn more about your field.
.
.
.

Potential Pitfalls to Navigate

However, be mindful of these pitfalls:

  • Clear Communication:Always keep decision-makers in the loop. If you’re tackling a challenge, let them know it might take longer but reassure them of a backup plan.
  • Realistic Estimations: Don’t bite off more than you can chew. It’s crucial to gauge what’s feasible to avoid burnout or subpar outcomes.
  • Avoiding Perfectionism: Don’t get caught up in a perfectionist mindset. Striving for the last 10% shouldn’t lead to an obsessive pursuit of perfection at the expense of productivity or team morale.
  • Opportunity Cost Awareness: Every challenge undertaken diverts time from other tasks. Consider the broader implications on project timelines and outcomes.
  • Balance: Maintain a balance between new learning and efficiency. While tackling complex problems can provide valuable lessons, overemphasising taking up every challenge might slow down overall progress. Choose wisely.
.
.
.

Choosing Your Battles

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.

Written By Emrah Ozer
Polyglot & multidisciplinary developer for over 20 years, lifelong learner, co-founder of Rightsoft. Follow me on twitter @emrahozer