Finding the opportunities to increase your impact as a developer

Sivan Yogev
4 min readApr 2, 2023

--

Are you a developer trying to have more impact in your current project or looking for a new opportunity with increased responsibility? Here is a new perspective on this matter that can help you achieve this goal.

DALL-E: Impact #dalle

One of the benefits of working in a large high quality technological organization is the learning opportunities you get exposed to. A few years back while working in Outbrain, I heard a talk by Kent Beck that immediately felt important, who described his explore-extract-expand model (you can read about it in the Triathlon model post).

The model describes the 3 developmental phases of software products. Here is how I understand these phases, I apologize for some over simplification of things from here on:

  1. Explore — search for a successful solution to a viable problem, done through a series of experiments. At this stage the success probability is low, and participation comes with a risk of failure.
  2. Expand — after reaching a basic solution that offers something required in the market, it needs to be iteratively improved to comply with the needs of the clients, in terms of features and performance.
  3. Extract — at some stage the product is mature enough so it requires less development efforts and the focus moves to service and maintenance.

This is how it looks in a schematic graph, with product success in the x axis, and the payoff in the y axis:

At this stage you might ask yourself — nice, but why should anyone care? This valid question has 2 different answers:

  • Top down answer: any organization should be able to categorize its ongoing products by phase, since this dictates the type of people to allocate, the development methodology, how to measure success and more.
    As with every theory, good managers will probably be able to make proper adjustments without explicitly declaring that a project moves from “explore” to “expand”, but identifying such transition in time and applying the full arsenal of changes can save time and frustration.
  • Bottom up answer: anyone whose profession is working on software projects can identify which phases best fit their abilities and personal tendency.
    Such knowledge can serve in planning personal development plans (if I am an “extract” person I should probably prioritize deepening my knowledge of technologies I already know over learning totally new technologies), and when making career decisions (if I am an “explore” person I should avoid working on “extract” phase products).

Since at the time I was not a manager, my biggest personal take was to acknowledge that I thrive in “explore” and “expand” projects. And soon afterwards I asked to move to a new role within Outbrain after realizing the product I worked on for 5 years reached the “extract” phase.

However, I found out in my new role that working on the “right” type of product is not enough to guarantee satisfaction, and that there is one other important aspect that matters to me very much — potential impact. Although I was a technical lead, and managed to personally push a project from ideation to actual user engagement, it was clear that in such big organization, with no real authority, there’s a low ceiling for the impact I can have.

DALL-E: low ceiling #dalle

The way I decided to increase my potential impact was to move to a team lead position in Igentify — a smaller company in the “expand” phase. But the issue of what impact developers have on the product was still important, since now I was responsible to help the 5 members in my team in setting personal development goals and taking actions towards achieving them. Since the experience and knowledge levels of the developers varied, it required different approaches to defining and pursuing personal goals. For the less experienced ones the main focus was on identifying missing tools in their toolbox and going full circle when working on new features. With the veterans the discussions were more about what can put them in position to have more impact on the company goals.

In parallel, the company went through a change dictated by the product and market maturity, from “expand” mode to “extract” mode, shifting the focus from developing entirely new capabilities to working on the parts of the product with best fit to the existing market. This change shuffled the personal development plans of the developers, since the opportunities to develop new features end to end decreased significantly.

Somewhere during that transition, questions started to arise in my mind about the relation between a developer’s potential impact and the explore-expand-extract graph. Is there a difference between the potential impact in different phases? Does the potential impact of a single developer increase or decrease during product evolution? How does the seniority level factor in?

My answer for these questions and some additional insights can be found in the conclusion of this post.

--

--