Our team ran an experiment. Every task that could plausibly involve a language model had to involve one for a month. Here's the honest report.
What worked: code review assistance. The model caught three subtle bugs our juniors introduced. It also caught one bug a senior introduced, the kind you only see at the eleventh hour.
What worked with caveats: summarization. Meeting notes, long documents, research digests. The model does a genuinely good first pass. You still need a human to read the result, because the model will confidently invent details that sound plausible but were never in the source.
What didn't work: debugging from error messages alone. Half the time the model proposed a fix that looked right but didn't address the actual cause. You still need to understand the stack.
The pattern that emerged: use the model for breadth, not depth. It's excellent at generating five candidate approaches. It's terrible at knowing which one fits your codebase. That part stays human.