Minimizing specialization on modern teams.
Last week I gave a talk with Anthropic on How to Roadmap with Decisions Rather Than Dates (which you can watch if you register), which is a much clearer version of this blog post I wrote earlier in the year. As I iterated on the talk, one interesting idea that the blog post didn’t really develop became clearer: I believe effective AI adoption helps generalize judgment, which reduces cross-team dependencies required by specialized work.
Returning to iOS
…
Did the iOS team love this?
It turns out, no, I don’t think they loved it. Rather, I think it was a somewhat harrowing experience for them. This was true for a few reasons.
First, as a small team, they’d largely aligned on coding standards through informal means. This meant they had a similar experience to a rapidly growing open-source project which has to move from manually enforcing coding norms to doing so automatically via extensive linting, typing, and other technical constraints. Solving this requires the shift from “working on software” to “working on software development”, and having to switch altitudes between those perspectives can feel quite distracting. Further, this sort of work is isolated to developer experience teams in many companies, so it’s less familiar to many engineers, even experienced ones
Second,