Monday, June 23, 2025

The GenAI Software Development Spectrum

In my usage and conversations with other "builders", here is the spectrum of GenAI usage I've come across.  

L1. Ask/Discover/Learn - AI as a Knowledgeable Expert


Use AI as a replacement for Google or Stack Overflow
  • Manual/Documentation Lookup
  • Explain/Understand Code
  • Ask about Best Practices and Options

L2. Augment - AI as a Pair Programmer


Work together with the AI in small iterative increments where you bounce off ideas and take turns where you do some of the work and the AI does some of the work.
  • Auto Complete
  • Debugging
  • Refactoring
  • Code Quality Review
  • Optimisation and Performance Review
  • Security Review

L3. Delegate - AI as a Junior Programmer

After some planning and discussion with the AI, give it tasks and have it write the code that you review before accepting the pull request. 
  • Specs, Requirements, Plan with Tasks
  • Assign Tasks to AI to writes code
  • Review pull request for the code written by AI

L4. Outsource - AI as an Outsourced Freelancer or Agency

You only care about the outward functionality of the software and you outsource the engineering/development to the AI.
  • Come up with the Spec and Requirements
  • Tell the AI to come with a plan and tasks
  • Ask the AI to "build" the software.
  • Test the functionality of the software as a user

Questions for the Reader

  1. How do you use GenAI?
  2. Do you have a different model for thinking about this?
  3. Have you come across other ways of GenAI usage in software development?

Saturday, June 21, 2025

GenAI is great for Understanding Legacy Code and Open Source Contribution

While GenAI can be a high speed legacy code water hose, that can be used to create tons of legacy code instantly, it's also a great tool for understanding legacy codebases and orienting yourself.  It can be used to build ephemeral test scaffolding to get a safety net before making changes to the legacy code. 

This, IMO, is great for open source software where you can use GenAI to quickly understand the codebase "just enough" to make the contributions you want to make.

Friday, June 20, 2025

The GenAI Product Management Traps

Feature Factory / Kitchen Sink

GenAI greatly reduces the barrier to directly and quickly build features which makes it very easy to act as a feature factory and build a kitchen sink of a product. One that is not true to a design or have an opinionated view.

  • When implementation is cheap, it's easy to end up in a mess.
  • When you try to make everyone happy, you end up not making anyone happy.


Big Design Upfront / Waterfall Software Development

In an attempt to prevent GenAI from making mistakes there is a focus on front loading effort in the specs and requirements. 

  • We need to iterate and have to discover what we are building
  • Action precedes clarity
  • Account for emergence

All these issues boil down to the question of Are We Building the Right Product?


Wednesday, June 18, 2025

GenAI Multi-Pass

Given the non-deterministic nature of GenAI and a near future where software development might not involve opening an IDE to write software, one way to catch issues might be to take a multi-pass approach where each pass is specialised for a specific purpose, so as to not overload the LLM with too many things to take care of at one time. Some of these multi-passes could be:

  • Coding Pass
  • Code Quality Pass
  • Security Pass
  • Performance Pass
Each of these passes could result in improvements tasks and this could be an iterative process till a certain threshold is met.


Tuesday, June 17, 2025

The Excitement and Frustration of using GenAI for Software Developement

Exciting

  • The possibilities that GenAI enables makes software development truly exciting again.

Addictive

  • It's so easy to convert ideas to working software, it can be very addictive and you can quickly loose any sense of time. 
  • It keeps you from wasting time, being unproductive or procrastinating

Frustrating

  • The non-deterministic nature of GenAI can make it very frustrating.

Time Sink

  • It's very easy to get sucked into long conversations, and issues specific to GenAI, than spending time actually building.

Sunday, June 15, 2025

My Criteria for when to use Vibe Coding

 Here is my personal criteria for when it's appropriate to Vibe Code

  1. Internal Use / Personal Software
  2. One-off throwaway tools/scripts/code
  3. Experiments
  4. Prototypes