Creative vs Assertive

This is not really a hot take, but I was just thinking about how in The Before Times we already had different developer setups when we did work. I’m pretty basic and just raw dog VS Code without any meaningful extensions. Plenty of coworkers have used JetBrains flavors, Vim, EMacs, some even use Sublime Text because they like the simplicity.

The human aspect of the code creation was also very different person to person. Each team member had their own affinity for certain design patterns, and as long as it was understandable to the others pretty much anything goes. Names of Things are also relatively arbitrary, so variance there was to be expected as well.

However, on any given project we would usually commit to one linter tool (or at least ruleset) so all the code would stay consistent and we didn’t have to Nit syntax at review time. We needed to use one testing framework, CI runner, and code doc format. So already we have this split between the Creative bucket where variance is acceptable (and maybe even beneficial a-la “diversity is our strength”), and the Assertive bucket where rules are required because the system will not work without it.

But we were still largely un-opinionated in how the code was created, just that it produced the correct result (accuracy) and the shape of it was consistent with the rest of the code and the team’s expectations (precision).

“I don’t really care how you create the code, just that the code is Good.”

Agents as an Extension of You

It seems to me that Agentic tooling for the purpose of code generation probably staddles both Creative and Assertive buckets, although certainly less assertive than one might think.

If you use a local indexer to chunk and vectorize your code, or if you use an LSP to traverse your code with graphs, or if you are just a token burning grep-aholic, its not really anyone elses concern how you and your Agents work your way around the repo. You can likely plan the way you want to (as long as you use the required ticket fields/tags), you can steer the model to generate code the way you prefer, and you can build your own review skills and tooling however it is that suits you.

Now some teams may focus more on persisting the knowledge and guidance and workflows into the common repo instead of the personal harness. This is probably better for anything that the team can agree upon. If one team mate discovers some external context in the course of doing work, its certainly better for everyone else to have their context updated so they don’t have to rediscover it on their own. I think this is especially true as a way to improve the onboarding experience. You could say then the Agent should also be an extension of Your Team.

You could probably extend that out even further to Your Company. Personally, I think the value in using Model based workflows is that they allow for interfacing using Associative Processes that don’t need to match each other exactly.

So if we treat PRs like an API, where the provider doesn’t care what you do with the data, as long as you pull and push according to the schema, we really aren’t in that much of a different place than we used to be. The primary difference is that a larger proportion of the teams automative capacity is the sum of the individual team members’ capacity.