<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alistair Clarkson</title>
    <description>The latest articles on DEV Community by Alistair Clarkson (@adbc99).</description>
    <link>https://dev.to/adbc99</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4009158%2F82850bf9-d89b-4749-8765-2482d9dbda39.png</url>
      <title>DEV Community: Alistair Clarkson</title>
      <link>https://dev.to/adbc99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adbc99"/>
    <language>en</language>
    <item>
      <title>Where does Secure by Design End? A 3D/4D Model</title>
      <dc:creator>Alistair Clarkson</dc:creator>
      <pubDate>Sat, 25 Jul 2026 14:35:56 +0000</pubDate>
      <link>https://dev.to/adbc99/where-does-secure-by-design-end-a-3d4d-model-j14</link>
      <guid>https://dev.to/adbc99/where-does-secure-by-design-end-a-3d4d-model-j14</guid>
      <description>&lt;p&gt;I’ve been thinking about a surprisingly intricate question:&lt;/p&gt;

&lt;h2&gt;
  
  
  Where does Secure by Design actually end?
&lt;/h2&gt;

&lt;p&gt;The term now covers everything from threat modelling and architecture reviews to secure development, vulnerability scanning and assurance.&lt;/p&gt;

&lt;p&gt;All of these are important, but I think there is value in separating designing a system to be secure from demonstrating that the implementation actually is secure.&lt;/p&gt;

&lt;p&gt;I’ve been using a simple model for this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://isecurebydesign.com/news/how-to-secure-by-design" rel="noopener noreferrer"&gt;The 3D Method for Secure by Design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The design-time process has three steps:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Design
&lt;/h3&gt;

&lt;p&gt;Create a sufficiently accurate representation of the intended system so that it can be analysed.&lt;/p&gt;

&lt;p&gt;This might be an architecture diagram, model or specification. The important point is that it represents architectural intent, rather than being reconstructed from whatever was eventually implemented.&lt;/p&gt;

&lt;p&gt;This distinction becomes particularly important with AI-assisted development. If probabilistic AI creates the implementation and another probabilistic AI reconstructs the architecture from that implementation, our security analysis is increasingly based on inferred rather than governed intent.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Define
&lt;/h3&gt;

&lt;p&gt;Define the security objectives for the system.&lt;/p&gt;

&lt;p&gt;There are several ways to do this, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;threat modelling&lt;/li&gt;
&lt;li&gt;risk assessment&lt;/li&gt;
&lt;li&gt;security policies and control assessments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don’t think these approaches need to compete.&lt;/p&gt;

&lt;p&gt;Threat modelling is particularly useful for discovering non-obvious risks. Asset-level risk assessment can provide a scalable way of establishing security objectives, while policies can provide repeatable organisational expectations.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Determine
&lt;/h3&gt;

&lt;p&gt;Determine the controls required to meet those objectives.&lt;/p&gt;

&lt;p&gt;This is where I think context becomes particularly important.&lt;/p&gt;

&lt;p&gt;A control shouldn’t just say what must happen. Ideally we retain why the control exists and what architectural element it applies to.&lt;/p&gt;

&lt;p&gt;That gives us something that can be communicated to human developers, AI coding assistants and eventually autonomous development agents.&lt;/p&gt;

&lt;p&gt;At this point, I would argue that Secure by Design is complete.&lt;/p&gt;

&lt;p&gt;We have described what we intend to build, established its security objectives and determined the controls required to achieve them.&lt;/p&gt;

&lt;p&gt;But we haven’t demonstrated that the resulting system actually does any of those things.&lt;/p&gt;

&lt;p&gt;The Fourth D: Demonstrate&lt;/p&gt;

&lt;p&gt;This leads to an optional fourth step:&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Demonstrate
&lt;/h3&gt;

&lt;p&gt;Demonstrate that the implemented system actually realises the design and its controls.&lt;/p&gt;

&lt;p&gt;That could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;control validation&lt;/li&gt;
&lt;li&gt;architectural conformance&lt;/li&gt;
&lt;li&gt;security testing&lt;/li&gt;
&lt;li&gt;assurance evidence&lt;/li&gt;
&lt;li&gt;evaluation of AI-generated implementations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a distinction I’ve found useful:&lt;/p&gt;

&lt;p&gt;3D determines what a securely designed system should be. 4D extends this into secure delivery by demonstrating that the implementation actually realises the design.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;3D Method — Secure by Design&lt;/p&gt;

&lt;p&gt;Design → Define → Determine&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;4D Method — Secure Delivery&lt;/p&gt;

&lt;p&gt;Design → Define → Determine → Demonstrate&lt;/p&gt;

&lt;p&gt;I think this distinction becomes more useful as AI agents take a larger role in software delivery.&lt;/p&gt;

&lt;p&gt;An agent doesn’t just need a list of controls. It needs enough architectural context to understand what those controls apply to and why they exist.&lt;/p&gt;

&lt;p&gt;And if an agent participates in implementation, we need a way of evaluating whether what it produced still conforms to those decisions.&lt;/p&gt;

&lt;p&gt;Does the distinction hold?&lt;/p&gt;

&lt;p&gt;This is the part I’m interested in getting feedback on.&lt;/p&gt;

&lt;p&gt;Would you consider Secure by Design complete once the required controls have been determined?&lt;/p&gt;

&lt;p&gt;Or should demonstrating that those controls were implemented correctly remain part of Secure by Design itself?&lt;/p&gt;

&lt;p&gt;I’ve written up the longer version, including how it evolves with AI:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://isecurebydesign.com/news/how-to-secure-by-design" rel="noopener noreferrer"&gt;The 3D Method for Secure by Design&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>devsecops</category>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <item>
      <title>AI Coding Assistants Have an Architectural Context Problem</title>
      <dc:creator>Alistair Clarkson</dc:creator>
      <pubDate>Fri, 10 Jul 2026 15:09:40 +0000</pubDate>
      <link>https://dev.to/adbc99/ai-coding-assistants-have-an-architectural-context-problem-2i1k</link>
      <guid>https://dev.to/adbc99/ai-coding-assistants-have-an-architectural-context-problem-2i1k</guid>
      <description>&lt;p&gt;I’ve spent a while experimenting with AI-assisted software development using tools like Claude Code, Codex and Kiro.&lt;/p&gt;

&lt;p&gt;One thing has surprised me.&lt;/p&gt;

&lt;p&gt;AI coding assistants receive plenty of implementation context, but very little architectural context.&lt;/p&gt;

&lt;p&gt;Typically they can see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source code&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Unit tests&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Prompts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What they rarely see is why the system was designed the way it was.&lt;/p&gt;

&lt;p&gt;That matters because many security decisions aren’t implementation decisions.&lt;/p&gt;

&lt;p&gt;They’re architectural decisions.&lt;/p&gt;

&lt;p&gt;Humans infer architecture&lt;/p&gt;

&lt;p&gt;Experienced developers usually have advantages that AI doesn’t.&lt;/p&gt;

&lt;p&gt;They’ve attended design meetings.&lt;/p&gt;

&lt;p&gt;They’ve spoken with architects.&lt;/p&gt;

&lt;p&gt;They understand organisational conventions.&lt;/p&gt;

&lt;p&gt;They know which systems are trusted, where boundaries exist and why certain technologies were chosen.&lt;/p&gt;

&lt;p&gt;Even when documentation is incomplete, experienced engineers can often infer architectural intent.&lt;/p&gt;

&lt;p&gt;AI generally can’t.&lt;/p&gt;

&lt;p&gt;It only knows what it’s been given.&lt;/p&gt;

&lt;p&gt;Security starts before code&lt;/p&gt;

&lt;p&gt;Looking back through the history of Secure by Design, one pattern kept appearing.&lt;/p&gt;

&lt;p&gt;Whether you’re looking at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft’s SDL and threat modelling&lt;/li&gt;
&lt;li&gt;OWASP’s secure design guidance&lt;/li&gt;
&lt;li&gt;NIST SSDF&lt;/li&gt;
&lt;li&gt;CISA Secure by Design&lt;/li&gt;
&lt;li&gt;the Cyber Resilience Act&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;they all encourage organisations to consider security before implementation.&lt;/p&gt;

&lt;p&gt;The terminology changes.&lt;/p&gt;

&lt;p&gt;The mechanisms change.&lt;/p&gt;

&lt;p&gt;The principle doesn’t.&lt;/p&gt;

&lt;p&gt;Security is strongest when architectural decisions are analysed before software is written.&lt;/p&gt;

&lt;p&gt;The gap&lt;/p&gt;

&lt;p&gt;Today’s architecture diagrams are usually documentation.&lt;/p&gt;

&lt;p&gt;They explain systems to humans.&lt;/p&gt;

&lt;p&gt;They rarely provide structured guidance that AI coding assistants can consume directly.&lt;/p&gt;

&lt;p&gt;That creates an interesting possibility.&lt;/p&gt;

&lt;p&gt;Instead of treating architecture as documentation, perhaps we should treat it as engineering knowledge.&lt;/p&gt;

&lt;p&gt;A model could become the source for things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;security requirements&lt;/li&gt;
&lt;li&gt;architectural controls&lt;/li&gt;
&lt;li&gt;implementation constraints&lt;/li&gt;
&lt;li&gt;trust-boundary rules&lt;/li&gt;
&lt;li&gt;implementation guidance&lt;/li&gt;
&lt;li&gt;assurance evidence&lt;/li&gt;
&lt;li&gt;evaluation criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those aren’t separate documents.&lt;/p&gt;

&lt;p&gt;They’re different views of the same architectural security analysis.&lt;/p&gt;

&lt;p&gt;Architecture as executable knowledge&lt;/p&gt;

&lt;p&gt;This is the idea I’ve been exploring.&lt;/p&gt;

&lt;p&gt;If architectural knowledge became structured enough for tools to consume, AI coding assistants wouldn’t just receive prompts.&lt;/p&gt;

&lt;p&gt;They could receive architectural intent.&lt;/p&gt;

&lt;p&gt;That doesn’t replace threat modelling.&lt;/p&gt;

&lt;p&gt;It doesn’t replace secure coding.&lt;/p&gt;

&lt;p&gt;It doesn’t replace DevSecOps.&lt;/p&gt;

&lt;p&gt;Instead, it gives those activities a consistent architectural source that remains connected to implementation throughout delivery.&lt;/p&gt;

&lt;p&gt;As AI agents become increasingly capable, I think this becomes more important rather than less.&lt;/p&gt;

&lt;p&gt;Interested in the history?&lt;/p&gt;

&lt;p&gt;I recently researched how Secure by Design evolved from Saltzer &amp;amp; Schroeder’s original engineering principles through Microsoft’s SDL, OWASP, NIST, CISA and recent regulation, and why AI-assisted development may represent the next stage of that evolution.&lt;/p&gt;

&lt;p&gt;The full article, including references, is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://isecurebydesign.com/news/what-is-secure-by-design" rel="noopener noreferrer"&gt;https://isecurebydesign.com/news/what-is-secure-by-design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d be interested to hear how others are handling architectural context with AI coding assistants.&lt;/p&gt;

&lt;p&gt;Do you think architecture should remain documentation, or should it become something AI tools can actively consume?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>architecture</category>
      <category>devsecops</category>
    </item>
    <item>
      <title>Architecture Models as First-Class Context for AI-Assisted Software Development</title>
      <dc:creator>Alistair Clarkson</dc:creator>
      <pubDate>Tue, 30 Jun 2026 08:36:58 +0000</pubDate>
      <link>https://dev.to/adbc99/architecture-models-as-first-class-context-for-ai-assisted-software-development-82j</link>
      <guid>https://dev.to/adbc99/architecture-models-as-first-class-context-for-ai-assisted-software-development-82j</guid>
      <description>&lt;p&gt;Architecture Models as First-Class Context for AI-Assisted Software Development&lt;/p&gt;

&lt;p&gt;As software engineers, we’ve spent the last few decades treating architecture diagrams as documentation rather than development artefacts.&lt;/p&gt;

&lt;p&gt;We design a system, produce an architecture diagram—if we’re disciplined enough—and then development begins. As the code evolves, the architecture changes, and eventually the diagram falls out of date. We all knew it wasn’t ideal, but when humans were the only ones writing software, we could usually get away with it.&lt;/p&gt;

&lt;p&gt;Today, software isn’t written solely by engineers. We have AI coding assistants, vibe coding, and increasingly autonomous agents generating implementations on our behalf. The question is no longer just “Did we build what we intended?” but “How do we know what kind of jungle our AI has created inside our cloud environments?”&lt;/p&gt;

&lt;p&gt;Modern coding assistants generate implementations based on the context they’re given. Over the last year we’ve seen the rise of specification-driven development as a way to provide that context. Standards such as SpecKit and tools like AWS Kiro encourage specifications to become part of the repository, allowing AI to work from structured requirements rather than ad hoc prompts.&lt;/p&gt;

&lt;p&gt;Specifications are a huge step forward, but over time I found myself with dozens of partially implemented specifications scattered throughout my repositories. They described individual features well enough, but I was losing sight of how those features fitted together. I had requirements, but I was missing the architectural context.&lt;/p&gt;

&lt;p&gt;What I needed wasn’t another diagram. I needed an architectural model that captured components, trust boundaries, security controls, contracts and deployment configuration—and I needed that model to remain useful throughout the entire software development lifecycle, not just during design reviews or onboarding sessions.&lt;/p&gt;

&lt;p&gt;That led me to a simple question.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if architecture models became first-class inputs to AI-assisted software development rather than documentation produced after the fact?
&lt;/h3&gt;

&lt;p&gt;Instead of diagrams explaining the finished system, what if the architecture model could deterministically generate specifications, implementation guidance, security controls and evaluation criteria? The architecture would become the source of truth, with specifications derived from it rather than maintained separately. As the model evolves, the specifications evolve with it.&lt;/p&gt;

&lt;p&gt;This becomes even more compelling as software teams adopt autonomous agents and AI-assisted workflows. If AI systems are expected to make implementation decisions, they need access to architectural intent—not just source code. Architecture becomes a source of governance, helping ensure generated software remains aligned with security objectives, organisational policies and design constraints.&lt;/p&gt;

&lt;p&gt;To me, this is a shift in how we think about architecture. Instead of treating it as documentation, we begin treating it as executable knowledge that actively participates in software delivery.&lt;/p&gt;

&lt;p&gt;Over the past few months I’ve been experimenting with this idea through a project called &lt;a href="http://isecurebydesign.com" rel="noopener noreferrer"&gt;iSecureByDesign&lt;/a&gt;. The goal isn’t simply to draw diagrams, but to treat architecture models as a source of requirements, controls and implementation guidance. I’ve used it to model serverless applications, LangGraph-based agentic knowledge systems and other architectures with baseline security controls built in. Whether the implementation succeeds is for others to judge, but the experiment has convinced me there’s something really worth fleshing out here.&lt;/p&gt;

&lt;p&gt;As AI becomes more capable, I suspect the quality of software won’t be determined by prompts alone. It will increasingly depend on the quality of the architectural knowledge we provide alongside them.&lt;/p&gt;

&lt;p&gt;Perhaps the next evolution of software architecture isn’t producing better diagrams.&lt;/p&gt;

&lt;p&gt;Perhaps it’s making architecture models first-class citizens in the AI-assisted software development lifecycle.&lt;/p&gt;

&lt;p&gt;Have you been seeing the same shift, or have you found different ways of maintaining the architectural context for AI?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>softwareengineering</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
