My Software Engineering Values

March 11, 2022 · 2 mins read

Understanding why

Whenever working on a feature, I always want to understand why it is needed, what value it is providing, to whom, etc… This helps me get to the core issue I am trying to solve, guide my work and understand which tradoffs are possible to make. If you work with me, “why are we doing this?” will be by far the question you will hear the most.

Software is about people

I believe that software development is first and foremost about people, and the first sentence of the Agile Manifesto resonates with me:

Individuals and interactions over processes and tools.

I like to involve all stakeholders as early as possible in the development process, and value discussing things with people for the extra context those dicussions provide. Software that doesn’t solve problems for real people isn’t worth writing.

Code is a liability

I think of every line of code written as a liability to the team that will have to understand and maintain it. As a software engineer, my goal is to provide business value, not to write code. If I can provide the same value without writing code, I will try to do so.

The value of good-enough

A good-enough solution today is more valuable than a perfect solution tomorrow. I believe in shipping (often incomplete) early solutions that can be used as a basis for iteration, and iterating just enough to provide the business value that makes sense for the current need.

There is no right or wrong answer, only tradeoffs

In software and in life, the answer to many questions is “it depends”. Every choice made involves tradeoffs, wether explicit or implicit. I strive to always be aware of this, and ask which tradeoffs will help my case best in any situation.

Some strong opinions, strongly held

I try to be not opinionated about too many things, and keep my identity small. In the areas where I do have opinions, I believe in them enough to act on them with confidence and argue my stance strongly.