Skip to main content
The Davenporter
Essays Code Arcade Now
Theme
Palette
Jason Davenport

I write about agents doing real engineering work: source control, memory, telemetry, and the human side of AI.

Subscribe

Elsewhere

  • Substack
  • LinkedIn
  • GitHub
  • X
  • RSS
  1. Home
  2. Essays
  3. Maximizing Developer Value: Using AI Across the Entire Code Lifecycle

Maximizing Developer Value: Using AI Across the Entire Code Lifecycle

Jul 10, 2025 · 6 min read · Original on Substack ↗

There’s now a wealth of information and tutorials floating around about how you can go from 0 to 1 with AI, or even vibe code personalized apps or prototypes? But what’s next, and how do we use AI effectively across all parts of our coding development?

Cover image for Maximizing Developer Value: Using AI Across the Entire Code Lifecycle
Cover image from the original post.

There’s now a wealth of information and tutorials floating around about how you can go from 0 to 1 with AI, or even vibe code personalized apps or prototypes? But what’s next, and how do we use AI effectively across all parts of our coding development?

Understanding the Code Completion Curve

The feature or code completion curve tends to look something like this when you consider the amount of lines of code you write, to what actually ends up shipping based on completing the work:

A curve describing how lines of code goes up as you create it then it refactors and levels off.

What happens at certain parts of the graph above roughly equates to how we can think about using AI for different ‘tasks’ and ‘roles’ in the coding lifecycle, positioning AI for success, and also setting us developers up to maximize our value in the cycle.

Let’s talk about the first part of this graph, where we’re writing code in order to get a feature or requirement working, or what I’m calling the Generate zone.

The ‘Generate’ Zone: Using AI as a Creative Foil

Describing how code generation is where most lines of code are initially written before something is working.

Interestingly (or not), most of the AI examples I find online anymore are heavily weighted to this code zone (I see you vibe coding). If you’ve attempted an AI experiment, this is probably where you started, and either had success, mixed success, or no success.

This also happens to be the zone where we, as humans, are the most effective. Creativity isn’t bred from next token prediction, it’s about building business context in the broader context of our applications we create and operate, and design ways to creatively implement a requirement. If we just try to put AI in this box, no one ends up happy except for the 30 minute app creators.

As we shift from generation in a 0 to 1 scenario to an incremental feature, using AI here can also help to improve our ability to onboard to code, learn it, and make changes. Here, we are asserting control over which AI tools we are using, and leveraging components of AI for efficiency and quality. Yet, we are not giving up control over what we learn, and it’s important to draw the distinction so we use the right AI components.

You’ve also generated the most code that you have to maintain when you finally get the thing working the first time, which leads us into the second, or ‘Refactor’ zone.

The ‘Refactor’ Zone: Optimizing Code with AI Assistance

Describing how code lines tend to go down once it works and the code is refactored and optimized.

Here, in the refactor and optimize zone, we apply our knowledge of coding principles, pain of the past, and other knowledge about things like performance to slowly reduce the code we built, refactor it based on good coding practices, and make the code ready to ‘ship’. Here, there’s an art and a science, but we’re using what we’ve generated as the input, and our standards and observations to reduce and refactor.

The blue zone also happens to be the next ‘underserved’ area I think about more and more for AI. While we need to provide a lot of input here, as developers we can provide specs, build observability platforms, and set goals for code refactoring that tend to rely better on an existing knowledge base than in pure generation. Which leads us to the final, or ‘move on’ zone.

The ‘Move On’ Zone: Knowing When Good Enough is Best

Depicting where we probably need to stop working on the code as optimization will not yield many line reduction results.

I call this the ‘move on’ zone, but you could also call this the danger zone of development. If things are going good enough, we need to know when to stop optimization for optimization sake and move on, and avoid the refactoring loop that can happen as we add features and then continually revisit ‘good enough’ code..

Why These Zones Matter for Effective AI Integration

For starters, when we use AI, it’s important to recognize the benefit that AI and LLM’s can provide us while also not losing the creativity and systems thinking that humans can, in fact, provide. In all cases, its about the systems around AI that we need to create and maintain in order for the LLM and us to build good software.

Practical Recommendations for Using AI in Each Zone

If you’re getting started, here are a few recommendations I have as you think about the ‘zones’, and using AI in each zone. While not all inclusive, hopefully these provide a few nuggets or places you can use LLMs or your existing systems to improve LLM performance.

Generate

  1. Use AI as your foil. Ask LLM models, based on what you need to do and your ideas, to critique them, find potential holes, and generate potential execution plans.

  2. Using thinking models here can be high value to see how an LLM would approach the tasks associated with the outcome you want. This allows you to refine your approach to solving the business problem.

  3. Next, you can use an LLM to generate a task list to provide to other LLMs for completion, or even as subsets of activities as you write and test the code.

  4. Remember that the LLM is only as good as the context you provide. An LLM doesn’t know that you’re only in us-east5, or what models you have access to. Provide this as context to get the best answers.

Refactor

  1. Your code is working! Using a new prompt or different model for refactoring starts with a clean slate and ensures you dont overweight context that was needed in generation.

  2. Here, ensuring your standards are written down and having few shot examples helps the LLMs refactor code as required. Following some principles for TDD here can be useful: give the LLM the test cases the code needs to pass in order to make sure the refactored code meets the goal.

  3. Next, your other tech systems are critical here. Refactoring is an art informed by science. What calls are typically long? Does a specific call need to be optimized further to fit the wall time for an API call? Giving access to this information for an LLM via MCP allows the LLM to get this information as needed to know when to stop.

Move on

  1. The code is good enough! You can move on to the next problem.

  2. The systems you set up can monitor the code in the context of the platform it operates in. Setting up agents to check for long running processes or tasks is a useful and easy way to find things that may need further optimization while avoiding the trap of ‘continuous optimization’.

Share your own experiences with AI in the code lifecycle in the comments below!

This week, in what happened in my mailbox last week:

Let’s address another comment from one of my initial posts about AI usefulness:

  • AI is helping to remove the drudgery

YES! It can be a big daunting to think about AI especially in the context of the current market where you hear about ‘AI taking jobs’ and all these other things (look at annual reports for the full story on these companies and don’t get sucked into the AI-ness of it).

In one of my first roles out of college I was a process analyst where we value stream mapped a number of client activities. Value stream mapping is a great way to identify things in the process that arent fun or add value and see how AI can potentially work to remove the work.

Another way to help remove the drudgery is to consider what the end goals are of any process and simply apply these as a part of a prompt to thinking models. This may prompt new ways to think about a problem and remove the toil, or identify further toil that can be automated or changed.

Ultimately, the goal is to lean into what humans do best with AI being one of the most capable tools we have available today.

← Newer essay 'Dark data' is your new most valuable data for AI

Get new posts by email

I send new essays by email through Substack. Subscribe there and they'll land in your inbox.

Subscribe on Substack ↗
Subscribe on Substack · RSS · Privacy ·
Page metadata

Social card and structured data

The share image, feeds and Schema.org JSON-LD that search engines and AI tools read for this page.

Social card

Title card for Maximizing Developer Value: Using AI Across the Entire Code Lifecycle
Card URL: /og/maximizing-developer-value-using.svg

Machine feeds

/llms.txt /llms-full.txt /sitemap.xml /api/agent/spec

Structured data

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Person",
      "@id": "https://davenporter.com/#jason-davenport",
      "name": "Jason Davenport",
      "alternateName": "@davenportjw",
      "jobTitle": "AI & Distributed Systems Architect",
      "description": "Exploring agent-first source control (cosm), trajectory-to-lineage observability, Spanner-backed agent memory consolidation (Electric Sheep), hybrid local/cloud LLM routing, and real-time multiplayer browser simulations on Google Cloud Run.",
      "url": "https://davenporter.com",
      "sameAs": [
        "https://davenporter.substack.com",
        "https://www.linkedin.com/in/davenportjw",
        "https://github.com/davenportjw",
        "https://x.com/davenportjw"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://davenporter.com/#website",
      "url": "https://davenporter.com",
      "name": "The Davenporter",
      "description": "Learnings about software, technology, agentic systems, and occasionally home renovation.",
      "publisher": {
        "@id": "https://davenporter.com/#jason-davenport"
      },
      "inLanguage": "en-US"
    },
    {
      "@type": "ImageObject",
      "@id": "https://davenporter.com/writings/maximizing-developer-value-using#primaryimage",
      "url": "https://davenporter.com/og/maximizing-developer-value-using.png",
      "contentUrl": "https://davenporter.com/og/maximizing-developer-value-using.png",
      "width": 1200,
      "height": 630,
      "caption": "Title card for Maximizing Developer Value: Using AI Across the Entire Code Lifecycle",
      "representativeOfPage": true,
      "creator": {
        "@id": "https://davenporter.com/#jason-davenport"
      },
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "acquireLicensePage": "https://davenporter.com/writings"
    },
    {
      "@type": "WebPage",
      "@id": "https://davenporter.com/writings/maximizing-developer-value-using#webpage",
      "url": "https://davenporter.substack.com/p/maximizing-developer-value-using",
      "name": "Maximizing Developer Value: Using AI Across the Entire Code Lifecycle | The Davenporter",
      "description": "There\u2019s now a wealth of information and tutorials floating around about how you can go from 0 to 1 with AI, or even vibe code personalized apps or prototypes? But what\u2019s next, and how do we use AI effectively across all parts of our coding development?",
      "isPartOf": {
        "@id": "https://davenporter.com/#website"
      },
      "about": {
        "@id": "https://davenporter.com/#jason-davenport"
      },
      "primaryImageOfPage": {
        "@id": "https://davenporter.com/writings/maximizing-developer-value-using#primaryimage"
      },
      "inLanguage": "en-US"
    },
    {
      "@type": "FAQPage",
      "@id": "https://davenporter.com/writings/maximizing-developer-value-using#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is \u201cMaximizing Developer Value: Using AI Across the Entire Code Lifecycle\u201d about?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "There\u2019s now a wealth of information and tutorials floating around about how you can go from 0 to 1 with AI, or even vibe code personalized apps or prototypes? But what\u2019s next, and how do we use AI effectively across all parts of our coding development?"
          }
        }
      ]
    },
    {
      "@type": "BlogPosting",
      "@id": "https://davenporter.com/writings/maximizing-developer-value-using#article",
      "mainEntityOfPage": {
        "@id": "https://davenporter.com/writings/maximizing-developer-value-using#webpage",
        "url": "https://davenporter.substack.com/p/maximizing-developer-value-using"
      },
      "headline": "Maximizing Developer Value: Using AI Across the Entire Code Lifecycle",
      "alternativeHeadline": "There\u2019s now a wealth of information and tutorials floating around about how you can go from 0 to 1 with AI, or even vibe code personalized apps or prototypes?",
      "description": "There\u2019s now a wealth of information and tutorials floating around about how you can go from 0 to 1 with AI, or even vibe code personalized apps or prototypes? But what\u2019s next, and how do we use AI effectively across all parts of our coding development?",
      "datePublished": "2025-07-10T16:00:00Z",
      "dateModified": "2025-07-10T16:00:00Z",
      "wordCount": 1298,
      "keywords": "AI Engineering",
      "author": {
        "@id": "https://davenporter.com/#jason-davenport"
      },
      "publisher": {
        "@id": "https://davenporter.com/#jason-davenport"
      },
      "image": {
        "@id": "https://davenporter.com/writings/maximizing-developer-value-using#primaryimage"
      },
      "url": "https://davenporter.substack.com/p/maximizing-developer-value-using"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://davenporter.com/writings/maximizing-developer-value-using#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://davenporter.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Essays",
          "item": "https://davenporter.com/writings"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Maximizing Developer Value: Using AI Across the Entire Code Lifecycle",
          "item": "https://davenporter.com/writings/maximizing-developer-value-using"
        }
      ]
    }
  ]
}

Ask The Davenporter

● Checking local AI… How it works →

Chrome can download Gemini Nano so answers run on your device.

0%
Ask anything about the essays, projects, or games on this site.