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 also be used to build ephemeral test scaffolding to get a safety net before making changes to the legacy code. 

This, IMO, is not just great for managing legacy code, it's also great for open source software. 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

Sunday, December 13, 2020

The Hyderabadi Biryani Problem

 Everyone says Hyderabadi Biryani is amazing but if you say you didn't like the Hyderabadi Biryani you tried, they will ask you which restaurant you tried it at and then the inevitable answer will be "Oh, that one isn't good, you should try it at XYZ Biryani House" and so on till infinity. There is ALWAYS a restaurant where the biryani is better than the one you didn't like.