AI Native Development: Community Principles

Authors: Patrick Debois + Dion Almaer

Jan 17, 2025

Version: 0.1 (DRAFT)

When there are large technology ecosystem shifts, we look to understand them, and how to maximize the value in embracing what is at their core. With GenAI, we now have the ability to manage massive computing systems, at unprecedented scale and capability, that are able to communicate with us through natural language, as well as code.

The principles in this living document aim to capture the emergent understanding and reality of this epic shift, and the goal is to collectively build alignment across the industry.

TL;DR

  1. Specification Driven Development: With Agile, we took a turn that leaned away from specifying requirements outside of code. The pendulum swung due to the correct desire to focus on running software versus documents that did nothing. In a GenAI world that allows humans and computers to speak naturally, specifications are not dormant, but can act as a source for generating software that runs. Specifications can now act as a vital bridge that allows developers and others in the business to all be looking at, and contributing to, the same source of truth.

    1. Mature AI native solutions don’t use specifications as documents that offer inspiration, rather provide a spec-centric approach that results in canonical specifications that are the source of truth (vs. code-centric).

  2. Context aware: It is impossible for a human to hold all of the relevant context in their head as they create, modify, and maintain software. This has meant that developers have been working with a limited picture, using each other for help, but resulting in an unreliable, unresilient situation (oh no, Wendy left the company!). Today, AI systems can help track vast amounts of data and relate the whole context: ranging from business and industry context, user feedback, market trends all the way to user feedback and operational insights. This widens the view of the developer and helps them and the AI to make better informed decisions.

  3. Unleash the AI agents: We embrace the networked computers that are able to develop (e.g. code) and operate software systems. We are excited to move up a level of abstraction where appropriate, building meta-tools and meta-cognition that power our AI agents.

  4. Designed for human oversight: It is important to recognize the reality of what AI is capable of at any point in time, and what humans are still best equipped to do. We temper our bullishness around using AI and the growing capabilities it represents, with this reality, and there are levels of intent that will always be appropriate for the humans in charge of the overall objectives. Thus, our systems must have clear, usable, human oversight capabilities baked in.


These principles build on each other intentionally:

  1. Align on the requirements, in the most approachable way, so that all stakeholders (from the business side, to technology side, to AI!) are using the same source of truth…

  2. Where everyone (again, both humans and computers) has access to all relevant context

  3. Allowing a crowd of AI-enabled, networked computers to create and operate software systems…

  4. With human oversight (and the ability to course correct) over it all.


Let’s go into more detail on each principle.

Specification Centric Development

Benefits

  • Requirements are a first class citizen that are tied to running software versus documentation that is out of date

  • Fosters collaboration with a broader group across technologists (e.g. product managers, designers), and the business (e.g. analysts, management)

  • Allows for a clear separation of the HOW from the WHAT

  • Allows for easier detection of conflicts between requirements

  • Allows for requirements sharing and hyper personalization

  • Self-documenting

Subscribe to our podcasts here

Welcome to the AI Native Dev Podcast, hosted by Guy Podjarny and Simon Maple. If you're a developer or dev leader, join us as we explore and help shape the future of software development in the AI era.

Subscribe to our podcasts here

Welcome to the AI Native Dev Podcast, hosted by Guy Podjarny and Simon Maple. If you're a developer or dev leader, join us as we explore and help shape the future of software development in the AI era.

Subscribe to our podcasts here

Welcome to the AI Native Dev Podcast, hosted by Guy Podjarny and Simon Maple. If you're a developer or dev leader, join us as we explore and help shape the future of software development in the AI era.

THE WEEKLY DIGEST

Subscribe

Sign up to be notified when we post.

Subscribe

THE WEEKLY DIGEST

Subscribe

Sign up to be notified when we post.

Subscribe

THE WEEKLY DIGEST

Subscribe

Sign up to be notified when we post.

Subscribe

JOIN US ON

Discord

Come and join the discussion.

Join

JOIN US ON

Discord

Come and join the discussion.

Join

JOIN US ON

Discord

Come and join the discussion.

Join