The Three M's: Measure, Monitor, and Maintain

The Software Development Life Cycle (SDLC) describes how teams build software products. It outlines a structured way of designing, planning, building, deploying, and maintaining software. For first-time CTOs, founding engineers, or SaaS founders, it’s important to understand how the SDLC should work at different stages of their company growth. Most people focus and middle stages—such as planning, designing, and developing—as that is where the action is. There’s a critical part that often gets overlooked, especially by early-stage startups. Without it, companies are literally flying blind.

A man flying a plane blindfolded.

Engineering and the SDLC

At its core, the SDLC revolves around the engineering organization. Your engineers translate product ideas into working features and manage the entire technical stack that powers your product. They design system architectures, ensure scalability, write the necessary code, test the product, and then push it live into the production environment.

However, the work doesn't stop there. Once the product is in production, it enters the final and often neglected phase of the SDLC: post-deployment care. Engineering doesn’t just stop at release—its responsibilities extend into what happens afterward.

The Neglected Step of the SDLC: MMM

I call this final step "MMM". It stands for Measure, Monitor, Maintain. These are the pillars of post-launch success, ensuring that your product delivers value long after it goes live. This step also closes the feedback loop, ensuring that your product, design, and engineering team is always learning.

Measure

Once your software is live, it’s essential to measure product performance and user engagement. Measuring includes tracking product metrics like user engagement, feature usage, and A/B test outcomes. The product team is usually responsible for measuring product metrics.

Why it Matters

  • Feedback Loop: Measuring gives you the feedback necessary to understand what’s working and what isn’t. Without it, you’re flying blind.
  • Data-Driven Decisions: By analyzing user behavior and how features are performing, you can make informed decisions about the next steps in your product roadmap.
  • Learning from Customers: Companies that don’t measure product metrics are missing out on learning from their users, which can result in misguided product decisions and useless feature bloat.

Not measuring effectively means you're not taking full advantage of the data generated by your users. Without it, it’s hard to build a product that meets their needs.

Monitor

Monitoring ensures that your software continues to perform well once deployed in a production environment. It involves looking at your production environment from multiple angles: infrastructure, errors, performance, and uptime.

Key Areas to Monitor

  • Uptime: Know when servers go down so you can resolve issues before users notice.
  • Subsystem Health: Ensure that key services like databases, email delivery systems, and job queues are functioning correctly.
  • Error Tracking: Track and respond to both backend and frontend errors to improve user experience and maintain system integrity.
  • Resource Utilization: Monitor the load on your infrastructure to avoid both overprovisioning (wasting money on unused resources) and underprovisioning (leading to downtime from overloaded servers). Allows you to anticipate and plan for growth.

Consequences of Not Monitoring

  • Bug blindness: Without monitoring, you’ll only learn about issues from your users. This happens too rarely and far too late. Most importantly, it annoys your users and contributes to churn.
  • Partial Failures: Some issues, like broken email notifications or slow job queues, can persist for weeks without detection.
  • Wasted Resources: You could be overspending on infrastructure, or worse, running at capacity without realizing the impending risk of overload and failure.

Maintain

Maintaining your system involves continuous upkeep, from fixing bugs to performing security upgrades and ensuring your software remains up-to-date with the latest versions.

Importance of Maintenance

  • Security: Outdated systems are vulnerable to security risks, which can be costly in terms of both reputation and recovery.
  • User Experience: Accumulated bugs and system issues degrade user experience, which increases churn rates and erodes trust in your product.
  • Staying Competitive: Competitors who maintain their systems better can outpace you by offering smoother and more reliable experiences to users.

Without regular maintenance, small issues can grow into significant problems that are harder—and more expensive—to fix down the road.

Why MMM Can’t Be an Afterthought

During the early stages of your company, MMM might feel like a low priority compared to delivering features and acquiring users. Often, it does not even cross your mind. But as soon as you have real users depending on your software, you must start implementing MMM.

A Minimal Setup Is Not That Hard

Contrary to what you might imagine, a basic MMM setup is not that hard. Going from zero to one on measuring, monitoring, and maintenance is easy and surprisingly affordable if done by someone experienced. The key is to not overdo it. Build enough to give some visibility into the three M’s, but don’t build behemoths which will cost a lot to implement and run.

  • Measure
    • Use tools like Google Analytics, Pendo, or PostHog to track user behavior.
    • Ensure your product leaders are reviewing analytics weekly.
    • After every feature launch, schedule a retrospective one month into the future to evaluate user engagement.
  • Monitor
    • Review infrastructure dashboards weekly.
    • Implement uptime monitoring and deep health checks for databases, message queues, and other key systems.
    • Add an Application Performance Monitoring (APM) tool like Sentry, Datadog, or New Relic to catch errors.
    • Use tools like WasItSent.com to monitor email uptime.
  • Maintain
    • Use incident management solutions like PagerDuty or Opsgenie.
    • Conduct weekly reviews of bug reports.
    • Regularly scan dependencies in your code repository for vulnerabilities.
    • Run security scans on your Linux servers and schedule monthly review meetings to address these findings.

Don’t Wait Until It’s Too Late

Even when you’re busy building, you can’t afford to ignore MMM. If you delay these processes for too long, you’ll end up wasting time and money—and you’ll likely frustrate your users.

Cost Isn’t an Excuse

Surprisingly, many of the tools mentioned above offer free tiers suitable for young software teams. And even the paid versions are affordable, making MMM accessible even for startups on a budget.

A Fractional CTO Can Help

If you don’t have the bandwidth to set these systems up yourself, working with a fractional CTO is a smart option. They can set up the necessary tooling and also ensure that MMM becomes part of your ongoing processes. A fractional CTO can work with your team to measure, monitor, and maintain your production environment, ensuring long-term success.

By incorporating MMM into your SDLC from the start, you ensure that your product doesn’t just survive, but thrives, in the competitive SaaS landscape.

Written by Krystian Cybulski
Image
Krystian is passionate about making software run well. He helps companies see how their software works in production. If you are plagued by bugs, your customers are complaining, and your servers are squeaking under load, he can help. If you don't have the time to build systems and processes to measure, monitor, and maintain your production environment, he can get you set up.