More Software Engineering Radio episodes

Rob Moffat on Risk-First Software Development thumbnail

Rob Moffat on Risk-First Software Development

Published 20 May 2026

Recommended: Risk identification and management is a forgotten art

Duration: 52:31

Software development prioritizes risk management through frameworks like test-driven development and agile, addressing hidden risks, AI deployment challenges, open-source dependencies, and organizational prioritization to balance innovation with safeguards.

Episode Description

In this episode, Rob Moffat, author of Risk-First Software Development and chief technical architect at the FinTech Open Source Software Foundation (F...

Overview

The podcast emphasizes that software development is fundamentally an exercise in risk management, with features created to mitigate risks like user disengagement, operational failures, or financial losses. It highlights how traditional methodologies (e.g., Scrum, DevOps) inherently manage risks but often lack explicit focus on risk analysis. A proposed risk-first framework shifts priorities by identifying and categorizing risks based on project contexts, aligning practices like test-driven development (TDD), pair programming, or limiting work-in-progress (WIP) to specific risk categories. The framework advocates for proactive risk identification, prioritization, and ongoing evaluation of how technical practices interact with risks, rejecting rigid adherence to methodologies in favor of context-driven adaptation. Challenges include overlooked hidden risks, misaligned stakeholder priorities, and the complexity of quantifying software risks, which the podcast compares to broader organizational risk taxonomies and financial risk models like Value at Risk (VaR).

The discussion extends beyond software development to include AI deployment risks, such as hallucinations, bias, and data security, as well as the unique challenges of open source collaboration, including license compliance, supply chain vulnerabilities, and the risks of contributing or consuming open source code without oversight. The podcast also explores agency risk, where misalignment between individual and organizational goals can undermine project success, and advocates for frameworks that integrate risk awareness into workflows, such as time-boxing, reviews, and contracts. A central theme is the universal nature of risk management across professions, framing all workincluding finance, law, and AIas inherently involving risk mitigation. The podcast encourages adopting a risk-first perspective to improve decision-making, prioritize tasks, and align practices with organizational objectives, whether in software development or broader domains.

What If

  • What if you re-prioritized your backlog using the "risk lens" approach?

    • Move: Reassess each backlog item by evaluating its associated risks (e.g., technical debt, dependency vulnerabilities, or user disengagement) and reorder tasks based on risk impact, not just feature value.
    • Why now: Traditional feature-driven prioritization may overlook hidden risks (e.g., a poorly designed API causing future maintenance costs). Addressing risks upfront reduces long-term operational and financial losses.
    • Expected upside: Improved alignment with stakeholder expectations, reduced rework, and faster delivery of high-value, low-risk features.
  • What if you implemented a "risk register" for AI features in your project?

    • Move: Create a centralized document logging AI-specific risks (e.g., hallucination, bias, or data leaks) for each feature, along with mitigation strategies (e.g., explainability checks or ethical audits).
    • Why now: AI deployment risks (e.g., legal liability from incorrect outputs) are growing rapidly, and proactive documentation ensures compliance and transparency.
    • Expected upside: Avoid reputational damage, regulatory penalties, and operational failures by systematically addressing AI risks before deployment.
  • What if you used a "Git proxy" tool to audit open source contributions before publishing?

    • Move: Integrate a tool like Finos Git Proxy to enforce a "four-eyes review" process for all open source contributions, ensuring no accidental data leaks (e.g., PII or secrets) are committed.
    • Why now: Open source contribution risks (e.g., exposing sensitive data) are critical for solo developers relying on external libraries, and the tool automates compliance checks.
    • Expected upside: Maintain security and license compliance while contributing to open source, reducing the risk of legal or reputational harm.

Takeaway

  1. Conduct a Risk Assessment for Each Project
    Begin every project by identifying key risks (e.g., technical debt, dependency vulnerabilities, or compliance gaps) and align your development practices (e.g., TDD, unit testing, or static code analysis) to mitigate them. Use tools like GitHubs security features or open-source scanners to automate risk detection.

  2. Implement Unit Testing and Code Review Practices
    Integrate unit testing into your workflow to catch implementation errors early and reduce long-term maintenance risks. For solo developers, use automated testing frameworks (e.g., Jest, PyTest) and schedule regular code reviews (e.g., with peers or AI tools) to ensure code quality and reduce oversight gaps.

  3. Reassess Your Backlog Using a Risk-Based Lens
    Regularly evaluate your project backlog to prioritize tasks that address high-impact risks (e.g., security vulnerabilities, regulatory compliance, or critical feature bugs) over routine feature work. Use a risk matrix to quantify the likelihood and impact of unresolved issues.

  4. Manage Open Source Risks with Strict Controls
    When using open source components, maintain an inventory of all dependencies and use tools like Git Proxy (from Finos) to enforce pre-contribution reviews, ensuring license compliance and preventing accidental data leaks. Avoid internal "forking" by contributing upstream to maintain influence over project direction.

  5. Establish Iterative Feedback Loops for Communication Risks
    Use lightweight practices (e.g., weekly check-ins, documentation updates, or peer feedback) to address communication risks, ensuring alignment with project goals and reducing misinterpretation of requirements. For solo developers, tools like Notion or Trello can help track stakeholder expectations and mitigate scope drift.


These takeaways are grounded in the texts emphasis on risk management, open source collaboration, and iterative practices, tailored for solo developers to balance innovation with safeguards.

Final Notes

The provided text is a comprehensive guide to risk management in software development, emphasizing the importance of understanding and addressing risks as a core aspect of the development process. Here are some key insights and takeaways, along with their potential relevance and usefulness to readers:

  1. Risk Management as a Primary Concern:

    • Software development is fundamentally about managing risks to ensure the delivery of successful products.
    • Developing software involves inherent risks such as user disengagement, operational failures, and financial losses.
    • Focus on mitigating these risks by writing features that address them.
    • Relevance and usefulness: Developers, project managers, and business stakeholders should understand the critical importance of risk management in software development.
  2. Adapting Methodologies to Risk:

    • Traditional methodologies like Scrum, Kanban, and DevOps aim to manage risks but often lack an explicit focus on risk analysis.
    • Practicing risk-first frameworks that explicitly analyze and prioritize risks can enhance outcomes.
    • Relevance and usefulness: Developers and project managers can benefit from understanding how to adapt existing methodologies to better manage risks.
  3. Risk Framework Overview:

    • Introduce the concept of a risk framework as a structured approach to identifying and managing risks in software development.
    • Risks are categorized based on project context and techniques or controls are designed to mitigate them.
    • Relevance and usefulness: Developers, project managers, and business stakeholders can benefit from understanding how a risk framework can help manage risks effectively.
  4. Challenges and Opportunities:

    • Developers often overlook the hidden risks associated with their work, focusing more on coding or delivery.
    • Adopting a risk-centric perspective can guide better choices in methodologies and tools based on their risk-mitigation effectiveness.
    • Relevance and usefulness: Developers, project managers, and business stakeholders should be aware of the challenges and opportunities associated with risk management in software development.
  5. Implementation Workflow:

    • Recommands teams to:
      • Identify risks within their project context.
      • Weigh risks against each other to prioritize mitigation efforts.
      • Align practices (like TDD, Scrum ceremonies) with the risks they address to optimize outcomes.
    • Encourage ongoing analysis of how practices interact with risks rather than adopting a one-size-fits-all approach.
    • Relevance and usefulness: Developers and project managers can benefit from understanding the steps involved in implementing a risk-first approach.
  6. Quantifying Software Risk:

    • Quantifying software risks (e.g., technical debt) in monetary terms can help guide business priorities.
    • Risk frameworks like "risk-first" can enable software teams to articulate and quantify risks more clearly.
    • Relevance and usefulness: Developers, project managers, and business stakeholders should be aware of the challenge and potential solutions related to quantifying software risks.
  7. Agency Risk:

    • Risk that agency behavior causes misalignment between individuals' goals and organizational objectives.
    • Rooted in the "principal-agent problem."
    • Relevance and usefulness: Business leaders and project managers should understand the concept of agency risk and how to address it in software development.
  8. Risk First Framework:

    • Aids in identifying and categorizing risks to address them systematically.
    • Focuses on cataloging pre-existing risks and assigning them clear terminology for better understanding.
    • Relevance and usefulness: Developers, project managers, and business stakeholders can benefit from understanding the principles of the risk-first framework.
  9. Risk Management in AI:

    • Emphasize the importance of continuous risk assessment and adaptability in managing AI risks.
    • Balancing innovation with safeguards to prevent unintended consequences in AI deployment.
    • Relevance and usefulness: Developers, project managers, and business stakeholders should be aware of the challenges and importance of risk management in AI development.
  10. Open Source Collaboration:

    • Collaboration in open source projects can improve collective outcomes and reduce redundant work.
    • Shared frameworks like the AI governance risk framework involve input from diverse stakeholders across industries.
    • Relevance and usefulness: Developers, project managers, and business stakeholders can benefit from understanding the benefits and challenges of open source collaboration.

Recent Episodes of Software Engineering Radio

13 May 2026 SE Radio 720: Martin Dilger on Understanding Eventsourcing

Recommended: Useful Architectural Pattern.

Event sourcing is a system design approach that records changes as sequential events to ensure historical traceability, uses event modeling for aligning systems with human workflows, contrasts with CRUD architectures, and emphasizes slice-based design, event streams, and practical applications like legacy modernization and workflow simplification.

6 May 2026 Birol Yildiz on Building an Agentic AI SRE

AI agents in SRE leverage autonomous decision-making, agentic search, and lightweight architectures to replace static runbooks, balancing autonomy with reliability challenges, context management, and human oversight in dynamic environments.

29 Apr 2026 Will Sentance on JS Modernization

JavaScript's evolution from a 1995 scripting language to a performance-optimized modern tool balances innovation with backward compatibility through TC39's incremental updates, browser advancements, community-driven libraries, key features like async/await and symbols, engine optimizations, and a design philosophy prioritizing flexibility and user-driven standardization for large-scale frameworks.

23 Apr 2026 Eric Tschetter on Decoupling Observability

Recommended: Telemetry is important, avoiding vendor lockin is even more important.

Observability in microservices emphasizes decoupled architectures over traditional frameworks to address vendor lock-in, data interoperability, and scalability challenges, while balancing unstructured telemetry management, query language standardization, and cross-team collaboration.

15 Apr 2026 Martin Kleppmann Local-First Software

Local First Software combines local data storage with cloud collaboration to enable offline access, real-time editing, and seamless syncing via AutoMerge and CRDTs, prioritizing user control, privacy, and decentralized workflows with future focus on open standards and AI integration.

More Software Engineering Radio episodes