In today’s competitive landscape, the success of any company hinges on its ability to deliver innovative products that meet the ever-evolving needs of its users. At the heart of this lies a world-class product engineering organization – a team that can translate vision into reality while successfully navigating the complexities of software development. These organizations are defined not just by their technical ability, but by their strategic thinking, adaptability, and unwavering focus on user value.
But what separates a good product engineering team from a truly world-class one? While features and functionality are important, truly successful organizations go beyond simply building things. They prioritize building the right things, those that solve real user problems and contribute to achieving strategic goals. In this article I explore the key characteristics that define these high-performing organizations, outlining the strategies and practices that empower them to achieve remarkable results.
Have a clear product vision and strategy.
Product Vision
A good product vision is a concise, memorable, and inspiring statement that outlines the long-term ambitions for a product. It answers the question of what an organization wants the product to become in the future. Setting a product vision is critical yet challenging because it requires a lot of internal alignment, collaboration, and – most importantly – deciding where to arrive and what to exclude.
Typically, a product vision includes:
- Purpose: Why does the product exist? What problem are we trying to solve?
- Target audience: Who are we building the product for?
- Value proposition: What unique benefit will the product provide to its users?
- Future state: What does success look like for this product in the long run?
In essence, a product vision is the north star that helps the team navigate the challenges of product development and keep their focus on the ultimate goal.
Product Strategy
Product strategy is a high-level plan that outlines how to make the product vision happen. While product vision defines the long-term goals and is an inspirational destination for the product (the “what” – what problem you’re solving, who you’re solving it for, and the future impact you aim to have), product strategy details the concrete steps to achieve that vision (the “how” – how you’ll reach your target audience, what features you’ll build, and how you’ll measure success).
In essence, the product strategy takes the inspiring elements of the vision and translates them into actionable plans. The product vision should be the guiding light for your strategy.
It’s worth mentioning, though, that a strong strategy needs to be rooted in a good understanding of a current situation, not just a fluffy wishlist of features to be built. As Richard Rumelt emphasizes in his bestselling book “Good Strategy/Bad Strategy” a good strategy is not simply about setting goals or having a vision. It’s about having a clear understanding of the situation (diagnosis) and then using that understanding to develop a plan that will achieve a defined outcome.
Strategy stack
Product vision and product strategy don’t exist in a vacuum. Any product strategy to be successful must be aligned with the overarching Business Strategy and paired with a strong Technology Strategy. All of these strategies define the so-called Strategy Stack – please refer to a great article by Roman Pichler to learn more.
Decision-making framework
Counter to what one may think, product strategy is a powerful decision-making framework that helps the team stay focused on what truly matters. Strong product vision and product strategy serve several important purposes:
Provides Direction and Focus:
- A clear vision acts as a north star giving the team a clear understanding of what they’re working towards.
- Strategy translates the vision into actionable steps, ensuring everyone is aligned on how to achieve the product’s goals.
Aligns Stakeholders:
- A clear vision and strategy can bridge communication gaps between different stakeholders (developers, designers, marketing, sales, etc.). Everyone involved in the product stays on the same page about the product’s goals, fostering collaboration and buy-in.
Motivates and Inspires:
- A compelling vision can energize the team and give them a sense of purpose in their work. Knowing they’re contributing to something bigger than just building features can boost morale and creativity.
Facilitates Decision-Making:
- When faced with tough choices about features, resources, or roadblocks, the vision and strategy provide a framework for making informed decisions that align with the product’s long-term goals.
- It guides the team towards a common goal and prevents them from getting sidetracked by irrelevant distractions. It helps the team say “no” to anything that doesn’t contribute to the product vision and is not a part of the product strategy.
Reduces Risk and Waste:
- Therefore a well-defined strategy helps avoid building features that don’t contribute to the vision or that users don’t need. This minimizes waste and keeps the team focused on delivering value.
Don’t be a Feature Factory.
Feature factory refers to an organization that constantly produces new features for their product putting a higher emphasis on quantity than quality. It results in a product that is unfocused, bloated, and doesn’t solve the real problems of the users.
The term “feature factory” was introduced by John Cutler who came up with the name after listening to a developer friend express dissatisfaction with how they ran his software firm.
No organization becomes a feature factory on purpose – it happens unintentionally as the company becomes motivated and driven by other priorities. Among others, the main characteristics of a feature factory may include:
- Velocity is a main performance indicator. The team measures its success by how much and frequently it ships. True outcomes don’t matter.
- Roadmap is often sales-driven and short-sighted. There is pressure to build new features to bring in new leads and help close more deals.
- The team doesn’t measure the impact of their work. The organization celebrates “shipping” with a minimal discussion on the longer-term effects of what was delivered.
- The organization fails to experiment and validate new ideas before building them. Success is not validated with end users and therefore features are not tweaked based on any qualitative or quantitative data; the teams immediately move on to building the next priority.
- Delivering new things is appreciated more than the health of the product as a whole. Quantity wins over quality. Refactoring, maintenance, technical debt, etc. are rarely properly prioritized.
- A product roadmap is a list of features rather than goals (outcomes) or areas of focus. The organization puts a lot of emphasis on prioritization (determining which features to work on) with no space for experimentation and validation (deciding if it is/was the right thing to build in the first place).
- Once a feature is planned in it’s rarely discarded. Features are never scrapped or removed leading to bloated product and high costs of maintenance.
- The teams deliver features in large batches instead of working on them incrementally (and adjusting the course of action based on data from the users).
- Engineering teams are not involved in problem space (i.e. exploration, discussions with clients, etc.) and they get predefined solutions (features) to implement. Handovers and lengthy specifications replace collaboration.
Most importantly, though, feature factories usually don’t have a clear product vision and strategy defined. Or, even worse, product strategy is there, but it’s buried deep in the corporate Wiki and ignored whatsoever. It’s not used as a decision-making framework and it doesn’t steer the roadmap at all.
Value outcomes over features
The simplest way to escape a feature factory trap is to start planning roadmaps using goals rather than pre-defined solutions (features).
Unlike traditional roadmaps that simply list features to be built, a goal-based roadmap prioritizes achieving specific, measurable outcomes. It acts like a compass, guiding product development towards what truly matters and focuses on what the product aims to accomplish. These goals could be increasing user engagement, boosting customer satisfaction, or entering a new market.
This shift in focus brings several advantages:
- Focus on outcomes. A goal-based roadmap emphasizes the outcomes and steers the team towards achieving key business objectives. This ensures efforts are directly tied to the overall goals of the organization.
- Data-informed decisions. A goal-based roadmap forced the team to focus on a problem space and define clear success criteria. It encourages experimentation, observability, and data-informed decisions regarding solutions to be eventually implemented.
- Focus on value delivery. The emphasis shifts from simply delivering features to delivering value. By focusing on goals, the team is constantly evaluating if the features they’re building are truly solving user problems and driving business value.
- Improved team alignment. By clearly outlining what the organization is trying to achieve, goal-based roadmaps provide a shared vision. This clarity fosters better alignment across different teams, uniting everyone towards a common purpose.
- Simplified prioritization. The goals guide decision-making and prioritize activities that bring the most value. Similarly, goal-based roadmaps make prioritizing features much simpler – you can evaluate proposed solutions based on how effectively they contribute to achieving the goals.
- Improved communication and transparency. Goal-based roadmaps promote clear communication across all levels. Stakeholders and teams can easily understand the “why” behind what’s being built, fostering better transparency.
- Flexibility and adaptability. User needs can be unpredictable. Goal-based roadmaps allow for easier adaptation – even if the solution needs to change, the core goals usually remain stable, ensuring the team stays on the strategic course.
You can learn more about how to use Goal-Oriented roadmaps from the article by Roman Pichler:
Fail fast.
Feature factories invest weeks or months of work in building a feature only to discover later that it’s not what the users want. Their roadmaps are packed with features leaving no space for experimentation and course-corrections based on learnings.
To address this problem you need to establish and cultivate a “fail fast” culture within the product engineering organization to promote experimentation and learning. By failing fast you can:
- Have faster learning cycles. You prototype quickly, test ideas with limited investment, and learn from failures rapidly. This lets you iterate and course-correct much sooner, getting to the right solution faster.
- Reduce waste. You identify problems early, saving time, money, and developer energy. These resources can then be redirected to more promising areas.
- Embrace innovation. A fear of failure can stifle creativity. With a “fail fast” mentality, you create a safe space for calculated risks and experimentation. This encourages out-of-the-box thinking and can lead to breakthroughs we wouldn’t have considered otherwise.
- Improve team engagement. The fear of a big, late-stage failure can be paralyzing. A “fail fast” approach allows teams to learn from mistakes iteratively. This builds confidence, promotes learning, and leads to a more motivated and engaged team.
It’s important to note, though, that “fail fast” doesn’t mean being reckless. You should still plan, but you need to be adaptable and willing to change the course of action based on new information. By adopting this approach, you can turn failures into stepping stones and build a more innovative and successful product engineering organization.
Establishing and cultivating a “fail fast” culture is a major endeavor, but fortunately goal-based roadmap can help make it happen. By incorporating goal-based roadmaps, you create a framework that prioritizes focus, early validation, and rapid learning:
- Clarity and focus. Well-defined goals in the roadmap provide a clear direction for the team. Everyone understands what they’re working towards and why, allowing the team to identify the most efficient path to achieve those goals. This reduces the risk of wasting time.
- Prioritization and early validation: Goal-based roadmaps help prioritize features based on their contribution to achieving the overall goal. This ensures you’re building the most impactful features first, maximizing the chance of early validation with users. With early feedback, you can identify potential failures quickly and course-correct before significant resources are invested.
- Measurable milestones: When the roadmap incorporates clear milestones tied to goals, it becomes easier to track progress and identify potential roadblocks. This allows for early intervention if something isn’t working as planned, preventing small issues from snowballing into major failures down the line.
- Flexibility and iteration: A good roadmap isn’t set in stone. By aligning it with goals, you can easily adapt it based on new information or learn from failures. This flexibility allows you to iterate quickly and incorporate user feedback, which is crucial for a “fail fast” approach.
Here are some additional tips for using goal-based roadmaps to foster a “fail fast” culture:
- Break down goals into smaller, achievable objectives. This makes progress tangible and allows for more frequent yet smaller, easy-to-recover-from-failure points.
- Set clear success metrics for each objective. This allows you to definitively determine if something is working or not, facilitating faster decision-making and course correction.
- Allocate resources for experimentation within the roadmap. Dedicate some time and resources to exploring new ideas and approaches. This allows for calculated risks and fosters the innovation that “fail fast” thrives on.
- Prioritize Minimum Viable Products (MVPs). Focus on building the core functionality first and get it in front of users quickly. This allows for early validation and avoids building unnecessary features.
- Embrace A/B testing. Test different variations of features to see what resonates with users. This data-driven approach helps us identify winners and losers quickly.
- Promote open communication. Create an environment where failures are openly discussed and learnings are shared. This fosters collaboration and helps the entire team learn from each other’s experiences.
Be focused.
Many organizations, primarily the ones working in a feature-factory mode, tend to tackle too many things at the same time. Being busy, 100% utilized, and having many projects underway is not only appreciated but also encouraged. Effective product engineering organizations, on the contrary, work differently – they focus on top-priority goals only and don’t spread themselves thin, allowing for having space to think, experiment, and adjust a course of action based on learnings.
A popular technique practiced by agile teams is limiting their Work in Progress. The same approach can be applied across the entire organization bringing even greater benefits at scale:
- Clear prioritization. Limiting the total number of initiatives the organization is actively working on at any given time forces a focus on the most critical ones. This prioritization ensures resources are allocated strategically and projects are completed efficiently.
- Improved visibility. Organization-wide WIP limits expose bottlenecks and dependencies between teams. This allows for better resource allocation and coordination, preventing projects from getting stuck waiting for others.
- Faster Cycle Times. Spreading teams too thin across multiple projects slows everything down. Limiting WIP encourages a “finish what you start” mentality, leading to faster completion of individual projects and a quicker overall flow of work through the organization.
- Reduced multitasking. Just like individuals, entire organizations can fall into the trap of context-switching between too many projects. This reduces productivity and increases the risk of errors. WIP limits promote a more focused approach, leading to higher-quality work.
- Predictability. With a clear understanding of the organization’s capacity, it becomes easier to predict timelines and delivery dates. This improves communication with stakeholders and reduces the risk of missed deadlines.
It’s worth mentioning that one of the tools that can help with limiting Work in Progress and improving focus for both the organization and its teams is a goal-based roadmap. First of all, goal-based roadmaps shift the focus from “what” to “why.” By defining goals the organization sets a clear direction that eliminates feature creep and ensures all development efforts contribute to achieving the desired outcomes. Secondly, goals paint a clear picture of the desired outcome. As a result, everyone in the organization understands the bigger picture and how their work contributes to achieving the goals. This shared vision fosters better alignment and collaboration across teams. Last but not least, goal-based roadmaps make prioritization simpler. Features are evaluated based on how effectively they contribute to achieving the set goals which ensures the team works on the initiatives with the biggest impact.
Most importantly, though, chasing focus requires the organization to not only to prioritize ruthlessly but it also acts as an effective decision-making framework. It helps the teams to say “no” to nonurgent features and decline any uncritical requests. After all, focus is not about what you do, focus is about what you don’t do.
Be data-informed.
In almost all organizations their employees (and especially the leadership team) have tons of ideas on how the product should evolve, what features should be built and when, which request should be prioritized first, etc. And while having such opinions is not bad and may be a sign of high engagement, it’s not how a product engineering organization should be run.
A world-class product engineering organization leverages hard data to guide its decisions and development processes throughout the product lifecycle. This isn’t about blindly following numbers, but rather using data as a source of truth to inform various aspects of product creation. A data-informed product engineering organization uses data strategically to make better products, improve efficiency, and stay ahead of the curve.
Being data-informed is not a new concept. You may be aware of a well-known quote from Jim Barksdale who said “If we have data, let’s look at data. If all we have are opinions, let’s go with mine.“.
A data-informed approach gives many benefits which include:
- Building products users want. By understanding user behavior through data, you can focus on features that address their needs and pain points.
- Prioritizing effectively: Data helps identify what matters most and allocate resources efficiently.
- Faster iteration and improvement: Data allows you to measure the impact of changes and iterate quickly based on real feedback.
- Reduced risk of failure: Data-driven decisions are less prone to bias and can help mitigate the risk of investing in features that don’t resonate with users.
Data-informed mindset
Becoming a data-informed organization is a mindset shift and therefore it requires some effort to settle down. A data-informed approach typically involves:
- Data collection and analysis. Teams actively collect data on user behavior, product performance, and market trends. This data is then analyzed to identify patterns and insights.
- Data-driven decision-making. Instead of relying solely on intuition or opinions, product engineers use data to make informed decisions about features, functionalities, and prioritization.
- Metrics and A/B testing. Teams establish key metrics to track progress and measure the impact of changes. A/B testing is also employed to compare different design options or features and see which ones resonate better with users based on results.
- Culture of experimentation. Data-informed organizations encourage a culture of experimentation where they can test hypotheses and learn from failures quickly. This allows for continuous improvement based on real user data.
Sample metrics to track
The specific metrics a data-informed organization collects highly depend on the product itself, the business context, and the organization’s goals. Below you can find a high-level overview of popular metrics that many teams track.
User Engagement
- Unique Visitors: The number of unique users visiting your product. Relevant for landing pages.
- Active Users: Measures the number of users actively engaging with the product within a specific timeframe.
- Session Length: Tracks the average time users spend on a single session with the product.
- User Retention: Measures the percentage of users that return to the product after a certain period.
- Conversion Rate: Percentage of users who go through a preestablished funnel and conclude a desired action.
- Click-Through Rate (CTR): Helps to understand the percentage of users clicking on a predefined Call to Action (i.e. link).
- Feature Usage: Analyzes how often specific features are used and identifies under-utilized or popular ones.
Business Impact
- Monthly Recurrent Revenue (MRR): Forecasts how the revenue develops over the months.
- Churn Rate: The percentage of customers who stop using the product over time.
- Customer Acquisition Cost (CAC): Tracks the cost associated with acquiring new users.
- Customer Lifetime Value (CLTV): Estimates the total revenue a user is expected to generate over their relationship with the product.
- Customer Lifetime Value Ratio: Shows the relationship between CLTV and CAC.
- Net Promoter Score (NPS): Measures customer loyalty and satisfaction with the product.
System Health / Performance
- Error Rates: Identifies bugs and areas of the product experiencing technical issues.
- Reliability: Demonstrates a stable and dependable software system. It has been recently added as a fifth metric to DORA metrics. Focuses on availability, latency, performance, and scalability.
Last but not least, it’s important to note that:
- Not all metrics are created equal. Choose metrics that directly tie to your business and product goals.
- Data quality is crucial. Ensure the data you collect is accurate and reliable for meaningful analysis.
- Regularly analyze and interpret the data to identify actionable insights.
- Adapt your metrics as your product and goals evolve.
Have an efficient delivery engine.
Up to this point, we discussed how effective product engineering teams ensure they build “the right thing”. Let’s focus on how outstanding organizations ensure they are building “the thing right” – its delivery engine.
Please remember that even if you have the best, well-thought-out strategy, if it’s not paired with effective execution, it doesn’t matter.
A strong delivery engine acts as the bridge between product strategy and its successful execution. It ensures the organization can translate ideas into reality efficiently, reliably, and at a high standard. It allows the organization to take advantage of its creative talent and deliver real customer value.
Why having an efficient delivery engine is critical
An effective delivery engine is crucial for a product engineering organization’s success for several reasons:
- Speed and efficiency. In today’s fast-paced market, getting value and features to users quickly is essential. A well-oiled delivery engine streamlines the process from conception to launch. This includes efficient development flow, automation, and smooth deployment pipelines. By eliminating bottlenecks and delays, the organization can iterate faster, respond to user feedback quicker, and stay ahead of the competition.
- Predictability. Unpredictable delivery schedules can damage business plans and customer trust. A strong delivery engine ensures features are launched within agreed-upon timelines. There is a common misconception that predictability necessitates devising and adhering to detailed, long-term plans. However, that shouldn’t be the case! Predictability involves maintaining an efficient flow, establishing meaningful goals, and considering the appropriate trade-offs.
- Quality and innovation. While speed is important, it shouldn’t come at the expense of quality. A good delivery engine balances velocity with a need for rigorous quality assurance. This ensures features are not only delivered on time but also function as intended and meet user expectations. Additionally, a culture of continuous improvement within the delivery engine fosters innovation by allowing for experimentation and rapid prototyping.
- Team engagement and productivity. Working in a slow and inefficient delivery environment can be demotivating for engineers. A well-defined delivery engine with clear processes and tools empowers teams to focus on what they do best – building great products. This leads to higher morale, increased productivity, and more engaged employees.
Characteristics of a world-class delivery engine
There is no one-fits-all solution for establishing a world-class delivery engine within a product engineering organization. However, there are several common characteristics of such a team:
- Automation & efficiency. Repetitive tasks should be automated wherever possible. This includes things like building, testing, and deploying code. A world-class delivery engine leverages automation tools and continuous integration/continuous delivery (CI/CD) pipelines to streamline the development process and free up engineers to focus on higher-level tasks.
- Visibility & transparency. Everyone involved in the delivery process, from developers to product managers, should have a clear understanding of the goals, current progress, and potential roadblocks. This is achieved through real-time dashboards, clear communication channels, and well-defined metrics for tracking progress. Transparency fosters collaboration and allows for faster identification and resolution of issues.
- Scalability & adaptability. The delivery engine should be able to handle changes in workload and adapt to new technologies. This requires a flexible architecture with well-defined interfaces and modular components. Additionally, a culture of continuous learning within the team ensures they can adapt to new tools and methodologies as needed.
- Feedback & iteration. A world-class delivery engine integrates feedback mechanisms throughout the entire development lifecycle. This allows for early detection of bugs, usability issues, and feature gaps. By incorporating user feedback and data-driven insights into the development process, teams can iterate quickly and deliver products that truly meet user needs.
- Operational efficiency. Streamlined delivery processes lead to operational efficiency. When teams work cohesively, they can deliver faster, reduce waste, and optimize resource utilization.
- Cross-functional collaboration. Effective delivery requires collaboration between product, engineering, and design teams. A well-structured product engineering organization brings these functions together fostering a shared responsibility and alignment.
- Culture of excellence. Ultimately, the success of any delivery engine hinges on the people behind it. A strong culture that values quality, ownership, and continuous improvement is essential. This involves investing in training and development for engineers, fostering collaboration and knowledge sharing, and celebrating successes and learning from failures.
Metrics and Developer Experience
Being data-informed is critical not only to steer business-related decisions but it should also be used to gain valuable insights into the health of the delivery engine and identify areas for improvement to achieve greater efficiency and deliver impactful products to your users.
Similarly to business-related metrics, there is no one pre-defined set of measures that you should use, but there are some industry-wide standards that most organizations should benefit from.
DORA metrics
Through several years of thorough research, the DevOps Research and Assessment (DORA) team has identified four key metrics that indicate the performance of a software development team:
- Deployment Frequency: How often an organization successfully releases to production. Measures velocity.
- Lead Time for Changes: The amount of time it takes a commit to get into production. Measures velocity.
- Change Failure Rate: The percentage of deployments causing a failure in production. Measures stability.
- Time to Restore Service: How long it takes an organization to recover from a failure in production. Measures stability.
Recently, the fifth metric – Reliability – has been added so that availability, latency, performance, and scalability are more broadly represented.
You can read the latest State of DevOps report to learn more here.
DevEx Framework
DORA metrics are a valuable tool for measuring the efficiency and reliability of a delivery engine, but they have limitations when it comes to capturing the full picture of developer productivity.
DORA metrics focus on the outputs of the development process (how quickly features are delivered and how reliably they work), however, they don’t consider the experience of the developers themselves. Also, DORA metrics can identify bottlenecks in the delivery pipeline, but they don’t necessarily pinpoint the root causes.
To address this problem the DevEx Framework has been introduced. Developer experience focuses on the lived experience of developers and the points of friction they encounter in their everyday work. Developer experience cannot be boiled down to a single metric and therefore DevEx Framework distills it into its three core dimensions: feedback loops, cognitive load, and flow state. Sample metrics suggested by the DevEx Framework are:
Other metrics
On top of the metrics suggested above, I also recommend tracking:
- Cycle Time: Measures the average time it takes to complete a single feature or task. Shorter cycle times indicate faster feedback loops and quicker adaptation.
- Defect Rate: Tracks the number of bugs discovered in production relative to the total number of features shipped.
- Automation Coverage: Measures the percentage of tasks that are automated within the delivery process. Higher coverage indicates efficient use of automation tools.
Conclusion
Building a successful product engineering team requires a deliberate and continuous effort. By prioritizing clear vision, data-driven decision-making, a “fail fast” mentality, and an efficient delivery engine, organizations can unlock the full potential of their product development efforts. The characteristics explored in this article serve as a roadmap for leaders and teams striving for excellence. Remember, becoming a world-class product engineering team is an ongoing process. The good news is there are many resources available to help you build a high-performing product engineering organization. Start by identifying your team’s strengths and weaknesses, and then focus on implementing strategies that will help you close the gaps. By taking action today, you can unlock the full potential of your product engineering team and deliver truly remarkable products.