I start with the end goal in mind:

Who is my audience?
What is my goal for communicating with this audience?

1/
Typically the answers to these questions identify gaps i need to fill - for me to achieve my actual goal, I need to provide foundational information first.

This is often a recursive process - the foundational topics also need context setting.

2/
This sometimes feels to me like functional decomposition.

Do they even teach functional decomposition to computer science students anymore? I learned this when I was learning COBOL.

Anyway...

https://en.wikipedia.org/wiki/Functional_decomposition#Software_architecture

3/
If you've ever seen me deliver a live interactive presentation you've probably noticed that I will often explicitly follow this pattern in the form of verbal tangents. When answering one question I might explore 3 or 4 tangents before winding them back in to the main thread.

4/
If you've read any of my writing, you may not have noticed that I follow the same patterns, because I usually ret-con them back into the main narrative. My excessive[1] use of footnotes is the real giveaway.

5/

[1] Yes, excessive. I know.
The main thing that I need to communicate is patterns for adoption.

But before I can do that I need to communicate patterns for usage.

And before I can do that i need to communicate information about features and capabilities and scope.

7/
But I also need to ensure that the emphasis remains on patterns, not features.

What a delightful balancing act.

8/
Anyway, I'm apparently still procrastinating. I should get back to that presentation...

9/9

True story: me closing this thread is also an internal voice screaming "No! No!!" in German.
You can follow @SQLAllFather.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: