Including Engineering Excellence in Company Goals
Software engineers strive to maintain and deliver resilient and trouble-free systems. These goals aim to ensure the reliability, performance, and adaptability of the software in the face of constantly evolving requirements and challenges. Translating these broad aspirations into tangible outcomes, and setting specific, immediate targets is essential. This requires identifying what’s realistic among competing priorities. Incorporating specific engineering objectives into the company’s strategic goals is a straightforward way to maximise the achievement of tangible results that are aligned with business needs. I’m happy to share suggestions I’ve found useful for this purpose, as well as for addressing the engineering needs of Eurowings Digital.
Identifying potential candidates
Identifying viable candidates for engineering improvements typically starts with a compilation of previously discussed ideas and pressing issues, which in itself can be an extensive enough of a list to make you just want to stop there. These ideas or issues could range from the difficulties of working within a particular part of the codebase to the need to upgrade to newer technologies, to implementing major framework upgrades, or to adopting widely accepted best practices, such as Continuous Delivery or Chaos Engineering. Engineers are likely to bring valuable suggestions especially when it comes to long-awaited improvements. At Eurowings Digital we discuss candidates in a collaborative workshop with representatives from each engineering team.
Despite the variety of engineering improvements that could be made, they tend to fall into two main categories: enhancements to engineering productivity and improvements to system performance. While the pursuit of better engineering productivity or an improved development experience can be seen as a continuous endeavour, system performance improvements can typically reach a limit where they are no longer cost effective. A practical approach is to assess the potential for system improvements. This involves examining the current uptime, determining what it would take to further reduce downtime and incidents, and then assessing whether such improvements are cost-effective. Once the opportunities for system performance improvements are well understood, the focus can shift to identifying the most promising opportunities for boosting development efficiency.
System and engineering productivity improvements would have two main approaches to clarifying and arguing their business value to the wider organisation.
Quantifying system improvements impact
Issues such as bugs, poor performance, and downtime can drive customers to seek alternatives, impacting the business negatively. Serious problems can attract media attention, trigger a wave of negative customer feedback, and significantly damage a brand’s reputation.
Improving customer satisfaction and investing in brand marketing are critical to any business. Significant resources are allocated to these areas, and addressing underlying system issues can be a cost-effective strategy to improve them and they become a mandatory investment to maintain high customer satisfaction and a solid brand reputation.
Work with your colleagues in the relevant departments to gauge the business impact accurately. System stability has a direct correlation to loss of revenue and brand reputation. Your colleagues in customer service or brand marketing should be able to help you quantify the impact of such improvements.
Expressing the value of productivity improvements
While the value of system improvements can be direct and precise, quantifying productivity improvements can be more challenging. The most succinct explanation of the importance of engineering excellence would be: improvements in Developer Experience result in more customer value long term. There is no doubt that more productive engineers would develop the product faster, but faster by how much? Thanks to recent studies, some industry-wide numbers are available to give us an idea. Here are a few recent studies that I find the most insightful.
- “Quantifying the Impact of Developer Experience”, done in a partnership between Microsoft’s Developer Experience Lab led by Nicole Forsgren (leading developer experience expert) and DX (company building developer experience insights platform). Developers who report a high degree of understanding of the code they work with feel 42% more productive than those who report low to no understanding.
- “Code Red: The Business Impact of Code Quality” — research by Adam Tornhill and Markus Borg in 2022, investigates the quantifiable effects of code quality on businesses. The study found that technical debt can devour a significant chunk of a developer’s day — a staggering 23% to 42%.
- Recent “State of DevOps Report” run by DORA and Google Cloud gives various metrics. For instance, teams with faster code reviews have 50% higher software delivery performance.
While industry case studies don’t guarantee similar results for every team, sharing these findings can illustrate the potential scale of improvement and help support the case. Is it possible to estimate precisely how much engineering velocity your team will gain? Not really, but analysing industry studies, while monitoring the evolution of your own engineering metrics, such as with a development experience survey or DORA metrics, can help to assess the value.
Applying strategic angle to prioritisation
Faced with a plethora of possible improvements, each with its proponents and merits, it’s likely that the list will seem unrealistic to achieve within a few months or even a year. The hardest part is clearly acknowledging that some of the ideas and improvements will not happen soon. When prioritizing ideas, it’s common to look through the lens of impact and effort analysis.
While it’s possible to pick unrelated ideas that are in a sweet spot, it’s possible to achieve a larger strategic goal by trying to pick things that are synergistic. Taking ideas in combination can enable the achievement of larger strategic goals. As articulated by Michael Porter, a distinguished authority in business strategy : “The essence of strategy is choosing what not to do.” You need to formulate a strategy and prioritise the most impactful set of objectives according to your organisation’s needs. This strategy could address your greatest weaknesses, seize the best opportunities, leverage your strength, or be demanded by ongoing changes in the business.
For instance, consider a company that has recently migrated its infrastructure to a cloud provider. Post-migration, a multitude of improvements might present themselves, from optimising cloud-native capabilities to consolidating services to reduce duplication. In this scenario, prioritising the transition to cloud-native practices may offer the most significant long-term benefits, aligning with global standards and leveraging the full suite of services and support offered by the cloud platform. Alternatively, if the organisation has recently undergone a merger, focusing on reducing duplication could provide immediate value, streamlining operations, and reduce costs that could make it to be a strategic priority. For Eurowings, such strategic priority is to fully leverage the development experience potential of our cloud migration and further improve the ease of deployment.
Finding synergy with business objectives
While our focus on engineering excellence is crucial, it’s essential to recognise that every software system serves a broader purpose. Typically, a software system manifests as a digital product like a website or app, a reusable software library, or a tool. The true measure of our software’s success is linked to the success of its overarching goal. In our case, we are continuously working passionately on diverse and attractive offers on our online booking platforms Eurowings & Eurowings Holidays and mobile Apps to empower our customers with relevant information and smart digital services throughout their travel experience. Engineering excellence, therefore, is not just a goal but a foundational element supporting these broader objectives. Depending if product evolution is taking a significant change or if it’s on a stable trajectory may impact engineering goals significantly.
Launching a web product in a new market, adding a native app, and pivoting from the current vision will require new engineering capabilities. For instance, entering a new business sector might present an ideal opportunity to overhaul an outdated B2B product, which could be more efficient than incrementally updating it amidst the challenges posed by accumulated technical debt. Launching your service in another part of the world could require transitioning to multi-region or multi-tenant architecture, revising the on-call process and site-reliability practices. This could be another strategic vector for engineering goals.
In our case this year, we are leveraging synergies in the execution phase by combining significant product evolution in features that live in legacy software components with migration to the current stack with Java and Vue.js.
Phrasing in ubiquitous language
Ubiquitous language, a concept primarily associated with Domain-Driven Design (DDD), emphasises the importance of having a common, shared language among all stakeholders involved in software development. This common language ensures clear communication and understanding of domain concepts and requirements across different teams within an organisation. Similarly, extending this concept to engineering goals and objectives can be highly beneficial for fostering alignment and collaboration across an organisation.
To make engineering goals accessible, avoid jargon and excessive abbreviations. For example, instead of CI/CD use the full name, Continuous Integration and Continuous Delivery. Choose a ubiquitous name for the objective and use it consistently everywhere — when setting goals, communicating with engineers, and communicating with executives. Additionally, focus on how the goals translate into tangible company benefits. For example, explain how reducing downtime not only improves system reliability but also reduces financial losses and customer attrition. Similarly, explain how enhanced engineering productivity can yield long-term benefits, such as accelerating innovation or improving market responsiveness. A true understanding of engineering’s needs is required to ensure buy-in and support for engineering priorities throughout the organisation.
Open prioritisation among other company needs
Balancing engineering priorities with broader business needs involves a transparent and strategic approach to prioritisation. When the value and impact of an engineering initiative is clearly understood, it becomes easier to determine its place among other business priorities. Investing in engineering productivity is often seen as a mid-term investment that will ultimately increase customer value. Engage in an open discussion about how much the company should invest in mid-term benefits versus pursuing immediate opportunities. Open prioritisation facilitates a transparent discussion about the importance of various projects, including those in engineering, which helps in understanding and appreciating their value across different departments.
An alternative way of ensuring that engineering goals are met is to allocate a percentage of the team’s capacity, often around 25%, to address technical debt and maintenance. While this approach can be tempting to avoid prioritisation discussions, it has several weaknesses. There’s a constant risk that the allocated engineering capacity will be viewed as negotiable, leading to its potential erosion by other immediate business needs with a deadline or more direct revenue impact. Adherence to this fixed team capacity allocation would still require clear communication of the impact on engineering targets.
One of the main challenges of open prioritisation, even when the value of engineering work is fully recognised, is overcoming the inherent organisational bias towards short-term results. The pressure to demonstrate immediate results can sideline these projects and make it difficult to secure their priority. The short-term focus can be particularly pronounced in fast-paced or highly competitive environments. For start-ups, this focus is often necessitated by the drive toward achieving milestones that are critical for subsequent rounds of funding. In established organisations, however, a persistent short-term focus can undermine the long-term health and innovation potential of the company.
At Eurowings Digital for all significant initiatives (taking more than a few sprints and more than one team to deliver) we have an open scoring process to assess and prioritise their complexity, value, and strategic fit according to the set goals. Tech-focused initiatives undergo the process alongside initiatives with a marketing, sales, or user experience focus. Priority for tech initiatives is also backed up by having a development experience survey and other engineering metrics among our strategic KPIs. Our senior leadership team is reviewing engineering metrics alongside other strategic KPIs such as revenue contribution or customer satisfaction. Of the five strategic pillars of Eurowings Digital, two represent the health of our team and engineering excellence.
Finally, every month we review how much time we dedicate to new initiatives, existing functionality improvements, and system maintenance efforts. This allows us to more objectively ensure the balance of different needs and ensure that our product is robust, easy to use, and secure.