August 22, 2024
Technical decisions are also business decisions
Understanding that technical and business decisions go hand in hand is the key to solving problems effectively and driving your business results.
Recently, while listening to two episodes of the Tech Leadership Rocks podcast, by Eduardo Matos, I was inspired by some ideas that I consider fundamental for anyone who seeks to build highly effective engineering teams. The episodes, "High-Performance Environments" with Fabio Lessa and "There Are No Technical Decisions" with Guilherme Froes, provided a new perspective on the relationship between technical decisions and business goals. Below, I share some reflections that can help align these two areas more strategically.
Technical Decisions and Their Impact on Business
One of the most powerful messages that emerged from the discussions was the idea that technical decisions are not separate from business decisions. In fact, they are intrinsically connected. As leaders, it's crucial that we help our teams understand that every technical choice has direct implications for the company's success. This means we need to clearly communicate the business's goals and priorities so that technical decisions can be made with a broader, more strategic view, always seeking the overall benefit of the organization.
Fostering a Climate of Cooperation
For an engineering team to achieve exceptional results, it's essential to nurture an environment where cooperation and the sharing of ideas are encouraged. When engineers have a clear understanding of the company's challenges and goals, they can contribute more meaningfully to choosing the technologies and solutions that really matter. This kind of collaborative environment not only improves decision-making but also creates a sense of belonging and purpose among every member of the team.
Setting Clear and Coherent Priorities
Often, companies run into difficulty because they don't have well-defined principles to guide their engineering teams. We can, for example, adopt three fundamental principles: maintain data integrity, guarantee system availability, and deliver features that add value. These values must be followed rigorously, in order of importance, to ensure that every decision is made based on a clear hierarchy of priorities. That way, the team knows that, regardless of the circumstances, integrity and availability must never be compromised.
The Art of Effective Communication
Communication is a critical aspect that cannot be neglected. As technical leaders, it's our responsibility to translate technical needs and constraints in a way that makes sense to the other areas of the company. This includes explaining how managing technical debt, for example, can impact the company's ability to hit its long-term goals. When that communication is done transparently and understandably, it helps build trust and align everyone around a common goal.
Focus on Solving Real Challenges
Our work as engineers and leaders goes beyond simply writing code; it's about solving real problems and generating a positive impact on the business. To that end, it's important that we change our management approach, focusing less on supervising the amount of code produced and more on ensuring that the solutions developed actually solve the problems the company faces. This shift in focus helps create a culture where results are valued more than the mere execution of tasks.
Risk Reduction Through Experimentation
To deal with the uncertainty inherent in many technical decisions, it's essential to adopt an experimentation-based approach. Giving the team the freedom to run small tests, such as canary releases — where a new feature is released to only a portion of users — can help significantly reduce the risks and costs associated with mistakes. This allows the team to learn from iterations, making quick and informed adjustments before a large-scale implementation.
The Importance of Constant Involvement
Engineers who isolate themselves from business issues run the risk of becoming less relevant in strategic discussions. Refactoring code or adopting new technologies should always be justified by the value those actions will bring to the business. It's fundamental to remember that an engineer's work doesn't end when the code is merged into the repository; it's only complete when the solution is in production and making a tangible difference for the company.
Final Thoughts
Applying these ideas in day-to-day management can transform the way we lead our teams, creating an environment where technical and business decisions are perfectly in sync. There are big challenges to reaching that alignment, on both the developers' and the company's side, especially regarding the maturity of each. If you want to deepen your knowledge of these practices, I recommend listening to the episodes mentioned. As leaders, we have the responsibility of ensuring our teams are always aligned with the company's goals and of fostering an environment where everyone can collaborate and grow together. What challenges have you faced when trying to align technical decisions with business goals? How can we keep improving in this area?