Like a lot of people with aphantasia (the inability to picture things by thinking about them), I came up with a lot of practical workarounds for not being able to hold images in my mind, and one of my go-tos is a reliance on whiteboarding. For the unfamiliar it’s the process of getting your team together in a room and designing software / systems / anything as a group while drawing the design on a classic whiteboard. To me software isn’t either the code or the running program, it’s the perfect whiteboard design with all the components beautifully connected, and uncontaminated by real world implementation. I joke to some degree but only to some degree: I really do love a clean design.
When my team started to work with AI assisted development I kept what I thought was the same general process: we met as a group, designed the software while discussing and drawing on the board, then converted that into a large markdown document, and finally started the agentic build and went to get lunch. The first pass result was never close to what we actually requested and it took a lot of iteration to get it to be what it was supposed to be.
I made two mistakes here. First was that AI is not great at following large markdown documents (in the case of one specific internal API service the final human-written spec was 40 pages, with another 120+ pages of supplemental reference documents). But the second problem was that I forgot what the point of whiteboarding actually is: it’s not really about the finished pristine whiteboard image (or the lossy copy that’s the markdown doc), it’s about the talking process of getting there.
What we’re trying now, and what seems to be working better, is to include the agent as a conversation partner acting like one of us in the room during the whiteboarding process. Let it ask questions, let it pitch ideas, and remember the old tip that iteration is still the best way to do software development. I need to push down my obsession with creating the perfect diagram that I keep hoping will magically turn into the perfect finished product, and instead build early, sloppy, and in small pieces while talking about it the whole way.
I’ve written before about AI agents being too agreeable and this is my fix for it: I now usually end my prompts with "Ask me some questions about this before starting", and I find it helps in getting good results faster, and helps me understand what I’m actually trying to do and not get lost in the weeds. Whiteboarding is about the talking, not the whiteboarding.