šŸ’”Can we talk about innovation as a young developer?

Ali Guedda
6 min readOct 27, 2023

--

Photo by Kvalifik on Unsplash

TL;DR

When I entered the professional world, I had to learn how to push myself and provide deliverables that at first seemed very challenging, if not impossible.

The purpose of this article is to share my experience on how to approach challenges that requires technical innovation.

In this article, we will go through :

  • Introduction of the subject.
  • Establishment of the foundation of what drives the product.
  • Discussion about the obstacles that prevent the realization of features as envisioned.
  • Sharing of my feedback on how to overcome them.
  • Presentation of what to expect when following my approach.
  • Conclusion of the writing.

Introduction

Innovation is about reviewing what exists and doing it in a new way to make it better.

Before when i was a student and then a recent graduate, I used to think that it might be presumptuous to discuss innovation at this early stage in my career.

From my perspective, it was necessary to first replicate what has been already done, build competence and experience, and have a 360-degree understanding of the field before considering changing things.

Now and after almost three years of working in the corporate world, I can affirm that itā€™s an integral part of a developerā€™s daily life.

Business needs decide about what should a product do

An engineer in essence must have the willingness to serve society by helping to build the infrastructure and tools that will enable it to thrive and ensure the prosperity of its citizens.

The solutions designed should not be limited by the technical capacity of their creators but should strive to be as reliable and efficient as possible, aiming to satisfy the users rather than further frustrating them. This is where innovation becomes a central part of the process.

šŸ—ļøšŸ‘· If citizens need two shores to be connected by a bridge to offer new economic and social perspectives, then civil engineers must find the solutions that make such a building happen, or if not, suggest the best alternative that serves the same purpose.

šŸ’»šŸ‘Ø If users need to link information from two different platforms, carry out financial transactions more smoothly, or have high-quality virtual meetings, then computer engineers must address these issues and solve them in a way that serves the best interests of users of their platform.

Barriers to technical innovation

Iā€™ve been lucky to work with managers and product owners who make no compromises when it comes to user experience.

However, making a product as simple as possible for users often means dealing with a lot of complexity behind the scenes.

Sometimes, developers donā€™t fully grasp the business aliases behind a feature and, therefore, try to negotiate its implementation by proposing alternatives.

However sometimes they encounter challenges that, under specific conditions, become obstacles and prevents them from reaching the desired outcome.

The main challenges that have slowed me down and continue to slow me down in achieving the innovative feature weā€™ve set as a team in various projects are:

  • Limitation by services, libraries, or third-party components : Often, we had to create Chrome extensions, use external service APIs, or rely on third-party libraries. But in some cases our requirements were so unique that the existing options couldnā€™t fulfill them yet.
  • Important trade-off : Sometimes, the benefits of an optimization (speed, storage) are more costly in terms of complexity or expenses than the project currently allows
  • High complexity with low technicality : The range of technologies needed for an IT project is so extensive that expecting all team members to develop expertise in each one is too challenging. Consequently, for a single person, evaluating options and making precise decisions alone can be very difficult.
  • Disorganized codebase that twists your arm : Sometimes, the existing codebase requires so many changes to add a single feature that starting the project from scratch becomes the obvious solution. When the code is not extensible, developers start to manage unnecessary complexity.

Overcoming technical barriers, guiding developers to surpass themselves

I honestly believe that I had many good intentions during my developments, as well as the desire to deliver good products.

However, counterintuitively, I found myself saying things to my team like:

  • Is this really achievable?
  • Itā€™s going to be very difficult to accomplish
  • Currently, there are technical limitations that prevent us from achieving what we want
  • How are we going to do this? Weā€™ve explored many ways with no success

And many more ā€¦

But after persistence, when we finally see a positive outcome, it brings a great sense of satisfaction.

Over time, we have created features that we are proud of, and upon completion, they have helped us mature technically and professionally.

When it comes to innovation, an ounce of execution is worth more than a ton of theory.

Phil McKinney

Important section ! (my experience with pushing the boundaries in technical innovation)

In practical terms, four things define my method and have allowed me to surpass myself :

  • Encountering the impossible gradually and continually : I choose an initial approach and explore it to see how it goes. Then, I take a break, forget about the problem for an afternoon or a day, and then revisit it with a different approach, and so on. Iā€™m willing to let the challenge work on me from the inside, allowing it to slowly mature in my mind until I find an interesting approach.
  • A team that understands the aliases associated with a challenge and gives you the time you need to develop a solution, a team that, after some progress, analyzes the situation with you and provides fresh ideas and a new way of looking at the problem that you can explore. A team that shields you from distractions and supports you in interactions with clients, top management, and stakeholders.
  • Participation in various projects, such as side projects, freelancing, and corporate projects, expands a developerā€™s perspective on what can and cannot be done. The knowledge and skills acquired in one of these domains become an asset and a source of fresh ideas in another.
  • Accepting not to tackle multiple tasks at once : computer engineering is an abstract science, and a developer needs mental space to be able to visualize the technical problem and navigate its intricacies to find a workaround to overcome the obstacle.

The real expectations behind the pursuit of self-improvement

Whenever I dig deep and canā€™t find a good solution, or when I encounter a technical challenge that exceeded my current level, i often feel overwhelmed with worries. I sometimes even doubt my abilities, think iā€™m a fraud but I try to persevere.

The nature of the results obtained varies; I donā€™t always manage to achieve exactly what we set out to do.

  • There are times when I can create a feature just as I imagined.
  • Other times, I achieve similar results but with negotiated business rules.
  • Occasionally, I may not get the exact result I wanted, but I end up with a much better solution than the basic one.
  • Sometimes, I canā€™t find the solution, but I understand precisely why I canā€™t achieve my goal.

But despite all of what was said before, it doesnā€™t change anything in the personal satisfaction that I receive when I finish my work.

Conclusion

When I joined Leyton, my manager, Saad RGUIG, had a way of doing things that summarizes the content of this article, which I will share as a conclusion. When he requested a technical task, no matter how challenging it was, he never accepted an immediate ā€˜noā€™ or any negotiation from the team at the beginning. Instead, he would be open to refining the taskā€™s requirements after we conducted research and presented our analysis.

Acknowledgment

Special thanks to Imane EL MIR for her precious help and honest feedback.

--

--

Ali Guedda

Python & JavaScript enthusiast. Currently working at Leyton. I love meditating over deep and beautiful meaning šŸ™Œ. https://linktr.ee/ali.atguedda