I'm a big fan of writing down what I plan to do, and how I plan to do it (in detail) before I get going.
Why?
Because sometimes I realize as I am halfway through writing things out that there is a fundamentally better approach
then I can skip a ton of needless work!
Folks have asked for more videos of how I use Roam - here is a VERY concrete example - you can ignore the technical details of the problem I'm working on and might still find helpful.
Uses #.Falsified tag + one line of roam/css to crossout work I avoided
Ok, so... turns out one of my main reasons for writing things down is because I want to find out if there is work I can safely avoid.
Laziness is a virtue!!!
Another example: in a big project with a lot of moving pieces - always looking for smaller chunks that can stand alone
Here is a longer video (16 minutes) on the same project
Context:
I want to write code that will help someone in the community with a #roamjs extension - but I want to test whether my solution works WITHOUT waiting for them to rewrite their ๐งฉ
Another obvious advantage of breaking down the steps into detailed and discreet chunks of work -- you don't have to do everything yourself.
I don't usually ask #roamjs hackers for specific things (this might be the first time) - but when I do - I'm probably asking them to break a useful part of their code off so I can use it for something else.
This is actually something I'd LOVE to see more from the hackers in #roamcult - thinking about simplicity - releasing functions and libraries that others can build on - not just full extensions.
It's a place where @richhickey has been a huge inspiration
The focus on simplicity is something I really only got when I encountered the #clojure community - and it totally changed how I thought about building things
This talk changed my definition of Design.
Breaking things apart, so they can be put together
Returning to workflow video
Often - when I am writing out the building blocks of a project - I see other things that could be built with it - that may or not be in scope for me right now
I use #MVP#V1 and #V2 tag specify what is NOW, and what is not
[[Tangent]] is also extremely useful - in video above I show how I use global filters - so I can put tangents down in place - and then not have them visually cluttering my thinking space when I shift my focus back
The other day @patel0phone and @tferriss wanted to know why I'm so aggressive with the timestamps
For one thing - the amount of time I spend writing things out is pretty substantial - in this case was 53 minutes
The other reason I timestamp so regularly - and have since long before roam:
when i get in the zone, it's really really easy for me to get sucked into a wormhole - timestamping each time I finish a unit of work is a nice way to step back and consider whether it's worth going on.
Ridiculous example
I just spent 53 minutes doing that shaping work
Then 1 hour and 46 minutes telling you all about.
Hopefully it helps at least one of you save an hour someday and we can break even!!
This is absolutely another benefit of this - it is PROCRASTINATION SLAYER
Even now Iโm constantly avoiding big tasks
Good news is every task has a first task of trying to break it down into smaller tasks
My guess is there is a way we could have a public intro db that published via a roam-inter channel - and what it published fed a choose your own adventure tutorial
@cortexfutura's tutorial is great - but it's not like we want to start the user's off with a JSON export -- would be way easier to start them with a single block that "channelled" into a help graph
(we could also always iframe + have easy copy action)
Other thing I was imaginging when I heard the idea of @cortexfutura's submission but hadn't seen it yet -- if the smart blocks listened to their sibling blocks and needed you to complete some action before they could be activated.
What shocked me here were two things - even though I hinted this was a likely winner, only two (+ me) put forward anything that I could see as "riffing" on the idea, or nudging it forward at all.
Rather that worrying about how to break into โthe networkโ, flip the problem, and be the person who connects people. Be the network, doesnโt matter what stage youโre at.
One of most important books in my career.
Example - when I wanted to learn #Clojure, I went to a conference, and asked the speakers whose talks or prior work I really respected to join a โremote research clubโ
An email list with one rule
you had to tell the group about an open question you had every week.
I was super new to Clojure, but that didnโt matter, because this weird norm got some really smart folks sharing really interesting problems with each other.
I had no business being at that table, except that I was the one who set the table.