---
title: "SafeCode Consulting - Phase 1: Discovery & Diagnosis"
description: "How do you work with SafeCode?  What would it look like?  This page describes the engagement model, and grants access to the phase descriptions."
url: "https://safecodetech.com/work/working-with-safecode/discovery-diagnosis.html"
date: "2026-10-12T10:30:36-04:00"
language: "en-US"
---

## Breadcrumbs

[Home](https://safecodetech.com/) > [Work](https://safecodetech.com/work/case-stories.html) > [Working with SafeCode](https://safecodetech.com/work/working-with-safecode.html) > Phase 1: Discovery & Diagnosis

# Phase 1: Discovery & Diagnosis

   ![Discovery & Diagnoses](https://safecodetech.com/work/working-with-safecode/images/sc_theme/Icons/DiscoveryPhase_120x120.png) Phase 1

Before any work can be scoped, the situation must be understood. Discovery & Diagnosis is where SafeCode learns your program, identifies the real pain points, and distinguishes the stated problem from its underlying cause. For straightforward engagements, this may be brief. For complex or troubled programs, it may be the most valuable work of the entire relationship.

Most clients arrive with a clear sense of what the problem is. That understanding deserves respect — and it is always the starting point. But there is a reason you would be troubled by a physician who scheduled surgery based on your own self-diagnosis, however informed. The value of an independent diagnostic perspective is not that the client is wrong. It is that a trained outside eye sees things that are invisible from the inside — and that operating on the wrong problem, however skillfully, does not produce the right outcome. SafeCode insists on the diagnostic phase for the same reason your doctor insists on examining you: because the cost of a correct diagnosis is small, and the cost of skipping it can be very large.

Discovery begins with an initial consultation focused on understanding the program context, the regulatory environment, the current state of the work, what has already been tried, and what outcome the client actually needs. It typically involves program management and key technical leads on the client side.

Diagnosis is where that understanding deepens. For some engagements, diagnosis is brief — the situation is clear and the path forward is not in dispute. For others, particularly recovery situations, integration failures, or programs that have been stuck for some time, diagnosis is substantive technical work: reviewing artifacts, examining code, analyzing requirements, assessing process outputs, or reconstructing the sequence of decisions that led to the current state.

The line between Discovery and Diagnosis is intentionally blurry. In practice, the diagnosis emerges from the discovery — there is no clean handoff between learning the situation and understanding what it means. What matters is that neither phase is rushed. A scoping conversation that precedes real understanding produces the wrong scope.

**How this phase varies:**

- For *certification* and *process* engagements, Discovery focuses on understanding the program's regulatory context, current process state, and relationship with the certification authority. Diagnosis may involve reviewing existing process documentation, evidence packages, or prior audit findings.
- For *requirements* and *engineering* engagements, Discovery involves understanding the system, the team structure, and the development state. Diagnosis may include reviewing existing requirements, architecture documents, or integration failure records.
- For *verification* and *analysis* engagements, Discovery establishes what has already been verified and what remains uncertain. Diagnosis identifies where coverage is weak, where analysis is needed, and what the evidence gaps actually are.
- For *advisory* engagements, Discovery and Diagnosis may happen quickly in a single session, with the emphasis on a specific decision point or upcoming milestone rather than a broad program assessment.

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [!\[Solution Phase\](https://safecodetech.com/work/working-with-safecode/images/sc_theme/Icons/DiscoveryPhase_300x120_Flow.png#joomlaImage://local-images/sc_theme/Icons/DiscoveryPhase_300x120_Flow.png)Discovery & Diagnosis](https://safecodetech.com/work/working-with-safecode/work/working-with-safecode/discovery-diagnosis.html) | [!\[Scoping Phase\](https://safecodetech.com/work/working-with-safecode/images/sc_theme/Icons/ScopingPhase_300x120_Flow.png#joomlaImage://local-images/sc_theme/Icons/ScopingPhase_300x120_Flow.png)Scoping](https://safecodetech.com/work/working-with-safecode/work/working-with-safecode/scoping.html) | [!\[Solution Phase\](https://safecodetech.com/work/working-with-safecode/images/sc_theme/Icons/DevelopmentPhase_300x120_Flow.png#joomlaImage://local-images/sc_theme/Icons/DevelopmentPhase_300x120_Flow.png)Solution](https://safecodetech.com/work/working-with-safecode/work/working-with-safecode/solution.html) | [!\[Solution Phase\](https://safecodetech.com/work/working-with-safecode/images/sc_theme/Icons/AcceptancePhase_300x120_Flow.png#joomlaImage://local-images/sc_theme/Icons/DevelopmentPhase_300x120_Flow.png)Acceptance](https://safecodetech.com/work/working-with-safecode/work/working-with-safecode/acceptance.html) | [!\[Support Phase\](https://safecodetech.com/work/working-with-safecode/images/sc_theme/Icons/SupportPhase_120x120.png#joomlaImage://local-images/sc_theme/Icons/SupportPhase_120x120.png)](https://safecodetech.com/work/working-with-safecode/work/working-with-safecode/support.html) [Support](https://safecodetech.com/work/working-with-safecode/work/working-with-safecode/support.html) |

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://safecodetech.com/#organization",
            "name": "SafeCode Consulting",
            "url": "https://safecodetech.com/"
        },
        {
            "@type": "WebPage",
            "@id": "https://safecodetech.com/work/working-with-safecode.html#webpage",
            "url": "https://safecodetech.com/work/working-with-safecode.html",
            "name": "Engagement Model | SafeCode Consulting",
            "description": "How SafeCode Consulting structures engagements for safety-critical software programs: Discovery & Diagnosis, Scoping, Solution, Acceptance, and Support.",
            "isPartOf": {
                "@id": "https://safecodetech.com/#website"
            },
            "about": {
                "@id": "https://safecodetech.com/#organization"
            },
            "inLanguage": "en-US"
        },
        {
            "@type": "HowTo",
            "@id": "https://safecodetech.com/work/working-with-safecode.html#howto",
            "name": "SafeCode Consulting Engagement Model",
            "description": "The five-phase engagement model used by SafeCode Consulting for safety-critical software programs.",
            "step": [
                {
                    "@type": "HowToStep",
                    "position": 1,
                    "name": "Discovery & Diagnosis",
                    "text": "Understand the program, identify real pain points, and distinguish the stated problem from its underlying cause.",
                    "url": "https://safecodetech.com/work/working-with-safecode/discovery-diagnosis.html"
                },
                {
                    "@type": "HowToStep",
                    "position": 2,
                    "name": "Scoping",
                    "text": "Turn shared understanding into a defined plan, commercial arrangement, and clear decision point.",
                    "url": "https://safecodetech.com/work/working-with-safecode/scoping.html"
                },
                {
                    "@type": "HowToStep",
                    "position": 3,
                    "name": "Solution",
                    "text": "Execute the agreed work — engineering, requirements, verification, certification support, or process work.",
                    "url": "https://safecodetech.com/work/working-with-safecode/solution.html"
                },
                {
                    "@type": "HowToStep",
                    "position": 4,
                    "name": "Acceptance",
                    "text": "Review and formally accept the deliverables against the agreed scope and objectives.",
                    "url": "https://safecodetech.com/work/working-with-safecode/acceptance.html"
                },
                {
                    "@type": "HowToStep",
                    "position": 5,
                    "name": "Support",
                    "text": "Knowledge transfer, advisory access, retainer support, or continued embedded relationship as agreed.",
                    "url": "https://safecodetech.com/work/working-with-safecode/support.html"
                }
            ]
        }
    ]
}
```
