As we speed-run the history of software engineering via trying to make AI coding reliable, repeatable, robust, and resilient...

We sometimes (re)discover something useful for software engineering in general. Checking architectural decision documents, requirements, constraints, and other artefacts in with the code ensures we have the reason for every fence close at hand when we consider removing it, and we have the history of those reasons alongside the code we wrote according to that history.

When I was with GitHub, I championed a product idea nobody wanted: Make GitHub's web editor and support for markup languages so good that we'd have a lightweight but useful alternative to GDocs, PowerPoint, &c.

Then there would be a path for storing docs in the same repo as the code *and* to diff those docs so we could match updates to the docs wth updates to the code.

That's why I put my heart and soul into shipping Rich Prose Diffs: https://github.blog/news-insights/the-library/rendered-prose-diffs/

I had dreams. Or perhaps, madness.

Rendered Prose Diffs

Today we are making it easier to review and collaborate on prose documents. Commits and pull requests including prose files now feature source and rendered views. Click the “rendered” button…

The GitHub Blog
And if you buy into that madness for the nonce, it also explains why task lists should also be diffed, and especially why reordering those lists should be a visible diff: https://github.blog/news-insights/the-library/collaborating-with-lists/
Collaborating with Lists

At GitHub, we use lists for collaborating on software development, because lists are a simple and powerful tool for collaborating on anything. That’s why we’re introducing better visualization of list…

The GitHub Blog

(spittle flecks Raganwald's lips)

Imagine a world where a PR doesn't need to list the issues closed by the PR... Because they are checked off the list in the branch and right there in the change list, and—

Oh, sorry, time for my meds?

@raganwald I'm sorry for the what..?
@raganwald that reminds me of working on showing text moves in the media wiki diff. It made me aware how much diffs depend on how code is typically written.

@raganwald Literate programming and keeping docs in sync with code are consummations devoutly to be wished.

Rich Prose Diffs sound somewhere in line with structural diffs of code - preserving things other than the character sequence. (character sequence vs. octet sequence being its own thing)

Devoutly to be wished by me, anyway, I guess the focus groups or business planners didn't care for it?

@jmeowmeow Product choices are always way more complicated than a simple "The idiots refused to listen to meeeeeee..."

I can't repeat internal discussions, but I'll wave gently in the direction of "sometimes you have to put more wood behind fewer arrows."

@raganwald (nodding) "waves gently in the direction of my last Google all hands"

It sometimes feels like it's that we have no idea how to run innovative riffs in ways that let them grow and evolve, they have to be Web Scale out of the gate.

@raganwald I actually had this discussion with a Microsoft interviewer in 1997. "Why do I want to work here? Because MS is in a position to observe broadly and discover winning technologies throughout the field and implement them well."

No hire, I was too slow at Eight Queens on the whiteboard, I didn't have the goal directed retry algorithm to mind in the moment. Which maybe I should have, since I had learned Icon in my MS programme.

@jmeowmeow I wrote a whole blog post about eight queens but I'm pretty sure I would fail that problem if it was given to me *before* I wrote the post.

https://raganwald.com/2018/08/03/eight-queens.html

The Eight Queens Problem... and Raganwald's Unexpected Nostalgia

@raganwald We had an informal programming study group at Walt Disney's Seattle office where N-Queens came up. I see it's been a few years since.

https://github.com/jmeowmeow/N-Queens

GitHub - jmeowmeow/N-Queens: Solutions to placing N Queens on an NxN chessboard with no mutual attacks.

Solutions to placing N Queens on an NxN chessboard with no mutual attacks. - jmeowmeow/N-Queens

GitHub
@raganwald there’s something to be said about our psychology here…