Diagram Induced Refactoring

An unattractively complex diagram led me to refactor a page central to Thompson's writing. I hope by recounting the episode I might encourage the development of this workflow.

Browsing his recent changes I encountered a page and diagram that cited Agile and that this alone made for a lopsided preview-next diagram. At Agile this dynamic diagram had become a bowl of spaghetti.

> Thompson — I wonder if you could write a new Agile page in four paragraphs each with its own link to 1/4 of these nodes? I’ll help if you like.

I studied how the Agile pages had grown to be at least four ideas under one name. Thompson had identified these with subheadings. The refactoring should be easy.

> Ok, I refactored the page for you. > I did this by naming the four links, two of which already existed. Then dragging paragraphs from the one page to the others where they seemed to fit in. Then I deleted the original Agile page and started over with four paragraphs each in the same form with the four links in the same sentence structure so it was clear that I was offering alternative paths.

> This has flattened out the associated graph which is now readable within the confines of the wiki page. Agile Experience might be asking for the same treatment now.

I returned to the page that started this adventure and was pleased to see not only had if found some balance, but it was showing that the mention of Agile was most relevant to just one part of its prior self.

> You can see from this page, the page which first attracted my attention and got me started on this refactoring, that its diagram has improved. Notice how the four paragraphs of Agile show but it is clear that Claim the Joy is more interested in the one paragraph that it cites directly, Agile Mindset.

A note of caution: Diagrams don’t yet gracefully follow links from site to site. This means my refactored work has diagrams made simpler than Thompson's just because I didn’t fork over all the pages. I’ll be improving this aspects of dynamic diagrams soon.

# Steps

I glossed over the actual refactoring steps when I summarized what I had done for Thompson. Here from memory is exactly what I did.

Fork Agile into my site.

Add new page links under each of his subheadings.

Created new or opened existing pages.

Moved paragraphs to new place.

Lightly edited for flow if appropriate.

Created a page to temporarily hold odds and ends.

Deleted the original Agile page.

Created a new Agile page with no history.

Wrote a synopsis explaining the parts.

Wrote a paragraph for each part around the new link.

Moved the odds and ends into the new page.

Deleted the temporary page.

Thompson can fork my new Agile page over his existing copy. He should then visit each link, review my light editing, and then flork those into his site also. He can preview this work by examining my recent changes with his work in the neighborhood.

I wrote Thompson a series of emails which I have excerpted here. I was pleased to discover I could drag screenshot images from my saved email to an Assets folder and then use html and markdown to reconstruct this portion of the correspondence.