@gimenete@martinwoodward I love the app, but a couple of weeks ago there was this great feature that you could orchestrate work against multiple repositories. This was amazing, please bring that back!
https://t.co/RsDJYZqgTp
These are great tips to get overnight agents runs to work out. I have tried grill-me skill recently but will need to try out the prd & issue skills also
Tons of folks are piling in here saying that AFK agents are a myth.
I have been using them to ship these GitHub repos:
mattpocock/evalite
mattpocock/sandcastle
mattpocock/software-factory (might be public by the time you see this)
Here are a few steps to making this work, and some reality checks.
Definitions
Let's split this into the day shift and the night shift. Day shift is planning/review/QA, night shift is AFK implementation.
Day Shift (part 1)
1. Use /grill-me to align with the AI
2. Use /to-prd and /to-issues to create a PRD (the destination) and implementation steps as separate tickets, which can be grabbed in parallel (the journey)
3. The PRD is a ticket, but it's not an actionable step. You just put the user stories there
This is pure requirements gathering shit, same as it ever was.
Night Shift
1. I run a planner agent which looks at all the tickets and sees what can be worked on now, and what's blocked
2. The planner agent then kicks off multiple agents (sandboxed using Sandcastle, my OSS tool) to implement the code
3. I then have an automated reviewer agent look at the commits produced - one agent per implementation. This checks alignment to the original PRD, as well as code quality
4. These commits end up on branches that get PR'd to main
5. The planner agent runs again until all work has been completed
The review is a crucial step - it's saved me MANY times. I am planning to massively increase the amount of review I do, hopefully with multiple agents.
But guess what - AFK agents sometimes produce bad code. This can happen because of:
a. The original plan was bad because the best solution was something different
b. The original plan was bad because it didn't take into account all the unknown unknowns, and the AI had to make some decisions during the coding session which were bad
c. The plan was good, but the AI just shat the bed (twice, once in the review stage, once during implementation)
d. Your codebase is bad and the feedback loops don't tell the agent if it did a good job or not
So... QA:
Day Shift (part 2)
1. QA all of the branches created
2. Create follow-up issues, potentially editing the original PRD to adjust the destination
This will usually take a long time, often as long as planning. But then you kick off the night shift again.
Once QA is all done, you review the important bits of code manually, usually in PR's. There isn't anything better than the PR UI right now, so that's what we're stuck with.
Wake-up Calls
1. If you let the AI run all night unbounded by planning, it's going to produce shit code
2. Mostly, my loops finish before I go to bed, it's just the night shift catching up to the day shift
3. The only reason I do AFK at all is because it allows me to automate review and totally not give a shit about latency
4. I always run night and day shift in parallel. I can't plan that far ahead (skill issue, probably). I need working code to base my plans from, so I'm aggressively QA-ing stuff that lands
Here's all that matters when it comes to Agile—everything else is complete crap:
"We are uncovering better ways of developing
software by doing it"
It's entirely about learning based on experience. Uncovering, not uncovered.
"Individuals and interactions over processes and tools"
Rituals, ceremonies, Sprints, SMs, POs, various meetings. NONE of that is useful. Dump it all. Talk to people. Get feedback. Pay attention.
"Working software"
Anything that's not directly putting working software into customer's hands is just waste. Stop it.
"Responding to change over following a plan"
We learn as we work, we adapt based on what we learn.
That's it. Anybody who says "Agile" is anything other than that is selling you snake oil. Any corporation that's calling anything other than the above "Agile" is either delusional or evil.
"'Build, so you can learn' vs 'learn, so you can build" nicely summarizes the two approaches to software development. I do the former exclusively. Up-front discovery is almost always a waste of time. The first time you release is the first time you really understand what works and what doesn't. In other words, learning comes from experimentation. Up-front guessing gives you a hypothesis, but the only way to verify the hypothesis is to run the experiment. Build to learn. Fight down that desire to "get it right the first time." IME, that's simply not possible.
In general, if some change/addition to the software doesn't have a visible impact on the users/customers' experience (directly or indirectly), it's probably not worth doing. Fix the database? Sure, if it improves the experience in some way (maybe by speeding things up somewhere), but for it's own sake? No.
In general, if some change/addition to the software doesn't have a visible impact on the users/customers' experience (directly or indirectly), it's probably not worth doing. Fix the database? Sure, if it improves the experience in some way (maybe by speeding things up somewhere), but for it's own sake? No.
Vi blir med bok! I april 2024 släpps Rysslands militära fuck-ups – ett vodkaosande epos om det kontinuerliga misslyckande som präglat den ryska krigsmakten från tsartiden fram tills idag. Signerad upplaga (fåtal kvar): https://t.co/QC7TUXjtPG #RysslandLOL
NEW §
When scaleups need to start on cost efficiency, we find they need to work on the immediate steps. Sofia Tania and Stefania Stefansdottir describe how to understand the primary cost drivers, together with the levers to get them under control.
https://t.co/8C9tD47i4r
This is a common myth. Most orgs that start with Scrum never evolve to anything better. IMO, start with a business problem, then solve that single problem in an Agile way. It is not your goal to "transform" or "become Agile" or to "do Scrum." Your goal is to solve problems. →
This is a common myth. Most orgs that start with Scrum never evolve to anything better. IMO, start with a business problem, then solve that single problem in an Agile way. It is not your goal to "transform" or "become Agile" or to "do Scrum." Your goal is to solve problems. →