Working Philosophy

My personal working style has been deeply influenced by my studies in engineering, the Agile Manifesto, the Software Craftsmanship Manifesto, and Lean principles. Whether I’m developing a strategy, designing an architecture, writing documentation, or coding, I strive to approach tasks with a certain mindset. Over time I have developed a set of principles that characterise my working style. These principles reflect my approach and serve as my professional philosophy. They have guided me throughout my career as I navigate the professional landscape.

As the saying goes, “a picture is worth a thousand words,” and in an effort to convey my principles concisely, I have summarised them in just two pictures.

In practical terms

If you’re curious about what it actually means to follow these principles in day-to-day tasks, let me shed some light on it with some examples:

When designing a system, this approach is reflected in the use of multiple short iterations to develop a high-level architecture that aligns with long-term goals and supports the business strategy. Throughout each iteration, various stakeholders participate to offer input, collaborate, or provide feedback. The decision-making process is made transparent by including assumptions and the reasoning behind decisions in the architecture. The architecture document is treated like code and is accessible in a git repository, enabling anyone to contribute. This document is considered a dynamic artifact that evolves over time, emphasising the importance of maintainability.

When constructing a system, the daily workflow revolves around a focused approach that involves working on one task at a time using short-lived branches. There are multiple commits made per day, with frequent feedback loops with other developers. Continuous refactoring naturally occurs as solutions emerge from patterns and technical debt is addressed as a priority. Test automation, particularly through Behavior-Driven Development (BDD), plays a vital role in enabling continuous refactoring by ensuring that the system maintains its functional requirements even after extensive technical changes. This is achieved through a continuous delivery pipeline and the seamless integration of automated testing throughout the development process, including BDD/TDD and pair programming.

In the context of setting Objectives and Key Results (OKRs), this mindset translates into actively involving the broader team in defining the OKRs through multiple short iterations. It is a collaborative process that aligns the goals of individuals with the overall strategy, fostering a sense of ownership, collaboration, and an outcome-oriented mindset. This approach ensures that everyone’s input is valued and considered, promotes transparency, accountability, and a shared sense of purpose.

These examples illustrate how my working mindset influences my approach to various tasks, ensuring a focus on excellence, continuous improvement, and efficiency in all aspects of my work.

Not set in stone

When collaborating with others or leading teams, I am dedicated to promoting these guiding principles, which foster a positive culture of excellence, continuous improvement, and efficiency.

However, while my working principles are firm, they are not set in stone, but have evolved over time to reflect my learning and growth throughout my professional career. They are not meant to be a rigid doctrine, but rather a flexible framework that adapts and evolves as I gain new insights and experiences.

It is important to note that these principles are open for discussion and can be challenged, I encourage an environment of open dialogue and constructive critique, as it contributes to the continuous growth and refinement of these principles.

Feel free to contact me through the provided channels, and let’s start a conversation that can lead to great things.