35 essays and memos on martinfowler.com: 33 records from Exploring Generative AI plus two explicitly identified adjacent articles updated or published in October 2026. Each credited byline and publication or revision date is retained.
The collection follows the host website, with each article’s actual byline. The original Exploring Generative AI series credits Birgitta Böckeler as contributor and editor; adjacent website articles are labelled individually. 11 records are included in the published NDSE2 bibliography. Literal chapter citations and later editorial suggestions remain distinct.
No matching records. Clear the search or choose another group.
F001Fowler website
Birgitta Böckeler · 2023-07-26
Organizes coding-assistance tools by task, interaction style, prompt construction and model or hosting choices. The framework helps separate what a tool does from how a developer supplies its context.
Evidence, context & provenance
Evidence boundaryA July 2023 conceptual landscape, not a comparative benchmark or a current product inventory.
Source type, as recorded: Conceptual tool taxonomy
- Inspected passage
- Body: task and interaction categories; prompt composition; models and hosting
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Developer workflow and adoption · Agent context and persistent memory
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "The toolchain",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-07-26",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/01-tool-landscape.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Organizes coding-assistance tools by task, interaction style, prompt construction and model or hosting choices. The framework helps separate what a tool does from how a developer supplies its context.",
"limitation": "A July 2023 conceptual landscape, not a comparative benchmark or a current product inventory.",
"evidence_class": "Conceptual tool taxonomy",
"source_locator": "Body: task and interaction categories; prompt composition; models and hosting",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\", \"T:Productivity\"]",
"topics_json": "[\"K:Developer workflow and adoption\", \"K:Agent context and persistent memory\"]",
"editorial_chapters_json": "[\"C:C01\", \"C:C03\", \"C:C09\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F002Fowler website
Birgitta Böckeler · 2023-07-27
Examines three generated median implementations and the defects or side effects that a knowledgeable developer must recognize. The example makes the choice of test expectations part of the engineering work.
Evidence, context & provenance
Evidence boundaryOne small TypeScript example; neither defect prevalence nor a general model-quality comparison was established.
Source type, as recorded: Worked programming example
- Inspected passage
- Body: the three median implementations and the test discussion
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Independent verification and oracles · Automation bias and trust
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Median - A tale in three functions",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-07-27",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/02-median-tale.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Examines three generated median implementations and the defects or side effects that a knowledgeable developer must recognize. The example makes the choice of test expectations part of the engineering work.",
"limitation": "One small TypeScript example; neither defect prevalence nor a general model-quality comparison was established.",
"evidence_class": "Worked programming example",
"source_locator": "Body: the three median implementations and the test discussion",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:Code quality & security\"]",
"topics_json": "[\"K:Independent verification and oracles\", \"K:Automation bias and trust\"]",
"editorial_chapters_json": "[\"C:C05\", \"C:C07\", \"C:C10\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F003Fowler website
Birgitta Böckeler · 2023-08-01
Discusses when inline suggestions help, considering task familiarity, technology, change size, developer experience and the effort of checking or reworking the output.
Evidence, context & provenance
Evidence boundaryExperience-based guidance, largely from experienced developers; usefulness is not a measured universal productivity effect.
Source type, as recorded: Practitioner experience
- Inspected passage
- Body: usefulness factors and review/rework effort
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Developer workflow and adoption · Human cognitive load · Economic costs and return
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "In-line assistance - when is it more useful?",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-08-01",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/03-coding-assistance-when-useful.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Discusses when inline suggestions help, considering task familiarity, technology, change size, developer experience and the effort of checking or reworking the output.",
"limitation": "Experience-based guidance, largely from experienced developers; usefulness is not a measured universal productivity effect.",
"evidence_class": "Practitioner experience",
"source_locator": "Body: usefulness factors and review/rework effort",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Productivity",
"streams_json": "[\"T:Productivity\", \"T:Verification & review\"]",
"topics_json": "[\"K:Developer workflow and adoption\", \"K:Human cognitive load\", \"K:Economic costs and return\"]",
"editorial_chapters_json": "[\"C:C02\", \"C:C03\", \"C:C10\", \"C:C12\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F004Fowler website
Birgitta Böckeler · 2023-08-03
Describes assistants repeating poor patterns from their context and the burden of continually judging suggestions. Relates these experiences to automation bias, anchoring and reluctance to discard generated work.
Evidence, context & provenance
Evidence boundaryQualitative examples and interpretive mechanisms, not measured frequencies of bias or review fatigue.
Source type, as recorded: Practitioner experience
- Inspected passage
- Body: reinforcing existing practices; reviewing instead of producing
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Automation bias and trust · Human cognitive load · Agent context and persistent memory
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "In-line assistance - how can it get in the way?",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-08-03",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/04-coding-assistance-how-in-the-way.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Describes assistants repeating poor patterns from their context and the burden of continually judging suggestions. Relates these experiences to automation bias, anchoring and reluctance to discard generated work.",
"limitation": "Qualitative examples and interpretive mechanisms, not measured frequencies of bias or review fatigue.",
"evidence_class": "Practitioner experience",
"source_locator": "Body: reinforcing existing practices; reviewing instead of producing",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:System knowledge & memory\", \"T:Code quality & security\"]",
"topics_json": "[\"K:Automation bias and trust\", \"K:Human cognitive load\", \"K:Agent context and persistent memory\"]",
"editorial_chapters_json": "[\"C:C05\", \"C:C08\", \"C:C09\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F005Fowler website
Birgitta Böckeler · 2023-08-10
Argues that code assistance does not replace the human knowledge sharing, collaboration and collective understanding associated with pair programming. Tools can instead be used by a human pair.
Evidence, context & provenance
Evidence boundaryAn argument about the functions of pairing; not a controlled comparison of pairing arrangements.
Source type, as recorded: Conceptual argument
- Inspected passage
- Body: knowledge sharing, team flow and pairing with assistance
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Human-agent collaboration · Ownership and knowledge transfer · Skills formation and teaching
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Coding assistants do not replace pair programming",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-08-10",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/05-not-your-pair-programmer.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Argues that code assistance does not replace the human knowledge sharing, collaboration and collective understanding associated with pair programming. Tools can instead be used by a human pair.",
"limitation": "An argument about the functions of pairing; not a controlled comparison of pairing arrangements.",
"evidence_class": "Conceptual argument",
"source_locator": "Body: knowledge sharing, team flow and pairing with assistance",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Skills & learning",
"streams_json": "[\"T:Skills & learning\", \"T:Engineering structure\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Human-agent collaboration\", \"K:Ownership and knowledge transfer\", \"K:Skills formation and teaching\"]",
"editorial_chapters_json": "[\"C:C10\", \"C:C11\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F006Fowler website
Paul Sobocinski · 2023-08-17
Explores assistance during red, green and refactor steps. Human test intent and assertions remain important; suggestions can help implementation while also overproducing code or struggling with refactoring.
Evidence, context & provenance
Evidence boundaryExperience with a human-led workflow and an early tool generation; not evidence about fully autonomous TDD or a causal quality gain.
Source type, as recorded: Practitioner workflow report
- Inspected passage
- Body: red, green and refactoring discussions
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Independent verification and oracles · Human-agent collaboration
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "TDD with GitHub Copilot",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Paul Sobocinski",
"authors_json": "[\"Paul Sobocinski\"]",
"publication_date": "2023-08-17",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/06-tdd-with-coding-assistance.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Explores assistance during red, green and refactor steps. Human test intent and assertions remain important; suggestions can help implementation while also overproducing code or struggling with refactoring.",
"limitation": "Experience with a human-led workflow and an early tool generation; not evidence about fully autonomous TDD or a causal quality gain.",
"evidence_class": "Practitioner workflow report",
"source_locator": "Body: red, green and refactoring discussions",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:Skills & learning\"]",
"topics_json": "[\"K:Independent verification and oracles\", \"K:Human-agent collaboration\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C07\", \"C:C10\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F007Fowler website
Birgitta Böckeler · 2023-09-19
Contrasts generative assistance with model-driven development and domain-specific code generators. Examines how control and abstraction differ when generation draws on broad learned patterns rather than an explicitly designed transformation.
Evidence, context & provenance
Evidence boundaryConceptual comparison; it does not demonstrate the reliability or economic superiority of either approach.
Source type, as recorded: Conceptual argument
- Inspected passage
- Body: abstraction levels and comparison with traditional generation
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Specifications and governance · Architecture and modularity
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "How is GenAI different from other code generators?",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-09-19",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/07-how-is-this-different.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Contrasts generative assistance with model-driven development and domain-specific code generators. Examines how control and abstraction differ when generation draws on broad learned patterns rather than an explicitly designed transformation.",
"limitation": "Conceptual comparison; it does not demonstrate the reliability or economic superiority of either approach.",
"evidence_class": "Conceptual argument",
"source_locator": "Body: abstraction levels and comparison with traditional generation",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\"]",
"topics_json": "[\"K:Specifications and governance\", \"K:Architecture and modularity\"]",
"editorial_chapters_json": "[\"C:C01\", \"C:C04\", \"C:C05\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F008Fowler websiteIn the published NDSE2 bibliography
Birgitta Böckeler · 2023-11-29
Frames confidence in assistance around feedback, the developer’s ability to check an answer and the consequences of error. Proposes timeboxing unproductive assistance and retaining responsibility for the result.
Evidence, context & provenance
Evidence boundaryPersonal heuristics rather than calibrated reliability estimates; informal numerical intuitions are not treated as measured rates.
Source type, as recorded: Practitioner guidance
- Inspected passage
- Body: confidence, timeboxing and assistant persona
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Agent failure and escalation · Independent verification and oracles · Automation bias and trust
4 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "How to tackle unreliability of coding assistants",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2023-11-29",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/08-how-to-tackle-unreliability.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Frames confidence in assistance around feedback, the developer’s ability to check an answer and the consequences of error. Proposes timeboxing unproductive assistance and retaining responsibility for the result.",
"limitation": "Personal heuristics rather than calibrated reliability estimates; informal numerical intuitions are not treated as measured rates.",
"evidence_class": "Practitioner guidance",
"source_locator": "Body: confidence, timeboxing and assistant persona",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:What agents can do\"]",
"topics_json": "[\"K:Agent failure and escalation\", \"K:Independent verification and oracles\", \"K:Automation bias and trust\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C07\", \"C:C08\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C03\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F009Fowler website
Birgitta Böckeler · 2024-08-15
Recounts work on an unfamiliar Bahmni/OpenMRS issue. AI helped with terminology and code navigation, but environment setup, fixtures and mocking remained obstacles, and the issue was not solved in the attempt.
Evidence, context & provenance
Evidence boundaryOne exploratory onboarding attempt; no measured reduction in onboarding time or demonstrated long-term comprehension.
Source type, as recorded: Exploratory case report
- Inspected passage
- Body: issue exploration, code search, environment and testing attempts
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Onboarding and developer fluency · System understanding and rationale
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Onboarding to a 'legacy' codebase with the help of AI",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2024-08-15",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/09-ai-help-onboarding-codebase.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Recounts work on an unfamiliar Bahmni/OpenMRS issue. AI helped with terminology and code navigation, but environment setup, fixtures and mocking remained obstacles, and the issue was not solved in the attempt.",
"limitation": "One exploratory onboarding attempt; no measured reduction in onboarding time or demonstrated long-term comprehension.",
"evidence_class": "Exploratory case report",
"source_locator": "Body: issue exploration, code search, environment and testing attempts",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:System knowledge & memory",
"streams_json": "[\"T:System knowledge & memory\", \"T:Skills & learning\"]",
"topics_json": "[\"K:Onboarding and developer fluency\", \"K:System understanding and rationale\"]",
"editorial_chapters_json": "[\"C:C05\", \"C:C09\", \"C:C10\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F010Fowler website
Birgitta Böckeler · 2024-08-20
Builds a tool-using agent to migrate tests from Enzyme to React Testing Library. The account exposes file-editing, test-feedback and context-management problems alongside successful transformations.
Evidence, context & provenance
Evidence boundaryA bounded migration experiment with substantial failures; not proof of reliable autonomous migration across a codebase.
Source type, as recorded: Exploratory implementation experiment
- Inspected passage
- Body: manually solved baseline, agent setup and migration observations
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Agent failure and escalation · Long-running agent execution · Independent verification and oracles
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Building an AI agent application to migrate a tech stack",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2024-08-20",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/10-ai-for-tech-stack-migration.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Builds a tool-using agent to migrate tests from Enzyme to React Testing Library. The account exposes file-editing, test-feedback and context-management problems alongside successful transformations.",
"limitation": "A bounded migration experiment with substantial failures; not proof of reliable autonomous migration across a codebase.",
"evidence_class": "Exploratory implementation experiment",
"source_locator": "Body: manually solved baseline, agent setup and migration observations",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:What agents can do",
"streams_json": "[\"T:What agents can do\", \"T:Code quality & security\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Agent failure and escalation\", \"K:Long-running agent execution\", \"K:Independent verification and oracles\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C05\", \"C:C07\", \"C:C09\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F011Fowler website
Birgitta Böckeler · 2024-11-19
Examines how multi-file edits enlarge the unit of AI-assisted work. Larger suggestions create new checking demands, including unrelated changes, and motivate layered feedback and comprehensible module boundaries.
Evidence, context & provenance
Evidence boundaryA tool-use snapshot and qualitative experience; no comparative defect rate or current feature guarantee.
Source type, as recorded: Practitioner tool exploration
- Inspected passage
- Body: multi-file mode, feedback loops and implications of larger changes
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Architecture and modularity · Review capacity and maintainers · Developer workflow and adoption
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Expanding the solution size with multi-file editing",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2024-11-19",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/11-multi-file-editing.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Examines how multi-file edits enlarge the unit of AI-assisted work. Larger suggestions create new checking demands, including unrelated changes, and motivate layered feedback and comprehensible module boundaries.",
"limitation": "A tool-use snapshot and qualitative experience; no comparative defect rate or current feature guarantee.",
"evidence_class": "Practitioner tool exploration",
"source_locator": "Body: multi-file mode, feedback loops and implications of larger changes",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Code quality & security",
"streams_json": "[\"T:Code quality & security\", \"T:Verification & review\", \"T:What agents can do\"]",
"topics_json": "[\"K:Architecture and modularity\", \"K:Review capacity and maintainers\", \"K:Developer workflow and adoption\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C05\", \"C:C08\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F012Fowler website
Birgitta Böckeler · 2025-02-18
Questions where model reasoning adds value to coding tasks compared with supplying repository context and useful tool feedback. Considers debugging and planning as possible settings for investigation.
Evidence, context & provenance
Evidence boundaryTentative analysis from February 2025, not a current model-feature comparison or evidence that reasoning always helps or harms coding.
Source type, as recorded: Conceptual analysis
- Inspected passage
- Body: reasoning models, software tasks and contextual/tool feedback
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Evaluation methodology and baselines · Agent context and persistent memory
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "What role does LLM reasoning play for software tasks?",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-02-18",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/12-role-of-reasoning.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Questions where model reasoning adds value to coding tasks compared with supplying repository context and useful tool feedback. Considers debugging and planning as possible settings for investigation.",
"limitation": "Tentative analysis from February 2025, not a current model-feature comparison or evidence that reasoning always helps or harms coding.",
"evidence_class": "Conceptual analysis",
"source_locator": "Body: reasoning models, software tasks and contextual/tool feedback",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:What agents can do",
"streams_json": "[\"T:What agents can do\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Evaluation methodology and baselines\", \"K:Agent context and persistent memory\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C09\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F013Fowler websiteIn the published NDSE2 bibliography
Birgitta Böckeler · 2025-03-25
Uses agent missteps to explain why decomposition, debugging, design judgment and checking remain valuable. Separates immediate completion from team iteration and the lifetime of the codebase.
Evidence, context & provenance
Evidence boundaryExperience-based examples, not a measured skills intervention or a forecast of developer employment.
Source type, as recorded: Practitioner analysis
- Inspected passage
- Body: missteps and the time-to-commit, iteration and codebase-lifetime perspectives
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Skills formation and teaching · Technical debt and complexity · Human-agent collaboration
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "The role of developer skills in agentic coding",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-03-25",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/13-role-of-developer-skills.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Uses agent missteps to explain why decomposition, debugging, design judgment and checking remain valuable. Separates immediate completion from team iteration and the lifetime of the codebase.",
"limitation": "Experience-based examples, not a measured skills intervention or a forecast of developer employment.",
"evidence_class": "Practitioner analysis",
"source_locator": "Body: missteps and the time-to-commit, iteration and codebase-lifetime perspectives",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Skills & learning",
"streams_json": "[\"T:Skills & learning\", \"T:Code quality & security\", \"T:Engineering structure\"]",
"topics_json": "[\"K:Skills formation and teaching\", \"K:Technical debt and complexity\", \"K:Human-agent collaboration\"]",
"editorial_chapters_json": "[\"C:C01\", \"C:C05\", \"C:C10\", \"C:C11\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C10\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F014Fowler website
Unmesh Joshi · 2025-04-17
Follows a developer–LLM dialogue about Java ByteBuffer header access. The engineer uncovers problems with mutable buffer position and guides the design toward clearer access and encapsulation.
Evidence, context & provenance
Evidence boundaryAn illustrative dialogue; removing position mutation does not by itself establish thread safety or general performance.
Source type, as recorded: Worked programming example
- Inspected passage
- Body: header reading, position side effects and absolute access
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Architecture and modularity · Independent verification and oracles · System understanding and rationale
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Guiding an LLM for Robust Java ByteBuffer Code",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Unmesh Joshi",
"authors_json": "[\"Unmesh Joshi\"]",
"publication_date": "2025-04-17",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/14-guiding-llm-java-bytebuffer.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Follows a developer–LLM dialogue about Java ByteBuffer header access. The engineer uncovers problems with mutable buffer position and guides the design toward clearer access and encapsulation.",
"limitation": "An illustrative dialogue; removing position mutation does not by itself establish thread safety or general performance.",
"evidence_class": "Worked programming example",
"source_locator": "Body: header reading, position side effects and absolute access",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Code quality & security",
"streams_json": "[\"T:Code quality & security\", \"T:Verification & review\"]",
"topics_json": "[\"K:Architecture and modularity\", \"K:Independent verification and oracles\", \"K:System understanding and rationale\"]",
"editorial_chapters_json": "[\"C:C05\", \"C:C07\", \"C:C10\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F015Fowler website
Unmesh Joshi · 2025-04-30
Describes building a telescope-mirror visualization with unfamiliar tools. Small geometric steps, visual checks and domain knowledge guide successive changes while the developer learns the implementation approach.
Evidence, context & provenance
Evidence boundaryA personal prototype-building account; neither retained learning nor broader productivity was evaluated.
Source type, as recorded: Exploratory learning case
- Inspected passage
- Body: initial visualization, hexagon geometry and iterative refinement
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Skills formation and teaching · Human-agent collaboration · Developer workflow and adoption
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Building TMT Mirror Visualization with LLM: A Step-by-Step Journey",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Unmesh Joshi",
"authors_json": "[\"Unmesh Joshi\"]",
"publication_date": "2025-04-30",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/15-building-tmt-mirror-visualization.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Describes building a telescope-mirror visualization with unfamiliar tools. Small geometric steps, visual checks and domain knowledge guide successive changes while the developer learns the implementation approach.",
"limitation": "A personal prototype-building account; neither retained learning nor broader productivity was evaluated.",
"evidence_class": "Exploratory learning case",
"source_locator": "Body: initial visualization, hexagon geometry and iterative refinement",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Skills & learning",
"streams_json": "[\"T:Skills & learning\", \"T:What agents can do\"]",
"topics_json": "[\"K:Skills formation and teaching\", \"K:Human-agent collaboration\", \"K:Developer workflow and adoption\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C04\", \"C:C10\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F016Fowler websiteIn the published NDSE2 bibliography
Jim Gumbley; Lilly Ryan · 2025-05-13
Analyzes the attack surface created when coding assistants consume project instructions and invoke tools with developer privileges. Discusses poisoned context, dependency risks and boundaries around execution.
Evidence, context & provenance
Evidence boundarySecurity analysis rather than an attack-incidence study. Protocol and tool details belong to the May 2025 publication context.
Source type, as recorded: Threat analysis
- Inspected passage
- Body: assistant inputs, tools, supply-chain exposure and defenses
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Prompt injection and malicious tools · Dependencies and agent supply chain
4 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Coding Assistants Threaten the Software Supply Chain",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Jim Gumbley; Lilly Ryan",
"authors_json": "[\"Jim Gumbley\", \"Lilly Ryan\"]",
"publication_date": "2025-05-13",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/software-supply-chain-attack-surface.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Analyzes the attack surface created when coding assistants consume project instructions and invoke tools with developer privileges. Discusses poisoned context, dependency risks and boundaries around execution.",
"limitation": "Security analysis rather than an attack-incidence study. Protocol and tool details belong to the May 2025 publication context.",
"evidence_class": "Threat analysis",
"source_locator": "Body: assistant inputs, tools, supply-chain exposure and defenses",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Code quality & security",
"streams_json": "[\"T:Code quality & security\", \"T:Engineering structure\"]",
"topics_json": "[\"K:Prompt injection and malicious tools\", \"K:Dependencies and agent supply chain\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C06\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C06\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F017Fowler website
Unmesh Joshi · 2025-05-14
Recounts extending PlantUML with custom visualization tooling. The developer uses generation and feedback to build the tool, while shaping abstractions and keeping the resulting code understandable and maintainable.
Evidence, context & provenance
Evidence boundaryOne custom-tooling case; lower perceived effort is not a controlled productivity estimate.
Source type, as recorded: Practitioner implementation case
- Inspected passage
- Body: PlantUML extension, implementation iterations and code habitability
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Architecture and modularity · System understanding and rationale · Developer workflow and adoption
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Building Custom Tooling with LLMs",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Unmesh Joshi",
"authors_json": "[\"Unmesh Joshi\"]",
"publication_date": "2025-05-14",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/16-building-custom-tooling-with-llms.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Recounts extending PlantUML with custom visualization tooling. The developer uses generation and feedback to build the tool, while shaping abstractions and keeping the resulting code understandable and maintainable.",
"limitation": "One custom-tooling case; lower perceived effort is not a controlled productivity estimate.",
"evidence_class": "Practitioner implementation case",
"source_locator": "Body: PlantUML extension, implementation iterations and code habitability",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Code quality & security",
"streams_json": "[\"T:Code quality & security\", \"T:Productivity\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Architecture and modularity\", \"K:System understanding and rationale\", \"K:Developer workflow and adoption\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C05\", \"C:C09\", \"C:C10\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F018Fowler website
Birgitta Böckeler · 2025-06-04
Inspects a background agent making a small Haiven change. The execution trace reveals code-search behavior, missing executable checks and inconsistent reuse across attempts, distinguishing unattended execution from accepted work.
Evidence, context & provenance
Evidence boundaryA small dated tool experiment; not a model ranking or a general estimate of autonomous success.
Source type, as recorded: Exploratory agent case
- Inspected passage
- Body: supervised/background distinction, task trace and repeated attempts
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Agent failure and escalation · Code reuse and duplication · Independent verification and oracles
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Autonomous coding agents: A Codex example",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-06-04",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/autonomous-agents-codex-example.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Inspects a background agent making a small Haiven change. The execution trace reveals code-search behavior, missing executable checks and inconsistent reuse across attempts, distinguishing unattended execution from accepted work.",
"limitation": "A small dated tool experiment; not a model ranking or a general estimate of autonomous success.",
"evidence_class": "Exploratory agent case",
"source_locator": "Body: supervised/background distinction, task trace and repeated attempts",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:What agents can do",
"streams_json": "[\"T:What agents can do\", \"T:Verification & review\"]",
"topics_json": "[\"K:Agent failure and escalation\", \"K:Code reuse and duplication\", \"K:Independent verification and oracles\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C05\", \"C:C07\", \"C:C09\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F019Fowler website
Birgitta Böckeler · 2025-07-09
Argues that responsibility for operational software still requires understanding code and its risks. Contrasts probabilistic generation with designed language translation and relates oversight to possible error consequences.
Evidence, context & provenance
Evidence boundaryA professional position, not a calibrated threshold for how much review every change requires.
Source type, as recorded: Conceptual argument
- Inspected passage
- Body: operational responsibility and comparison with compilers
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Automation bias and trust · System understanding and rationale · Ownership and knowledge transfer
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "I still care about the code",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-07-09",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/i-still-care-about-the-code.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Argues that responsibility for operational software still requires understanding code and its risks. Contrasts probabilistic generation with designed language translation and relates oversight to possible error consequences.",
"limitation": "A professional position, not a calibrated threshold for how much review every change requires.",
"evidence_class": "Conceptual argument",
"source_locator": "Body: operational responsibility and comparison with compilers",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:Code quality & security\"]",
"topics_json": "[\"K:Automation bias and trust\", \"K:System understanding and rationale\", \"K:Ownership and knowledge transfer\"]",
"editorial_chapters_json": "[\"C:C01\", \"C:C05\", \"C:C08\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F020Fowler website
Matteo Vaccari · 2025-07-31
In a Go/MySQL performance investigation, generated helpers, experiments and unsuccessful rewrites helped the developer understand the problem before rewriting the core solution. Useful assistance can therefore leave little accepted generated code.
Evidence, context & provenance
Evidence boundaryA single client case; code-acceptance rate is questioned, but a general AI-caused productivity gain is not measured.
Source type, as recorded: Practitioner case report
- Inspected passage
- Body: diagnosis, experiments, discarded proposals and final rewrite
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Output versus shipped value · Evaluation methodology and baselines · System understanding and rationale
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Partner with the AI, throw away the code",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Matteo Vaccari",
"authors_json": "[\"Matteo Vaccari\"]",
"publication_date": "2025-07-31",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/partner-with-ai-and-throw-away-the-code.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "In a Go/MySQL performance investigation, generated helpers, experiments and unsuccessful rewrites helped the developer understand the problem before rewriting the core solution. Useful assistance can therefore leave little accepted generated code.",
"limitation": "A single client case; code-acceptance rate is questioned, but a general AI-caused productivity gain is not measured.",
"evidence_class": "Practitioner case report",
"source_locator": "Body: diagnosis, experiments, discarded proposals and final rewrite",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Productivity",
"streams_json": "[\"T:Productivity\", \"T:Skills & learning\", \"T:Economics\"]",
"topics_json": "[\"K:Output versus shipped value\", \"K:Evaluation methodology and baselines\", \"K:System understanding and rationale\"]",
"editorial_chapters_json": "[\"C:C02\", \"C:C05\", \"C:C10\", \"C:C12\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F021Fowler website
Birgitta Böckeler · 2025-09-23
Describes decisions about oversight using the chance of an error, its impact and the ability to detect it. The examples favor situation-dependent attention over a single rule for all generated code.
Evidence, context & provenance
Evidence boundaryA qualitative risk heuristic and personal experience; not a statistically calibrated risk model.
Source type, as recorded: Practitioner decision heuristic
- Inspected passage
- Body: risk factors and situational review decisions
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Automation bias and trust · Human-agent collaboration
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "To vibe or not to vibe",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-09-23",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/to-vibe-or-not-vibe.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Describes decisions about oversight using the chance of an error, its impact and the ability to detect it. The examples favor situation-dependent attention over a single rule for all generated code.",
"limitation": "A qualitative risk heuristic and personal experience; not a statistically calibrated risk model.",
"evidence_class": "Practitioner decision heuristic",
"source_locator": "Body: risk factors and situational review decisions",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:Engineering structure\"]",
"topics_json": "[\"K:Automation bias and trust\", \"K:Human-agent collaboration\"]",
"editorial_chapters_json": "[\"C:C01\", \"C:C08\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F022Fowler website
Birgitta Böckeler · 2025-09-25
Explores using a runnable reference application to guide changes across services. A scoped comparison and a reviewed change report precede implementation, raising a choice between AI-based propagation and deterministic transformations.
Evidence, context & provenance
Evidence boundaryA small reference-update example; consistency and maintainability at organizational scale remain untested.
Source type, as recorded: Exploratory workflow example
- Inspected passage
- Body: reference application, differences, report and update workflow
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Architecture and modularity · Agent context and persistent memory · Specifications and governance
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Anchoring AI to a reference application",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-09-25",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/anchoring-to-reference.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Explores using a runnable reference application to guide changes across services. A scoped comparison and a reviewed change report precede implementation, raising a choice between AI-based propagation and deterministic transformations.",
"limitation": "A small reference-update example; consistency and maintainability at organizational scale remain untested.",
"evidence_class": "Exploratory workflow example",
"source_locator": "Body: reference application, differences, report and update workflow",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:System knowledge & memory",
"streams_json": "[\"T:System knowledge & memory\", \"T:Code quality & security\", \"T:Engineering structure\"]",
"topics_json": "[\"K:Architecture and modularity\", \"K:Agent context and persistent memory\", \"K:Specifications and governance\"]",
"editorial_chapters_json": "[\"C:C04\", \"C:C05\", \"C:C09\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F023Fowler websiteIn the published NDSE2 bibliography
Birgitta Böckeler · 2025-10-15
Distinguishes spec-first, spec-anchored and spec-as-source approaches through three tool explorations. Examines persistent specifications, task sizing, brownfield fit, instruction following and documentation overhead.
Evidence, context & provenance
Evidence boundaryA dated exploratory comparison, not controlled evidence for SDD effectiveness. The author’s questions about specification overhead and source-of-truth claims are retained.
Source type, as recorded: Practitioner comparative exploration
- Inspected passage
- Body: definitions of SDD; Kiro, spec-kit and Tessl explorations; reflections
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Specifications and governance · Developer workflow and adoption · Agent context and persistent memory
6 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2025-10-15",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Distinguishes spec-first, spec-anchored and spec-as-source approaches through three tool explorations. Examines persistent specifications, task sizing, brownfield fit, instruction following and documentation overhead.",
"limitation": "A dated exploratory comparison, not controlled evidence for SDD effectiveness. The author’s questions about specification overhead and source-of-truth claims are retained.",
"evidence_class": "Practitioner comparative exploration",
"source_locator": "Body: definitions of SDD; Kiro, spec-kit and Tessl explorations; reflections",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Specifications and governance\", \"K:Developer workflow and adoption\", \"K:Agent context and persistent memory\"]",
"editorial_chapters_json": "[\"C:C04\", \"C:C09\", \"C:C11\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C04\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F024Fowler websiteIn the published NDSE2 bibliography
Erik Doernenburg · 2026-01-27
Uses a CCMenu feature change to inspect internal quality. A fix that compiles can still erode the intended type model, introduce duplication or add unnecessary mechanisms; expert examination exposes those differences.
Evidence, context & provenance
Evidence boundaryThe author presents an anecdote, not a study; observations do not establish a population-level quality effect.
Source type, as recorded: Practitioner code-review case
- Inspected passage
- Body: GitLab support, optional values, duplication and cache behavior
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Technical debt and complexity · Code reuse and duplication · Architecture and modularity
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Assessing internal quality while coding with an agent",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Erik Doernenburg",
"authors_json": "[\"Erik Doernenburg\"]",
"publication_date": "2026-01-27",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/ccmenu-quality.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Uses a CCMenu feature change to inspect internal quality. A fix that compiles can still erode the intended type model, introduce duplication or add unnecessary mechanisms; expert examination exposes those differences.",
"limitation": "The author presents an anecdote, not a study; observations do not establish a population-level quality effect.",
"evidence_class": "Practitioner code-review case",
"source_locator": "Body: GitLab support, optional values, duplication and cache behavior",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Code quality & security",
"streams_json": "[\"T:Code quality & security\", \"T:Verification & review\"]",
"topics_json": "[\"K:Technical debt and complexity\", \"K:Code reuse and duplication\", \"K:Architecture and modularity\"]",
"editorial_chapters_json": "[\"C:C05\", \"C:C07\", \"C:C08\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C05\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F025Fowler websiteIn the published NDSE2 bibliography
Birgitta Böckeler · 2026-02-05
Organizes context features by who invokes them: a person, the model or agent software. Discusses rules, skills, subagents, external context and hooks as parts of the developer experience.
Evidence, context & provenance
Evidence boundaryFeature and practice snapshot, not proof of effectiveness or enforcement. Adding more configuration can produce contradictions or an illusion of control.
Source type, as recorded: Practitioner technical taxonomy
- Inspected passage
- Body: trigger-based feature overview and context configuration
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Agent context and persistent memory · Developer workflow and adoption · Specifications and governance
4 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Context Engineering for Coding Agents",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2026-02-05",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/context-engineering-coding-agents.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Organizes context features by who invokes them: a person, the model or agent software. Discusses rules, skills, subagents, external context and hooks as parts of the developer experience.",
"limitation": "Feature and practice snapshot, not proof of effectiveness or enforcement. Adding more configuration can produce contradictions or an illusion of control.",
"evidence_class": "Practitioner technical taxonomy",
"source_locator": "Body: trigger-based feature overview and context configuration",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:System knowledge & memory",
"streams_json": "[\"T:System knowledge & memory\", \"T:Engineering structure\"]",
"topics_json": "[\"K:Agent context and persistent memory\", \"K:Developer workflow and adoption\", \"K:Specifications and governance\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C09\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C09\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F026Fowler websiteIn the published NDSE2 bibliography
Birgitta Böckeler · 2026-02-17
Interprets a reported harness through context, architectural constraints and codebase maintenance. Raises questions about reusable harnesses, constrained topologies and the effort of retrofitting existing systems.
Evidence, context & provenance
Evidence boundaryA reaction to another organization’s account, not an independent experiment. The author explicitly notes a gap in the reported functional verification.
Source type, as recorded: Interpretive practitioner commentary
- Source version
- The later primary article explicitly supersedes this 17 February memo. Direct retrieval still exposes the historical memo with a pointer to the expansion; an HTTP redirect was not established.
- Inspected passage
- Body: three categories; templates; runtime constraints; brownfield retrofit; final thoughts
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Read the expanded source version ↗
Topics. Architecture and modularity · Independent verification and oracles · Long-running agent execution
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Harness Engineering - first thoughts",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2026-02-17",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/harness-engineering-memo.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Interprets a reported harness through context, architectural constraints and codebase maintenance. Raises questions about reusable harnesses, constrained topologies and the effort of retrofitting existing systems.",
"limitation": "A reaction to another organization’s account, not an independent experiment. The author explicitly notes a gap in the reported functional verification.",
"evidence_class": "Interpretive practitioner commentary",
"source_locator": "Body: three categories; templates; runtime constraints; brownfield retrofit; final thoughts",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\", \"T:Code quality & security\"]",
"topics_json": "[\"K:Architecture and modularity\", \"K:Independent verification and oracles\", \"K:Long-running agent execution\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C05\", \"C:C07\", \"C:C11\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"source_version_status": "EARLIER_MEMO_SUPERSEDED_BY_EXPANDED_ARTICLE",
"latest_version_url": "https://martinfowler.com/articles/harness-engineering.html",
"latest_version_title": "Harness engineering for coding agent users",
"latest_version_publication_date": "2026-04-02",
"supersession_verified_date": "2026-10-18",
"source_version_note": "The later primary article explicitly supersedes this 17 February memo. Direct retrieval still exposes the historical memo with a pointer to the expansion; an HTTP redirect was not established.",
"ndse2_actual_chapters_json": "[\"C:C13\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F027Fowler websiteIn the published NDSE2 bibliography
Kief Morris · 2026-03-04
Distinguishes the why loop that pursues outcomes from nested how loops that build software. Proposes human work on the loop: improving guidance, checks and workflow rather than only editing individual outputs.
Evidence, context & provenance
Evidence boundaryA conceptual operating model. Its proposed agentic improvement flywheel is not a demonstrated organizational or reliability result.
Source type, as recorded: Conceptual operating model
- Inspected passage
- Body: why/how loops; humans outside, in and on the loop; flywheel
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Human-agent collaboration · Long-running agent execution · Specifications and governance
4 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Humans and Agents in Software Engineering Loops",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Kief Morris",
"authors_json": "[\"Kief Morris\"]",
"publication_date": "2026-03-04",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/humans-and-agents.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Distinguishes the why loop that pursues outcomes from nested how loops that build software. Proposes human work on the loop: improving guidance, checks and workflow rather than only editing individual outputs.",
"limitation": "A conceptual operating model. Its proposed agentic improvement flywheel is not a demonstrated organizational or reliability result.",
"evidence_class": "Conceptual operating model",
"source_locator": "Body: why/how loops; humans outside, in and on the loop; flywheel",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\", \"T:Jobs & roles\"]",
"topics_json": "[\"K:Human-agent collaboration\", \"K:Long-running agent execution\", \"K:Specifications and governance\"]",
"editorial_chapters_json": "[\"C:C01\", \"C:C03\", \"C:C11\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C11\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F028Fowler website
Birgitta Böckeler · 2026-07-07
Frames local agentic coding as a combined hardware, model, runtime, context and tool-calling problem. The account separates being able to run a model from obtaining usable results.
Evidence, context & provenance
Evidence boundaryA personal hardware/tool snapshot. Explanations for observed configuration differences are hypotheses; code quality was not systematically evaluated.
Source type, as recorded: Practitioner configuration exploration
- Inspected passage
- Scope; factors influencing viability; context size and harness; conclusions
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Agent context and persistent memory · Economic costs and return · Evaluation methodology and baselines
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Viability of local models for coding",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2026-07-07",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/local-models-for-coding-factors.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Frames local agentic coding as a combined hardware, model, runtime, context and tool-calling problem. The account separates being able to run a model from obtaining usable results.",
"limitation": "A personal hardware/tool snapshot. Explanations for observed configuration differences are hypotheses; code quality was not systematically evaluated.",
"evidence_class": "Practitioner configuration exploration",
"source_locator": "Scope; factors influencing viability; context size and harness; conclusions",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:What agents can do",
"streams_json": "[\"T:What agents can do\", \"T:Economics\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Agent context and persistent memory\", \"K:Economic costs and return\", \"K:Evaluation methodology and baselines\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C09\", \"C:C12\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F029Fowler website
Birgitta Böckeler · 2026-07-08
Presents a viability funnel and compares manual trials, a small automated evaluation and everyday local-model use. Outcome sensitivity to task, context and configuration makes simple capability claims difficult.
Evidence, context & provenance
Evidence boundaryTwo principal JavaScript/TypeScript tasks and small uneven repeat counts; one-shot automated trials differ from interactive work and do not establish a general ranking.
Source type, as recorded: Exploratory task evaluation
- Inspected passage
- Viability funnel; two task descriptions; manual/automated phases; day-to-day use
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Benchmarks and construct validity · Evaluation methodology and baselines · Agent context and persistent memory
4 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Experiences with local models for coding",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2026-07-08",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/local-models-for-coding-experiences.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Presents a viability funnel and compares manual trials, a small automated evaluation and everyday local-model use. Outcome sensitivity to task, context and configuration makes simple capability claims difficult.",
"limitation": "Two principal JavaScript/TypeScript tasks and small uneven repeat counts; one-shot automated trials differ from interactive work and do not establish a general ranking.",
"evidence_class": "Exploratory task evaluation",
"source_locator": "Viability funnel; two task descriptions; manual/automated phases; day-to-day use",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:What agents can do",
"streams_json": "[\"T:What agents can do\", \"T:Productivity\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Benchmarks and construct validity\", \"K:Evaluation methodology and baselines\", \"K:Agent context and persistent memory\"]",
"editorial_chapters_json": "[\"C:C02\", \"C:C03\", \"C:C09\", \"C:C12\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F030Fowler websiteIn the published NDSE2 bibliography
Giles Edwards-Alexander · 2026-07-30
Repeats one representative change as a large Rust data-access module is refactored. Estimated input-token use falls after decomposition permits more selective code reading, connecting architecture to inference work.
Evidence, context & provenance
Evidence boundaryOne application and change, approximate token counting and incomplete refactoring-cost accounting; this does not establish general ROI or savings for every future task.
Source type, as recorded: Exploratory refactoring experiment
- Inspected passage
- Experiment in refactoring; results table; notes on process; further work
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Economic costs and return · Architecture and modularity · Code reuse and duplication
3 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "The Economic Benefit of Refactoring",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Giles Edwards-Alexander",
"authors_json": "[\"Giles Edwards-Alexander\"]",
"publication_date": "2026-07-30",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/refactoring-economic-benefit.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Repeats one representative change as a large Rust data-access module is refactored. Estimated input-token use falls after decomposition permits more selective code reading, connecting architecture to inference work.",
"limitation": "One application and change, approximate token counting and incomplete refactoring-cost accounting; this does not establish general ROI or savings for every future task.",
"evidence_class": "Exploratory refactoring experiment",
"source_locator": "Experiment in refactoring; results table; notes on process; further work",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Economics",
"streams_json": "[\"T:Economics\", \"T:Code quality & security\"]",
"topics_json": "[\"K:Economic costs and return\", \"K:Architecture and modularity\", \"K:Code reuse and duplication\"]",
"editorial_chapters_json": "[\"C:C02\", \"C:C05\", \"C:C12\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F031Fowler websiteIn the published NDSE2 bibliography
Birgitta Böckeler · 2026-08-10
Separates human-authored tests, a human review checkpoint and TDD entirely inside an agent loop. The small exploratory comparison found no clear advantage for fully internal TDD in model-judged quality or mutation scores.
Evidence, context & provenance
Evidence boundarySmall greenfield tasks, imperfect adherence and an LLM-defined quality rubric. Reported aggregate tokens include cache rereads and are not equivalent to billed cost; no universal conclusion about human-led TDD follows.
Source type, as recorded: Small exploratory agent evaluation
- Inspected passage
- Setup; results; test-first and red-green goals; costs; conclusions
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Independent verification and oracles · Evaluation methodology and baselines · Economic costs and return
4 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "TDD inside the agent loop - theater or actual value?",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Birgitta Böckeler",
"authors_json": "[\"Birgitta Böckeler\"]",
"publication_date": "2026-08-10",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/tdd-in-the-agent-loop.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Separates human-authored tests, a human review checkpoint and TDD entirely inside an agent loop. The small exploratory comparison found no clear advantage for fully internal TDD in model-judged quality or mutation scores.",
"limitation": "Small greenfield tasks, imperfect adherence and an LLM-defined quality rubric. Reported aggregate tokens include cache rereads and are not equivalent to billed cost; no universal conclusion about human-led TDD follows.",
"evidence_class": "Small exploratory agent evaluation",
"source_locator": "Setup; results; test-first and red-green goals; costs; conclusions",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Verification & review",
"streams_json": "[\"T:Verification & review\", \"T:Economics\"]",
"topics_json": "[\"K:Independent verification and oracles\", \"K:Evaluation methodology and baselines\", \"K:Economic costs and return\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C07\", \"C:C12\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F032Fowler website
Giles Edwards-Alexander · 2026-09-02
In a simulated airline exercise, shared plans and frequent repository updates became an improvised coordination surface for agents. The account connects this behavior with the blackboard pattern and describes resulting CI pressure.
Evidence, context & provenance
Evidence boundaryA practice exercise, not a deployed airline system. The author explicitly questions reproducibility; the coordination mechanism was emergent rather than experimentally isolated.
Source type, as recorded: Exploratory team exercise
- Inspected passage
- Emergent behavior; shared plans; repository as blackboard; CI trade-off
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Human-agent collaboration · Agent context and persistent memory · Long-running agent execution
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "An Accidental Blackboard",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Giles Edwards-Alexander",
"authors_json": "[\"Giles Edwards-Alexander\"]",
"publication_date": "2026-09-02",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/exploring-gen-ai/an-accidental-blackboard.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "In a simulated airline exercise, shared plans and frequent repository updates became an improvised coordination surface for agents. The account connects this behavior with the blackboard pattern and describes resulting CI pressure.",
"limitation": "A practice exercise, not a deployed airline system. The author explicitly questions reproducibility; the coordination mechanism was emergent rather than experimentally isolated.",
"evidence_class": "Exploratory team exercise",
"source_locator": "Emergent behavior; shared plans; repository as blackboard; CI trade-off",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\", \"T:System knowledge & memory\"]",
"topics_json": "[\"K:Human-agent collaboration\", \"K:Agent context and persistent memory\", \"K:Long-running agent execution\"]",
"editorial_chapters_json": "[\"C:C03\", \"C:C09\", \"C:C11\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK"
}F033Fowler websiteIn the published NDSE2 bibliography
Naresh Jain · 2026-10-13
Compares development with and without a behavioral harness against a separate acceptance suite. On the selected service, the stronger model passed both conditions; a cost-optimized model passed more consistently with harness feedback, at greater per-attempt effort.
Evidence, context & provenance
Evidence boundaryTen paired runs per model on one unusually detailed greenfield Java brief. Guides and sensors changed together; estimated generation costs omit harness authoring, review and repairs. Final-gate-only use is proposed, not tested.
Source type, as recorded: Small repeated-run implementation experiment
- Inspected passage
- Experiment setup; independent outer evaluation; model comparisons; economics; boundaries
- Inspection scope
- Primary article byline and selected body passages inspected; no independent execution or statistical replication
Topics. Economic costs and return · Independent verification and oracles · Specifications and governance
6 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Are Harnesses Worth the Cost?",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Naresh Jain",
"authors_json": "[\"Naresh Jain\"]",
"publication_date": "2026-10-13",
"date_provenance": "Dated entry on the supplied series index; article date also used where printed",
"url": "https://martinfowler.com/articles/are-harnesses-worth-the-cost.html",
"publisher": "martinfowler.com",
"series": "Exploring Generative AI",
"series_url": "https://martinfowler.com/articles/exploring-gen-ai.html",
"snapshot_date": "2026-10-13",
"contribution": "Compares development with and without a behavioral harness against a separate acceptance suite. On the selected service, the stronger model passed both conditions; a cost-optimized model passed more consistently with harness feedback, at greater per-attempt effort.",
"limitation": "Ten paired runs per model on one unusually detailed greenfield Java brief. Guides and sensors changed together; estimated generation costs omit harness authoring, review and repairs. Final-gate-only use is proposed, not tested.",
"evidence_class": "Small repeated-run implementation experiment",
"source_locator": "Experiment setup; independent outer evaluation; model comparisons; economics; boundaries",
"verification_scope": "Primary article byline and selected body passages inspected; no independent execution or statistical replication",
"original_data_replicated": false,
"new_manuscript_citation": true,
"source_body_archived": false,
"primary_stream": "T:Economics",
"streams_json": "[\"T:Economics\", \"T:Verification & review\", \"T:Engineering structure\"]",
"topics_json": "[\"K:Economic costs and return\", \"K:Independent verification and oracles\", \"K:Specifications and governance\"]",
"editorial_chapters_json": "[\"C:C02\", \"C:C03\", \"C:C04\", \"C:C07\", \"C:C12\", \"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "IN_PUBLISHED_NDSE2_BIBLIOGRAPHY",
"node_class": "FOWLER_SERIES_ADDITIVE_OVERLAY_V12",
"ndse2_actual_chapters_json": "[\"C:C12\"]",
"ndse2_in_bibliography": true,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"historical_v12_book_citation_status": "NOT_ADDED_TO_BOOK",
"historical_v12_new_manuscript_citation": false
}F034Fowler websiteFULL PRIMARY TEXT
Jim Highsmith · 2026-08-19 · Updated 2026-10-13
The October revision adds practical guidance for writing from experience and using AI while keeping the writer's judgment visible. Highsmith describes cognitive assistance, contrasts different authoring choices, and connects useful prose to lived consequences, audience, storytelling and iterative editing.
Evidence, context & provenance
Evidence boundaryPersonal experience and editorial guidance; no controlled evaluation of cognition, learning, writing quality or productivity. Do not treat the revision as a newly published October article.
Source type, as recorded: Practitioner essay and personal experience
- Collection scope
- Adjacent martinfowler.com article; outside the original Exploring Generative AI series catalogue
- Inspected passage
- The Craft of Practitioner Voice; How to use AI without losing your voice; Significant Revisions
- Inspection scope
- Actual byline, original publication date and October 13 significant revision confirmed. No independent execution, causal evaluation or statistical replication.
Topics. Human cognitive load · Cognitive offloading and skill debt · Ownership and knowledge transfer
1 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "Practitioner Voice",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Jim Highsmith",
"authors_json": "[\"Jim Highsmith\"]",
"publication_date": "2026-08-19",
"updated_date": "2026-10-13",
"latest_activity_date": "2026-10-13",
"date_provenance": "Primary article Significant Revisions: original publication and later expansion distinguished",
"url": "https://martinfowler.com/articles/practitioner-voice.html",
"publisher": "martinfowler.com",
"series": "",
"series_url": "",
"source_scope": "Adjacent martinfowler.com article; outside the original Exploring Generative AI series catalogue",
"series_member": false,
"snapshot_date": "2026-10-18",
"contribution": "The October revision adds practical guidance for writing from experience and using AI while keeping the writer's judgment visible. Highsmith describes cognitive assistance, contrasts different authoring choices, and connects useful prose to lived consequences, audience, storytelling and iterative editing.",
"limitation": "Personal experience and editorial guidance; no controlled evaluation of cognition, learning, writing quality or productivity. Do not treat the revision as a newly published October article.",
"evidence_class": "Practitioner essay and personal experience",
"source_locator": "The Craft of Practitioner Voice; How to use AI without losing your voice; Significant Revisions",
"verification_scope": "Actual byline, original publication date and October 13 significant revision confirmed. No independent execution, causal evaluation or statistical replication.",
"access_status": "FULL_PRIMARY_TEXT",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Skills & learning",
"streams_json": "[\"T:Skills & learning\",\"T:System knowledge & memory\"]",
"topics_json": "[\"K:Human cognitive load\",\"K:Cognitive offloading and skill debt\",\"K:Ownership and knowledge transfer\"]",
"editorial_chapters_json": "[\"C:C09\",\"C:C10\",\"C:C11\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SITE_EXTENSION_20261018",
"addition_reason": "October 13 expansion on AI-assisted thinking and writing, absent from the series-only baseline. Scope expansion explicitly retained.",
"atlas_added_on": "2026-10-18",
"canonical_url": "https://martinfowler.com/articles/practitioner-voice.html",
"online_companion_update": true,
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"pre_reconciliation_book_citation_status": "NOT_ADDED_TO_BOOK",
"manuscript_citation_status": "NOT_CITED_IN_PUBLISHED_NDSE2_13_7_1",
"manuscript_citation_basis": "Absent from the final published NDSE2 13.7.1 active EN/ITA source tree and loaded bibliography"
}F035Fowler websiteFULL PRIMARY TEXT
Kuldeep Singh · 2026-10-15
An IoT modernization account connects physical test environments, device simulation, observability, recovery and continuous learning. The team used LLMs to explore unfamiliar areas, prototype experiments and develop engineering tools, including dashboards and migration trackers. The proposed benefit is cheaper experimentation and a shorter learning loop.
Evidence, context & provenance
Evidence boundaryThe article describes one team's practices and perceived benefits. It does not isolate AI's contribution or quantify productivity improvements. Physical-world validation remains part of the reported engineering process.
Source type, as recorded: Qualitative engineering experience report
- Collection scope
- Adjacent martinfowler.com article; outside the original Exploring Generative AI series catalogue
- Inspected passage
- Experimentation environment; physical testing; Use AI to shorten the learning loop; Capture discoveries; Significant Revisions
- Inspection scope
- Byline, publication history and AI-specific section inspected. No independent execution, causal evaluation or statistical replication.
Topics. Onboarding and developer fluency · System understanding and rationale · Developer workflow and adoption · Independent verification and oracles
2 recorded source relationships
These retain the graph’s exact relation labels. A connection is not automatically a causal claim or an independent replication.
All preserved graph attributes
{
"label": "When Software Meets Hardware",
"kind": "practitioner_essay",
"collection": "F",
"authors": "Kuldeep Singh",
"authors_json": "[\"Kuldeep Singh\"]",
"publication_date": "2026-10-15",
"updated_date": null,
"latest_activity_date": "2026-10-15",
"date_provenance": "Primary article dateline and Significant Revisions",
"url": "https://martinfowler.com/articles/software-meets-hardware.html",
"publisher": "martinfowler.com",
"series": "",
"series_url": "",
"source_scope": "Adjacent martinfowler.com article; outside the original Exploring Generative AI series catalogue",
"series_member": false,
"snapshot_date": "2026-10-18",
"contribution": "An IoT modernization account connects physical test environments, device simulation, observability, recovery and continuous learning. The team used LLMs to explore unfamiliar areas, prototype experiments and develop engineering tools, including dashboards and migration trackers. The proposed benefit is cheaper experimentation and a shorter learning loop.",
"limitation": "The article describes one team's practices and perceived benefits. It does not isolate AI's contribution or quantify productivity improvements. Physical-world validation remains part of the reported engineering process.",
"evidence_class": "Qualitative engineering experience report",
"source_locator": "Experimentation environment; physical testing; Use AI to shorten the learning loop; Capture discoveries; Significant Revisions",
"verification_scope": "Byline, publication history and AI-specific section inspected. No independent execution, causal evaluation or statistical replication.",
"access_status": "FULL_PRIMARY_TEXT",
"original_data_replicated": false,
"new_manuscript_citation": false,
"source_body_archived": false,
"primary_stream": "T:Engineering structure",
"streams_json": "[\"T:Engineering structure\",\"T:Skills & learning\",\"T:Productivity\"]",
"topics_json": "[\"K:Onboarding and developer fluency\",\"K:System understanding and rationale\",\"K:Developer workflow and adoption\",\"K:Independent verification and oracles\"]",
"editorial_chapters_json": "[\"C:C02\",\"C:C05\",\"C:C09\",\"C:C10\",\"C:C13\"]",
"mapping_status": "Independent editorial mapping, not classification by the article authors or SE@PoliMi",
"book_citation_status": "COMPANION_READING_NOT_IN_BOOK",
"node_class": "FOWLER_SITE_EXTENSION_20261018",
"addition_reason": "New October 15 experience report with an explicit AI-assisted learning and engineering-tooling section, outside the original series.",
"atlas_added_on": "2026-10-18",
"canonical_url": "https://martinfowler.com/articles/software-meets-hardware.html",
"online_companion_update": true,
"ndse2_actual_chapters_json": "[]",
"ndse2_in_bibliography": false,
"ndse2_citation_basis": "Final 13.7.1 active EN/ITA source tree; index links and nocite are not chapter citations",
"pre_reconciliation_book_citation_status": "NOT_ADDED_TO_BOOK",
"manuscript_citation_status": "NOT_CITED_IN_PUBLISHED_NDSE2_13_7_1",
"manuscript_citation_basis": "Absent from the final published NDSE2 13.7.1 active EN/ITA source tree and loaded bibliography"
}