So what does StarCraft (or SC) have to do with agentic coding? Why do people who played SC feel its transferrable to this new era of creating software with agents. Why is @tobi the CEO of Shopify keep bringing it up? Is it justification for the thousands of hours spent in their youth? To proclaim to the world, it's not a waste of time?!
Having played (conservatively) over 2000+ games, ranked high Diamond, and at best, Master (Zerg of course, ok fine Master in 2v2), I'll try to break it down as a SC player, why we feel the future of orchestrating agents to build software has a familiar feel to it.
SC is a RTS (real-time strategy) game where you gather resources, build bases and control your army (units) in real time and try to defeat an opponent who’s doing the same. Most 1v1 games last about 30-40 minutes. I would argue that it ignited the eSports industry with its million-dollar prize pool, celebrity-like players in South Korea, audience size, captivating commentators...
Ok like cool story bro, how this is relevant to orchestrating coding agents? Two words..
Micro and Macro. And Meta. Ok fine, three words.
I'll start with Micro since it's easier to explain. Micro (short for micro-management) means actions that directly control a specific unit.. Ya, u know that feeling when your manager controls every tiny decision you make at work, same thing 😄 In SC, good micro is extremely precise unit control: exact movement, exact timing and intent for that unit. This is important so you can use your unit's special characteristic to its maximum potential, e.g. blinking stalkers in n out of harms way (I hate you Protoss).
And Macro, are actions that affect the overall flow of the game: the strategies, the management if u will. Some macro questions you constantly grapple (concurrently) with throughout the game is
1. is this a good time to get more resources so it will pay off later OR use the resources to build up the army to hurt the opponent for X reason
2. scouting and looking at what the opponent is building, and decide on your army composition to best counter theirs
3. .. the list goes on.
You are constantly monitoring the map, accessing the current status, the progress, and making changes to the plan in real-time to improve your odds of winning. See the pattern yet? :D
Good SC players know when to micro and when to macro. The best SC players do both blurringly at the same time (trust me, when I say blur, I meant it figuratively and literally). This is where APM (actions per minute) comes into the conversation. IMO, it is not the APM that matters as the takeaway, the point is you are constantly context switching between them. It's normal, in fact, demanded of you if you want to win.
And lastly, Meta: the game above the game. Every SC patch can either buff or nerf certain units, actions, timings, etc. This can change the game drastically and players come up with new macro strategies and micro actions, and when the combinations eventually converge, it becomes the "meta" for that patch.
This means SC players are used to changes, there is a flavor of the month, you either adapt or you lose.
I hope I shined some light to why people are clamoring to this analogy and why it feels familiar. Personally I feel it boils down to
1. conditioned to context switch constantly
2. an understanding that you have to micro and macro in order to get the best results
3. patch happens, learn the buffs n nerfs, you adapt or you lose.
If you got this far, and if you are also a gamer but just not a SC fanatic, you are probably thinking, hey this is not that different from the games I am playing. I am sure Factorio fans will be shouting from their rooftops too.
Maybe it's my cognitive biasness speaking, but there is a feeling of "gaming" in this new world of building software. Ok this is long enough, but lastly I do want to shout out "IT WAS NOT A WASTE OF TIME!"
@trq212 My workaround is when i noticed this, i will cancel n say “ask me those questions again from the start, don’t answer them for me”. And Claude respond is it will notice that they auto submitted without my actual input .. I hope this gets fixed soon :(
@trq212 Getting a weird bug where if I use dangerously skip permission, and also using the AskUserQuestion tool, Claude code shows a “blank” AskUserQuestion output (no selection UI) and “answered” on its own (by mentioning it in next message).. not sure if u guys noticed it too
https://t.co/6nbCRn72F9
"..Code was treated analogously to an ML model snapshot: opaque weights whose correctness is inferred exclusively from externally observable behavior. Internal structure is treated as opaque."
I can't help but to feel working in robotics is analogous to this? I mean with zero experience in that field but I would think its the same challenges? Or I guess now in general, all software development converge to that programming model ..
But are we over-complicating it?
Or are we now finally realizing and admitting that software behaving deterministically with a snapshot model of the world was an illusion and the best we could do up till now?
Yes, I did have a DECENT plan (you have to trust me on this), etc.
iykyk, you are ALWAYS going to run into issues or bugs not captured in the spec.
Now, the coordination will be your issue in this setup. e.g. If there is a backend bug, the backend agent has to fix it and then let the frontend know to verify or fix their end, or vice versa, etc.
Rinse, Repeat where each loop increases the odds of context rot.
That said, I still believe this set up COULD work, but is the juice worth the squeeze?
Personally, I would breakdown work and organize them differently. Instead I have a team of full-stack engineers owning (decent sized) vertical slices supported by an Architect with the plan, with QA and Security agents as additional verification with fresh context.
But won't that create the same issue? It will (in some aspects), but at least the assumption is the feature would be working by then, with the QA+Security agents making it better.
And who knows, with a larger context and improvements to models by year's end, we might not even need those separation.
Personal quick learnings from using new @claudeai Agent teams (orchestration) at work.
1. Splitting up work in terms of backend and front end sounds good in theory but likely have poorer results. (Hold your thoughts and counter-arguments to the end of this thread... ) ...
In an ideal world, would u rather have 1 expert front end engineer and 1 expert backend engineer working together OR 1 expert full stack engineer?
IMO the human-world constraint is its harder to find an expert full-stack engineer. Well, this is no longer the case ;)
So what's so bad about splitting this work up?
Yin, don't you have a well-specified plan with clear API contracts, interfaces that separated the concerns? Don't you have a clear test plan? Verification? ..
@saranormous 💯a framework I use for my teams is “Make it work->Make it right->Make it fast”.. Make it work is solved, but how do we codify for “make it right”
Hooks can now run in the background without blocking Claude Code's execution. Just add async: true to your hook config.
Great for logging, notifications, or any side-effect that shouldn't slow things down.
🤯 what a great idea! Immediately comes to mind is having subagents(?) with this skill to maintain visualization of code side by side while coding, or a separate panel keeping track of how the conversation is progressing like a dashboard of sorts do whatever u want to track. Now ur building a richer “IDE” for Claude in the terminal with dynamic interfaces🤯
In Civ, its "One more turn". For Claude Code, its "One more prompt"!
Catching myself more when I am working on parallel items at work: where after one item is done, I start adding onto a new item, and so on...
I need to consciously stop myself and take a break.
The dopamine hits and FOMO are real.
@rjs 💯for me personally it’s about how much of the “solution space” you want Claude to explore. Laying down the stones (to me) are setting the constraints around that space. Or at least that’s how I think about it
@karpathy@altryne@airesearch12 Related and another insightful article is the “deletion test” by Chad Fowler
“Ask yourself: If I deleted this codebase and regenerated it from scratch, what would I rely on to decide whether the result was correct?”
https://t.co/zsoy5g8zr2