Saturday, April 6, 2024

Embracing the Beginners Paradox

"I think it will start poorly, but who knows how it will end." This quote encapsulates a fundamental truth that often goes overlooked: the beginner's paradox.

The idea is simple: to achieve greatness, one must first embrace the discomfort of being a novice. Every expert, every accomplished individual, began their journey as a learner. It's those who not only acknowledge but embrace this initial stage who are most likely to succeed.

The feeling of being a beginner, often accompanied by embarrassment or self-doubt, can be a powerful catalyst for growth. It fosters a sense of curiosity and a willingness to learn. Think of a child exploring the world for the first time; their excitement and enthusiasm are boundless. Similarly, those who approach new challenges with a childlike wonder are more likely to thrive.

Embracing the beginner's paradox is more than just accepting your limitations. It's about recognizing that failure is an inevitable part of the learning process. The path to success is often paved with missteps and setbacks. Those who can navigate these challenges with resilience and determination are more likely to achieve their goals.

So, the next time you find yourself feeling inadequate or embarrassed about your lack of experience, remember: it's a sign that you're on the right track. Embrace the beginner's paradox and let it fuel your journey towards greatness. As the quote reminds us, "I think it will start poorly, but who knows how it will end."



Saturday, March 16, 2024

Mastering Cycle Time

In my years of experience, I've come to realize that cycle time governs not just the speed of execution but also the satisfaction of a team. It's the heartbeat of organizational efficiency, and mastering it can transform your company's performance.
I've seen it time and again: as companies grow, they build processes to keep different parts aligned. But these processes often break down at scale, becoming slower and more cumbersome. This shift pushes teams from being proactive to reactive, undermining their ability to build conviction in decisions and threatening overall cohesion.
So, how can you improve cycle time?
I've found that cycle time is primarily a function of vertical leaps in discussions and the number of people involved at each level. The most impactful change is to push decision-making down. We're not aiming for a true "bottoms up" culture, but rather one of strong local leadership. This reduces vertical leaps and accelerates decision-making.
Senior individual contributors should own more decision-making. More senior managers should lead smaller teams. I believe performance management should focus on "return on investment" rather than "absolute impact." This approach minimizes the slowdown caused by management overhead.
When vertical leaps are necessary, I've seen great success in escalating early and often. Assigning a Single Threaded Owner for critical areas - someone 100% focused on the task - can significantly reduce latency in escalations.
I applaud the instinct towards inclusion, but I've learned that if every discipline is in every meeting, execution suffers. We need representation, not direct inclusion of everyone. I've found that leveraging roles like product managers to represent multiple perspectives can be highly effective.
To avoid repeating cycles, I've found it's crucial to make decisions more durable. In my experience, basing decisions on demos and prototypes rather than docs and decks leads to more concrete and lasting choices.
I've observed that most companies suffer from excessive parallelization and insufficient prioritization. Doing less, but with better focus, can dramatically improve cycle time.
Identifying critical stakeholders early and keeping them informed is vital. I've seen too many projects derailed by late-stage input, so sequencing involvement is crucial.
While good processes accelerate progress, I've learned they need regular updates. Be vigilant about retiring or updating processes as your organization evolves. In my experience, the cost of a bad process far outweighs the benefit of a good one.
Focusing on strategies for improving cycle time isn't just about speed - it's about transforming your team from reactive to proactive, from hesitant to confident. I've seen firsthand how mastering cycle time can boost team satisfaction, enhance decision quality, and drive organizational agility.
Remember, the goal isn't to work harder, but smarter. Start implementing these changes, and you'll see your team's effectiveness and satisfaction soar. In today's fast-paced business world, mastering cycle time isn't just an advantage - it's a necessity for success.

Tuesday, February 27, 2024

People, It's Time to Stop Agilesplaining

Are you frustrated that the C-suite doesn't get Agile? Perhaps the problem lies in how you explain Agile and not a lack of desire to understand.

Why the Agile Manifesto Isn't Enough

Let's face it, referencing a decades-old document created during a skiing trip by a group of men might not be the most relatable way to introduce Agile. Agile is about so much more than its origin story.

The Agile Manifesto was a fantastic springboard for spreading Agile concepts globally. However, it's not the most effective tool for explaining Agile to individuals or smaller teams. It can feel impersonal and overwhelming.

Focus on Value, Not History

Instead of lecturing about the Agile Manifesto, try this:

  1. Understand their needs. What are their priorities and challenges? How can Agile help them achieve their goals?
  2. Speak their language. Connect Agile concepts to their existing knowledge and experience.
  3. Tell a story. Make Agile relatable through stories and examples they can remember and share.
  4. Minimize jargon. Avoid technical terms like "Agile" and "Agile Manifesto" whenever possible.

If you find yourself constantly relying on the Agile Manifesto, it might be a sign that you need to deepen your own understanding of Agile.

Agile Coaching: It's About Listening

The core of successful Agile implementation is active listening. Instead of treating Agile as a one-size-fits-all solution, tailor your approach to resonate with each individual or team.

Stop explaining Agile. Start listening and facilitating conversations that make Agile meaningful in their context. There's no need to resort to "Agilesplaining" - by focusing on value and clear communication, Agile adoption can flourish at all levels.

Tuesday, February 20, 2024

The Art and Science of Measuring Engineering Organizations

Feeling like you're constantly bombarded with requests to "measure your engineering team?" While engineering measurement can spark heated debates, it's a powerful tool that goes far beyond appeasing leadership. Effective measurement fosters open communication, builds trust between engineering and other departments, and ultimately improves team morale. By establishing a data-driven approach, you can gain valuable insights that inform strategic decision-making, optimize workflows, and propel your engineering organization towards continued success. Let's explore the nuances of engineering measurement and how to approach it strategically with a framework to help choose the right metrics for the right reasons?


Why Measure?


While debates around how to measure engineering effectiveness are common, the underlying value proposition is undeniable. Effective measurement goes beyond simply appeasing leadership or generating reports. It serves as the cornerstone for a data-driven approach to managing your engineering organization, unlocking a multitude of benefits. There are multiple reasons to measure an engineering organization:
  1. Self-assessment: Understanding your organization's performance and areas for improvement.
  2. Stakeholder communication: Providing insights to CEOs, boards, and other departments.
  3. Decision-making: Informing strategic choices about resource allocation and priorities.

Remember, measurement isn't about micromanaging or holding individuals accountable. It's about understanding your engineering landscape, identifying areas for growth, and fostering a culture of continuous improvement.

Stakeholders Needs

As discussed earlier, there are multiple reasons for measuring an engineering organization. Often, stakeholders will rely on engineering measurement for their own specific needs.  Here's a breakdown of the various stakeholders to consider and the data their engineering measurement needs:
  • You: As an engineering leader, you need data to make informed decisions about project selection, resource allocation, and overall team effectiveness.
  • Your CEO and Board: Executives are interested in how engineering contributes to the company's strategic goals.
  • Finance: Finance teams track headcount, vendor costs, and engineering's impact on the budget.
  • Strategic Peers: Product, design, and sales functions can leverage engineering metrics to optimize their own work.
  • Tactical Peers: Customer Success and Legal departments often have specific metrics related to engineering's output, such as user ticket resolution times.

Four Key Measurement Categories

The specific metrics you choose to measure will depend on your unique needs and stakeholders. However, there are several general categories of metrics that can be valuable for most engineering organizations. Here's a breakdown to get you started:
1. Measure to Plan: These metrics help you align engineering efforts with business goals and make informed decisions about project selection and resource allocation.
  • Examples:
    • Number of projects shipped by team and their impact on key performance indicators (KPIs) like revenue or user adoption.
    • Time spent on bug fixes vs. new features development.
    • Engineering capacity allocated to different business units or product lines.
2. Measure to Operate: These metrics provide insight into the health and stability of your software and teams, allowing you to identify and address potential issues before they impact users.
  • Examples:
    • Number and severity of incidents encountered.
    • Downtime experienced by user-facing APIs and websites.
    • Latency of user-facing APIs and websites.
    • Engineering costs normalized against a core business metric (e.g., cost to serve per API request).
3. Measure to Optimize: These metrics help you understand how efficiently your engineering teams are working and identify areas for improvement.
  • Examples:
    • Developer productivity surveys (e.g., developer satisfaction with tooling, processes, etc.).
    • Lead time for completing user stories or bug fixes.
    • Code churn (the amount of code that is changed but ultimately discarded).
    • Established industry frameworks like Accelerate or SPACE (these frameworks measure software delivery performance).
4. Measure to Inspire and Aspire: These metrics showcase the transformative impact of engineering on the business, motivating both current and potential hires.
  • Examples:
    • Reduction in development time for a particular feature after a technical improvement.
    • Increased scalability and reliability of the system after infrastructure upgrades.
    • Elimination of manual tasks through automation.
Remember: When choosing metrics, focus on those that are actionable and will directly influence decision-making.  Avoid vanity metrics that don't provide meaningful insights.
Here are some additional tips for selecting metrics:
  • Start small and scale up: Don't overwhelm yourself by trying to measure everything at once. Begin with a few core metrics and expand as you gain confidence.
  • Balance the need for accuracy with the need for progress: While it's important to have reliable data, don't get bogged down in perfecting metrics before you even begin collecting data.
  • Align with existing data collection efforts: Where possible, leverage data already being collected by your team or other departments.

By following these guidelines and tailoring your measurements to your specific context, you can establish a data-driven approach that empowers you to effectively manage your engineering organization.

Anti-patterns

The realm of engineering measurement is littered with potential pitfalls.  Here are some common missteps or anti-patterns to watch out for:
  • Misusing Optimization Metrics for Performance Evaluation: It can be tempting to judge individual or team performance based on metrics designed to optimize workflows. For instance, a team generating fewer pull requests than others might be seen as less productive.  However, this judgment could be inaccurate. Context is crucial. Perhaps the team is exceptionally skilled at writing clean code, requiring fewer pull requests for review.  Focus on evaluating teams based on metrics that reflect planning and operational effectiveness rather than optimization goals.
  • Individual Measurement vs. Team Measurement: Software development is a collaborative effort. While one engineer might be focused on coding this sprint, another might be providing the support necessary for the first engineer's success.  While individual data can be useful for diagnostics, it's a poor tool for measuring overall team performance.  Keep your focus on metrics that reflect the efforts and achievements of the entire organization or individual teams.  If a metric suggests a potential problem, then you can investigate individual data for further diagnosis but avoid using it for direct evaluation.
  • Fearing Data Misuse:  Some leaders worry that their CEO or board will misinterpret data.  For example, they might see a concern if they discover engineers only deploy code twice a week, potentially misconstruing this as laziness.  While these discussions can be frustrating, remember that avoiding them won't solve the problem.  Instead, take the time to educate stakeholders who misinterpret data.  Approach these conversations with an open mind, acknowledging that there may be room for misinterpretation, and guide them towards a more nuanced understanding of the data's implications.
  • Isolating Metric Selection:  While having a clear vision for measurement is important, avoid making decisions in a vacuum. Solicit feedback and iterate on your chosen metrics, especially when you're new to a company.  Projecting your understanding from a previous role can erode trust within your new team.  Instead, build trust by incorporating feedback from your team and peers throughout the process of selecting and implementing engineering metrics.

By recognizing these pitfalls and taking proactive steps to avoid them, you can steer clear of misinterpretations and ensure your measurement efforts yield valuable insights that benefit your engineering organization.  Remember, effective measurement is an ongoing process, not a one-time fix.  As your organization and its goals evolve, so too should your metrics and how you utilize them.

Building Confidence in Your Data

Rolling out a new set of engineering metrics is just the first step.  The true value comes from continually analyzing and refining that data. Here are some key practices to ensure your data is working for you:
  • Regular Data Reviews: Schedule regular reviews (weekly is ideal) to examine your metrics.  Focus on how the data has changed over time (month, quarter, year) to identify trends. Whenever possible, set goals against your metrics.  Both achieving and missing these goals can be valuable learning experiences, highlighting areas that require further attention.
  • Hypothesis-Driven Analysis: Don't just observe data changes, strive to understand them.  Develop hypotheses for why the data might be changing.  For example, if you see a cost-per-request increase despite a rise in requests per second, investigate the reason for this unexpected outcome.  Use this newfound understanding to refine your hypothesis and the metrics you track.
  • Collaborative Data Exploration: Don't go it alone! Data analysis is most effective when conducted with a team with diverse perspectives.  Including individuals from different departments allows for brainstorming various hypotheses about how the data might behave.  This collaborative approach fosters collective learning and a deeper understanding of the data's nuances.
  • Segmentation is Key: Real-world experiences can vary greatly within an organization.  For instance, reliability and latency metrics might not reflect the experience of European users if your data centers and most users are located in the United States.  Similarly, build strategies likely differ between Scala, Python, and Go teams.  Segmenting your data allows you to capture these distinct experiences and gain a more nuanced understanding of your engineering landscape.
  • Bridging the Gap Between Data and Experience: Don't solely rely on objective measurements.  Compare these metrics with the subjective experiences of your teams.  If, for example, build times are supposedly decreasing, but engineers still feel like builds are slow, investigate the discrepancy.  What factors might be contributing to this difference in perception?  By bridging this gap, you ensure your data accurately reflects the reality of your engineering organization.

Following these practices will equip you to effectively analyze your data, identify areas for improvement, and ultimately make data-driven decisions that propel your engineering organization forward. Remember, data is a powerful tool, but its true value lies in how you interpret and utilize it.  By dedicating time to understanding your data's limitations and fostering a culture of data exploration, you can ensure your metrics guide you rather than mislead you.


In conclusion, effectively measuring your engineering organization isn't about collecting dust on a dashboard full of numbers. It's about harnessing the power of data to gain actionable insights that drive continuous improvement. By following the framework outlined and avoiding common pitfalls, you can establish a data-driven culture that empowers your engineers and propels your organization forward. Remember, measurement is an ongoing process, not a one-time fix. As your organization and its goals evolve, so too should your metrics and how you utilize them. Embrace a culture of data exploration, continuously refine your approach, and watch your engineering organization reach its full potential.

Tuesday, February 6, 2024

The Technology Supercycle: Navigating Our Future

We find ourselves at the heart of what is being termed the "technology supercycle," a profound era marked by the simultaneous maturation of three transformative general-purpose technologies: Artificial Intelligence (AI), Biotechnology, and the Connected Device/Sensor Ecosystem. This convergence has the potential to alter our economic and societal landscapes as significantly as the Industrial Revolution and the emergence of the internet once did.

Artificial Intelligence: Revolution and Responsibility

While not new, artificial intelligence continues to dominate tech trends due to its expansive capabilities and inherent challenges. Despite its potential, AI faces significant issues such as ingrained biases, accountability in decision-making, and the dangers posed by open-source models that could be exploited for harmful purposes. Moreover, generative AI is progressing from simple text-based systems to more complex models that can transform abstract concepts into tangible outcomes, extending its influence across various domains.

Smart Device Ecosystem: Innovations and Intrusions

The proliferation of smart devices and sensors—ranging from VR/AR headsets dubbed "face computers" to sophisticated wearables capable of interpreting human intentions—is creating a new frontier in technology. These devices not only enrich the user experience but also funnel vast amounts of real-world data into AI systems through large action models. However, this integration raises significant concerns regarding privacy and the potential for social scoring systems reminiscent of scenarios from "Black Mirror."

Biotechnology: Beyond Silicon

In the realm of biotechnology, groundbreaking developments in synthetic biology and biological computers—particularly those utilizing human brain cells or organoids—herald a new age of computing that could surpass traditional silicon-based systems. These innovations promise to deliver faster, more energy-efficient, and powerful computational abilities, potentially reaching exascale computing levels previously outlined in reports like those from MIT Technology Review.

Societal Impacts: Steering the Supercycle

The concentration of technological power in the hands of a few, driven by a techno-utopian agenda, poses significant risks to societal balance and equity. To address these, it is imperative for governments to establish dedicated bodies to manage the disruptive impacts of this supercycle on industries and employment.

Furthermore, companies are urged to redefine their strategic approaches by mapping out evolving value networks. This proactive stance will enable them to better anticipate disruptions and identify opportunities for creating future value.

Personal and Professional Navigation Strategies

For individuals, success in this era demands an informed understanding of the trends shaping our world and their potential impacts. Adopting strategic foresight and engaging in long-term planning are crucial to adapt and thrive amidst these changes. It is equally important for individuals and organizations to participate actively in discussions aimed at directing the technology supercycle toward a more equitable future.

As we ride the waves of this technology supercycle, it becomes increasingly important to engage proactively and strategically. By understanding the forces at play and their potential impacts, we can harness these technologies to foster a thriving, inclusive future.

Wednesday, November 1, 2023

Software Engineering in 2024: Trends, Skills, and the Future You Need to Know


In my role, it's imperative that I keep my finger on the pulse of technology trends and a keen eye on which direction the technology winds are blowing. The year 2024 promises to be a landmark year for software engineering, with groundbreaking trends shaping the industry and demanding new skillsets from developers.  This post serves as your roadmap to success, providing insights into the most impactful trends that will define the future of software development.  We'll also explore the programming languages that are in high demand, empowering you to cultivate the skills necessary to excel in this dynamic and ever-evolving field.

1. Rise of AI and Machine Learning in Software Development
The integration of AI and machine learning into software development isn't just a trend, it's a revolution. AI-powered code generation tools, like GitHub's Copilot, are becoming indispensable for developers. Imagine this: a tool that automates repetitive tasks suggests code snippets in real-time, and significantly reduces errors. This translates to a faster development cycle and a significant boost in developer productivity. But AI's impact goes beyond code generation. Machine learning algorithms and frameworks are being harnessed to create smarter applications with capabilities like predictive analytics and automated data processing, pushing the boundaries of software innovation.

2. Containerization and Microservices
The movement towards containerization, primarily through technologies like Docker, marks a significant evolution in application deployment, heralding a new era of scalability and efficiency. By packaging applications and their dependencies into lightweight containers, developers can streamline the deployment and management of applications across various environments. Coupled with this, the shift towards microservices architecture is reshaping the software development landscape. This approach, which segments large, monolithic applications into smaller, independently manageable services, enhances the flexibility and agility of the development process, enabling more scalable and resilient application ecosystems.

3. Focus on Cybersecurity
In the ever-evolving threat landscape, robust cybersecurity measures are no longer optional but a fundamental aspect of software development.  Cybercriminals are constantly devising new methods to exploit vulnerabilities, so it's crucial for developers to prioritize security throughout the entire development lifecycle. This includes:

- Secure Coding Practices: Implementing secure coding practices from the get-go helps in mitigating common vulnerabilities like buffer overflows and SQL injections.
- Threat Modeling: Identifying potential security threats early on in the development process allows developers to proactively address them before they become exploitable weaknesses.
- Regular Security Testing: Regularly integrating security testing tools throughout the development cycle helps unearth vulnerabilities before applications are deployed to production environments.
- Staying Updated on Security Threats: The cybersecurity landscape is constantly evolving, so developers need to stay informed about the latest threats and vulnerabilities to ensure their applications remain secure.

By prioritizing these practices, developers can create more secure applications, protecting users' data and mitigating the risk of costly data breaches.

4. Popularity of Remote Development Environments and the New Norm of Working From Home
The reality is clear: remote development is here to stay.  A significant portion, a third of developers, express a desire to work remotely full-time, while an overwhelming majority (71%) prefer a hybrid model. Perhaps the most telling statistic is that one in three developers would consider leaving their jobs if the option to work remotely were revoked.  In response, companies employing remote developers are facing a significant shift in workplace attitudes. To maintain a satisfied and productive workforce, these companies need to adapt and embrace tools that facilitate collaboration among geographically dispersed teams. This is where cloud-based Integrated Development Environments (IDEs) come in. These platforms provide developers with a collaborative workspace accessible from anywhere, along with access to high-powered computing resources, making remote development seamless and efficient.

5. Empowering Development Through Low-Code/No-Code Platforms
The emergence of low-code/no-code platforms is revolutionizing software development by making it accessible to a broader spectrum of people. These platforms, equipped with user-friendly visual interfaces and drag-and-drop capabilities, enable individuals across varying degrees of technical know-how to design and deploy applications with minimal coding requirements. This shift not only accelerates the creation of applications but also significantly condenses the development cycle. Furthermore, by enabling so-called citizen developers to take the helm of application development, organizations reduce their reliance on specialized development teams. This paradigm fosters enhanced organizational agility and the ability to swiftly respond to market changes, marking a pivotal turn in how software solutions are crafted and deployed.

6. In-Demand Programming Languages
While the landscape is constantly evolving, some languages continue to reign supreme:

Python: Retains its top spot, especially in AI, machine learning, and data science.
JavaScript: Remains essential for web development, alongside frameworks like React and Node.js. And gains significant traction on the back end with the surge of node.js
TypeScript: Gains traction for its ability to improve code quality and maintainability through static typing.
Go and Rust: Stand out for their efficiency and performance, particularly in system-level and concurrent programming.
Kotlin: Maintains its popularity for Android app development, offering a concise syntax and seamless interoperability with Java.
Swift: Remains in high demand for iOS development, valued for its safety features and performance.

Bonus: DevOps on the Rise

It's important to acknowledge the growing importance of DevOps skills. DevOps bridges the gap between development and operations, ensuring smooth collaboration and faster deployments. By staying adept in both traditional and emerging programming languages while also considering DevOps expertise, software engineers can truly excel in the ever-evolving world of technology.

7. Sustainable Software Engineering
The software development industry has a significant impact on the environment.  There's a growing movement towards sustainable software engineering practices that aim to minimize this impact. This involves:

- Energy Efficiency: Optimizing code for efficiency and leveraging energy-efficient hardware can significantly reduce the energy consumption of software applications.
- Resource Optimization: Developing software that utilizes resources efficiently and minimizes waste is crucial for sustainable practices. This can involve techniques like minimizing unnecessary data transfers and optimizing cloud resource utilization.
- Lifecycle Management: Considering the entire lifecycle of software, from development to deployment and decommissioning, allows for the identification of opportunities to reduce environmental impact at each stage. This might involve using recyclable materials for hardware or employing cloud providers with sustainable energy practices.

By embracing these principles, software engineers can contribute to a more sustainable future for the technology industry.  Developing software with a focus on environmental responsibility demonstrates a forward-thinking approach and positions engineers as valuable contributors to a greener future.

8. The Future of Blockchain and Web3
While the hype surrounding blockchain technology can fluctuate, its underlying potential remains undeniable. As the infrastructure and security of blockchain platforms continue to mature, we can expect to see increased adoption in several key areas:

- Decentralized Finance (DeFi): Blockchain technology is poised to revolutionize the financial sector, enabling secure and transparent peer-to-peer transactions. With advancements in scalability and user experience, DeFi applications could become more mainstream, offering greater financial inclusion and control to users.
- Supply Chain Management: Blockchain's ability to create tamper-proof records makes it ideal for tracking the movement of goods throughout complex supply chains. This can enhance transparency, improve efficiency, and combat issues like counterfeiting.
- The Internet of Things (IoT): As the number of connected devices explodes, blockchain can provide a secure and reliable infrastructure for managing data exchanges and interactions between devices within the IoT ecosystem.

These are just a few examples, and the full potential of blockchain technology is still being explored. By staying informed about these advancements, software engineers can position themselves to be at the forefront of this exciting technological revolution.

As we embark on 2024, the software engineering landscape is poised for exciting advancements. The rise of AI and machine learning is transforming how developers work and applications function. The shift towards remote development demands innovative solutions like cloud-based IDEs to foster collaboration across teams.  Low-code/no-code platforms are democratizing software creation, while the focus on sustainability encourages the development of energy-efficient solutions.  Staying ahead of these trends and mastering a combination of established and emerging programming languages, alongside potentially valuable DevOps skills, will be paramount for software engineers to thrive in the next phase of digital innovation.

Wednesday, October 25, 2023

The SaaS Paradox: High Margins, Low Profits

In the world of tech startups and Silicon Valley, Software as a Service (SaaS) has long been hailed as a goldmine of profitability. The promise is enticing: create a product once, then sell it repeatedly with minimal additional costs. It's a business model that should print money. Yet, a closer look at the financials of SaaS companies reveals a startling paradox: despite boasting impressive gross margins, many of these businesses struggle to turn a profit. Let's dive into this conundrum and explore why the economics of SaaS aren't as straightforward as they might seem.

The Promise of SaaS Economics

At first glance, the SaaS business model appears to be a financial dream come true. Once a software product is developed, the cost of "manufacturing" additional units is negligible. This leads to exceptionally high gross margins – often around 70-80%. Compare this to traditional industries, where gross margins typically hover around 40-45%, and you can see why investors have been so excited about software companies.

The theory goes that after the initial development costs, each new customer brings in revenue with very little associated cost. This "zero marginal cost" component is what makes software businesses so attractive. Microsoft's Teams platform provides a perfect illustration of this principle. Last year, 320 million people used Microsoft Teams every month. If one more user were to join, it would only cost Microsoft a few cents in additional server load, but they could charge that user four dollars. This minimal marginal cost, coupled with a fixed price point, creates a hugely scalable and potentially profitable model.

Even when factoring in support costs, server maintenance, and other operational expenses (known as the "cost of goods served" or COGS), the margins remain impressive. For instance, it might cost Microsoft about a dollar to support an additional four-dollar seat on Teams, resulting in a gross margin of 75%. This "three dollars of profit on four dollars of revenue" scenario is what makes software businesses so enticing to investors and entrepreneurs alike.

It's this promise of scale that drives venture capitalists to pour billions into software startups, even those that have been losing money for years. The allure is strong: build a product once, then sell it millions or even billions of times with minimal additional cost. In theory, once the product is built and the market is captured, profits should flow freely. This is the core of the "software has great margins" theory that has fueled Silicon Valley's growth for decades.

The Reality: Profitability Challenges

However, the reality paints a different picture. According to industry data, while the average SaaS company boasts gross margins of about 74%, their operating margins tell a starkly different story. Surprisingly, the average operating margin for SaaS companies is negative 11%. This means that despite their high gross margins, most SaaS companies are actually losing money.

To put this into perspective, let's compare SaaS businesses to companies in the S&P 500. The average S&P 500 company has a gross margin of 40-45% – significantly lower than SaaS companies. Yet, their average operating margin is positive 15%. In other words, traditional businesses with lower gross margins are generally more profitable than their SaaS counterparts.

Why SaaS Companies Struggle to Profit

So, where does all the money go? There are several factors contributing to this profitability paradox:

  1. Continuous Development Costs: Unlike traditional software sold in boxes, SaaS products are expected to evolve constantly. Customers don't just buy what exists today; they buy into the promise of future improvements. This means SaaS companies must continually invest in product development, which eats into their margins.
  2. Customer Expectations: In the SaaS world, standing still is equivalent to moving backward. Customers expect regular updates, new features, and improvements. If a SaaS product becomes stagnant, customers are likely to churn, making ongoing development not just a growth strategy but a necessity for retention.
  3. The "Growth Mode" Trap: Many SaaS companies get stuck in a perpetual state of growth mode. They continuously reinvest in sales, marketing, and product development to capture market share, often at the expense of profitability. The promise is that these investments will pay off in the future, but for many companies, that future never arrives.

Rethinking SaaS Economics

To truly understand SaaS economics, we need to reconsider how we view development costs. While accounting practices classify these as operating expenses, in reality, they function more like costs of goods sold (COGS) for SaaS businesses. If you can only sell and retain customers by promising ongoing improvements, how different are these costs from the expenses directly tied to delivering your product?

Moreover, the idea that SaaS companies will eventually reach a "steady state" where they can reduce investment and reap profits may be more myth than reality. In a competitive landscape where customers expect continuous innovation, can a SaaS business ever truly stop investing heavily in product development without risking its customer base?

Conclusion

The SaaS paradox of high margins and low profits challenges us to rethink our approach to software business models. It's time to acknowledge that the economics of SaaS are more complex than initially thought. For investors and entrepreneurs alike, this means adjusting expectations and strategies.

Success in SaaS may not come from chasing the myth of effortless scalability, but from finding sustainable ways to balance growth with profitability. It requires a more nuanced understanding of the ongoing costs associated with maintaining and improving software products in a subscription model.

As we move forward, the software industry needs to build new theories and business plans that account for these realities. Only by acknowledging the true costs of running a SaaS business can we hope to create more sustainable and ultimately profitable software companies.

Can the EU Compete?