A long time ago, I used to say that there were two missing roles on any software project: the Software Archaeologist and the Project Witness.
The Archaeologist would be able to read commit logs, meeting notes, story cards, or any other form of written context to try and piece together what had happened and why. It’d be possible to do this at any stage of a project, even long after it had finished.
The Witness, however, would be the holder of all the oral history of a project, the teller of tales, and the person who could describe how decisions were made, and why they were made that way.
After all, the written documents don’t explain that Alice had worked on a similar project, so discounted Technology A out of hand, or that Bob really didn’t get along with someone in management, so access to some vital resource was curtailed, or that Frank was one of those rare people who teams gelled around, and who had penetrating insights into the problem domain, so everything seemed a little smoother.
The two, together, would be complementary, being able to give the full colour and texture of a project, not just the snapshot we see frozen in aspic at the current HEAD of main.
We’ve never hired for these roles, so they often end up being done in an ad hoc and sloppy way.
Interestingly, in today’s world, the Archaeologist role can be amply filled by an AI. Those things live to trawl through reams of text from disparate sources, and they do it extremely well. The Witness, however, is slowly vanishing; teams are atomising as work devolves to single developers with agents so context that used to be debated and shared now exists only in one person’s mind. In theory, with pervasive and personalised agents acting as narrators, we could also preserve the role of the Witness, but that would be a huge invasion of privacy. In the long run, I don’t think that will be good for us or, by extension, our industry.
My thanks to Paul Hammant for early feedback on this post.