It's amazing how much a technique like rubber ducking[1] helps to work through issues. The number of times I've felt like I have no idea how to solve a problem until the moment after I ask someone else is incredible. I think the act of thinking how to explain the problem to someone else really helps trigger the problem solving side of the brain. That and the number of times taking a 10 minute walk has been more productive than hours of debugging time is frankly mind boggling.
I was stuck debugging a chip for a day until I finally decided to write to the FAE. I sit down, write my problem in the simplest possible language, list all the tricks I tried and asked for a solution. Then I'm reading my email to make sure everything is in order and voila - one last thing to try. and that step worked.
They call it the Einstellung effect[1]. It's a recommended strategy to take time away from the problem to let your brain subconsciously work on the problem.
The hours of debugging were still a critical part of the process. It “loosened the jar lid” so to speak. (It’s not like long-distance walkers are some of the best debuggers.)
But once you’ve put in some substantial effort, taking a break and a walk (or a sleep) is often the critical last step.
I've heard this concept called the cardboard colleague - you explain the problem to a cardboard cutout representing a colleague instead of an actual person.
Of course it remains a concept, I don't think anyone would go so far as make one :-)
Many years ago when I was designing and programming embedded controllers (early '80s) I worked alongside, but not with, another engineer who was building devices using the same fundamental components (6520, PIA, etc.) In our tea breaks we would explain our problems to each other. Neither of us suggested any solutions to the other or responded with anything other than simple platitudes and sympathy for each other's troubles. It was remarkable how many problems had simply vanished by the end of the tea break.
Rubber duck debugging is extremely useful to unblock. I very rarely use an inanimate object, though — for me, the real help is the first or second (apparently very basic) question that the other person poses to me. That key question usually comes at what would seem the beginning of my explanation, but there lies the magic.
When asking for help solving a problem, I start writing a question to ask someone, and then as I start explaining what I've tried (to try to be respectful of their time and them not have to repeat anything I've done) more and more things to try occur to me. By the time I've tried all the things that occur to me while describing the problem, I've solved the problem. That's the way it works out more often than not.
Exactly this. What is really weird, though, is that I have occasionally tried to promote this approach to people that ask my help, simply by asking them to write the request to me instead of calling. Also, getting the help request in written helps me to think the case and open issues in my own pace uninterrupted by discussion.
The weird part? I have a strong feeling that more and more often (luckily not too often yet) my request seems to be considered outright hostile and it causes significant irritation. I wonder if anyone else has noted the same or am I just getting old and grumpy...
1. It could easily come across as "my time is more important than yours".
2. Depending on what they are asking for and how urgently they are treating it, they might not want a lesson in solving their own problems. They just want help fixing the problem.
3. A lot of people are self-centred. Of course their problem should be your top priority and you should drop what you're doing! /s
...So yeah, I'd be surprised if it didn't get a bad reaction sometimes. Perhaps seek to promote this approach when their problem is resolved. I would imagine they would be more receptive then.
> 1. It could easily come across as "my time is more important than yours".
Well yes, if someone comes to me to ask for help, that means they weren't able to solve it by themselves, but expect me to have the skills, knowledge or experience to help them solve it.
So my time working on this problem is obviously more valuable than theirs, because I'm expected to fix something they weren't able to.
So I think it's fair to ask them invest the time to provide a proper description of the problem, before I invest time to help them.
This happens all the time. This might sound cynical but it's impossible to change the attitude of some people. Any tips to avoid them without being quoted as "not a team player".
I’ve asked people to not give me dimensions for a work request over the phone because it leads to potential for transcription errors and mis-hearing...
If you type it out and send it to me, or write it down and send a photo / scan, and it’s wrong... that’s your fault.
And they seem genuinely put out by me not wanting to be responsible for a mistake.
One thing I've learned is that many coworkers really struggle with writing. They are amazing talkers - they work in sales most of the time. But they rarely write anything more than bullet points in a powerpoint deck.
It's a bit sad, but understand that people have different backgrounds and education. Perhaps their schooling, back in the 1960's / 70's, did not prioritize writing skills? It's just really odd to me because every single job I've ever applied for always said "must be able to excel in written communication", so why should the standard for my colleagues be different?
I've written a bullet point message to a client once. He was pieved because it sounded like I was enumerating his failures instead of genuinely asking questions. I find that bullet points are only good if you enumerate what you've done, or something neutral. But nothing in regards to what somebody else needs. It's really aggressive.
I've found that bullet points come off as really aggressive in communication.
Maybe in some cases it is helpful (for both parties) if it is written down. However, in my experience, a conversation can often be very helpful as well - you can ask clarifying questions etc. It becomes more of a brainstorming together. Has helped me many times (on both sides of the conversation).
I find the instant messaging is even better(for informational conversations).
It gives you time to think, can decrease miscommunication and the psychological element of conversation(giving more clean space for the informational element) and increase the depth and details of a conversation.
Completely the opposite for me. What would be a couple of minutes of conversation is stretched out to an hour or more. And no point starting something different while waiting for the next message.
What I do then is record that in my journal. Usually I never look at it again. But sometimes it's incredibly useful to be able to go back and revisit my thought process, especially in the face of a bug.
On more than one occasion I've started typing my question on stack overflow. I try to do my due diligence so I don't look like an idiot on the internet, and usually as I am anticipating responses I end up trying something that solves my problem.
Stackoverflow is the best rubber duck because the anticipation of that fear is quite real. And I know that on many occasions I will end up submitting that question
This. I've gotten a new appreciation for Stackoverflow in the past year or so.
Half of the drafts I write do not end up as published questions, just because the writing process itself is often helpful in figuring out what ever problem I have with my code.
Sometimes I wonder how big a tragedy it is that many well-written questions are simply dismissed because the author found his solution in the process. I'm sure many of those questions are high quality and would get edits, upvotes and answers had the author just pressed the submit button.
Actually it's acceptable to answer your own question, as long as it's a useful contribution, so it might be worth it to just post the question after all.
I have this experience. If I am struggling with something and can’t find an answer on the web I will write down a stack overflow/cross validated/math question. More often than not simply formulating the question well will help resolve the problem. If I still can’t figure it out I post and come back in an hour. Again, even if no one answered rereading the question after making some space often helps answer the question to myself.
Yes! I've lost count of the number of times I've started a ticket on GitHub and through the process of typing it all out solved my own problem without ever submitting the ticket.
This is a really nice presentation of these ideas.
However, I think that the Decision Matrix idea is too complicated: specifically the part where he advocates adding a weighting to each factor being considered to arrive at a numerical score.
At Microsoft, some of us use a system that I like to call the "Abolade decision making framework." It's the same idea, but instead of assigning weights to factors, we simply rank them. Additionally, the factors are expressed as positive attributes and an option either has that factor or it doesn't. A factor could be "Has vibrant colors" or it could be "Less than $10" for example. The type of a factor is Boolean :)
The goal is to generate a table with the options presented as columns and the factors presented as rows. You spend a lot of time as a group figuring out what the factors are, and then you spend a lot of time ranking them. Once you have agreement, you start working on the options. The winning option is one where you have the longest continuous line of check marks for each factor starting from the top.
Smart people, of course will try to game this system to choose their preferred outcome ... you need to be vigilant about this :)
I don’t think there’s anything public about this. Not that there is anything particularly secret about this at all. It’s very straightforward and I’ve described its salient points above.
+1, I would love to read more about this, particularly around how it scales to multiple (possibly overlapping) options.
> Additionally, the factors are expressed as positive attributes and an option either has that factor or it doesn't.
This is very intuitive for binary decisions, where the "pros" of one option are the "cons" of the other. How do you scale it to multiple options though? (e.g. if I am deciding between internet providers, speed is clearly an important factor, but I may have 3 options with low/medium/high speed respectively)
There is a book titled "Thinkertoys: A Handbook of Creative-Thinking Techniques". The last edition was published in 2006, so it's fairly dated by now. I found it very interesting back then, but it wouldn't have much about more recent tools or ideas.
This is a good one to -
"The Thinker's Toolkit: 14 Powerful Techniques for Problem Solving" by Morgan D. Jones, ( techniques as used by the CIA no less! :-) ).
TRIZ (https://en.m.wikipedia.org/wiki/TRIZ) “theory of the resolution of invention-related tasks”. It was invented in Soviet Union. TRIZ is basically a toolset to analyse and solve engineering problems; it can help with “inventing“ tasks.
Lovely idea and presentation! Will come very handy at times.
Something I feel like is missing: Statecharts. Very powerful to be able to reason about state changes without having to deal with the explosion of states that state machines often ends up with. Sometimes also called hierarchical state machines.
I made another comment about statecharts a while ago, listing some more resources and other comment threads on HN containing bunch of useful experience, resources and general information, starts here: https://news.ycombinator.com/item?id=22747409
Carl Gustav Jacob Jacobi was a German mathematician famous for his maxim
"Invert, always invert". He believed that the solution of many hard problems can
be clarified by re-expressing them in inverse form. Inversion forces new ways of
thinking and helps uncover hidden solutions.
The tools on the linked website are very basic which are used on a daily basis:
"Issue trees": Write your problem down
"First principles": 5-whys, which you do e.g. in a post mortem
"Second-order thinking": think of mid- and long-term consequences
"Connection circles": side-effects
You maybe think about mental models of which there are a lot (https://fs.blog/mental-models/) and there are some cargo cults and fancy words around them.
They have their right to exist though, e.g. I really like to end a meeting early because of the law of diminishing returns. :)
Outliners are definitely missing, such as https://github.com/rochus-keller/crossline/. You can structure your thoughts while you type, even while you're talking to other people. And you can make cross-references and make appear thoughts (or action items and such) in other places using translucent active links. Or copy/paste structured text from the web or aggregate links with notes, etc.
"An important aspect of learning about strategies is the conditional knowledge of when and why to use them appropriately" (Krathwohl et al.)
I wanted to compile a similar list of strategies myself, however I couldn't quite understand when to apply them. After some research, my view is that to understand when to apply these general thinking/problem-solving strategies, one needs to know the goal of the task and the cognitive processes involved i.e. it requires conditional knowledge which is part of metacognition.
To be fair, a notebook and a pen are fantastic thinking tools. You maybe could argue that the tools provided here are not that useful but thinking tools in general are a necessity, Daniel Dennet makes some compeling arguments for this.
"You can't do much carpentry with your bare hands, and you can't do much thinking with your bare brain". — Bo Dahlbom
Ohh...I love this. I have a handful of these internal tools that I picked up over these years, but I never knew where to find more (or really, consciously thought to look for more). Now I have a bit of a roadmap.
The ones I do have are so valuable that even if I get one more effective one off this list, it will be one of the best things I do this year.
One important aspect of human thinking is the need to form narratives to make sense of the world.
We don't live or think in abstract algebra or abstract heuristics. We live and think in a world-view in which problems arise and for each problem, we have a set of potential solutions, often unconscious.
This website has good information - it just doesn't do a good job of organizing them into a coherent narrative.
It's not enough to know what probability is, if you never think to use it to ask the question what are the chances one religion out of thousands that all claim they are the only true religion, is actually the true religion?
One of the big issues of modern society is people being taught/given disconnected bits of information, without a guide on how to fit them into a coherent narrative. This isn't done by accident and a lot of people have given it a great deal of thought - some call it post-modernism.
I like the concept, I see many sites like these. However, who actually uses these in a day to day situation? It feels like these thinking models need to be internalized in more than just a superficial way to get any real use out of them, and I wonder if a book or course wouldn't integrate better with one's mind.
You should get into the habit of actually checking the network requests. The site looks minimal but it's 1.1MB w/o Google analytics. It's what Maciej Cegłowski(https://idlewords.com/talks/website_obesity.htm) would call Chickenshit Minimalism.
I'm just happy that the homepage mostly zooms the way it should.
Nothing in the modern web pisses me off more than a developer trying to decide how my zoom behavior should work for me. Zoom is a very basic concept, I want to make the whole page larger or smaller. For some reason people insist on messing with that to make some menu, banner, or image popup appear the way they think I (or they) want it to when I try and zoom in or out, rather than just let me zoom as I please.
This site still manages to fuck it up when I click on one of the images though.
does anyone know a simple app that allows hyperlinking within notes? I want to create a roam-style knowledge base, but most tools are too heavy for my purposes. I prefer to keep things cross-compatible and future proof with .txt or .rtf, but to my knowledge, neither allow hyperlinking to documents
Fair bit of warning: TiddlyWiki is the opposite of heavy, which means it's a bit shallow on the surface by allow custom data types/pages. I love this, makes you basically be able to build your own content systems on top of TiddlyWiki, but people expecting it's just "notes you can link together" might have to readjust their expectations.
Another great thing about TiddlyWiki is that the content can be stored in barebones files that you can read/parse outside of TiddlyWiki, and you can also run the frontend client offline with just a single index.html, if you want to. So fits what M5x7wI3CmbEem10 pretty nicely.
So thumbs up for TiddlyWiki but it can be a bit... Tiddly to fickle with sometimes.
you need an account for it though, right? meaning they have access to your stuff. and because they use unique formatting such as `![[filename]]`, it may not be easily cross-compatible
No account needed. They don't have access to your stuff—it works on local files—but appear to be working on a cloud option. They claim to support Commonmark and Github Flavored Markdown. [[filename]] is just a shortcut for [filename](filename), but in any case "Export to standard Markdown links" is on their short-term roadmap.
I tried vim-org previously (I’m a Vim user at heart) and didn’t have any success, but I hadn’t grokked org-mode at that point anyway. So definitely worth trying it out.
If you do not mind a bit of setup, I have found Vim in combination with VimWiki (https://github.com/vimwiki/vimwiki) a very good fit for this scenario.
It supports markdown formatting, does hyperlinks pretty well (even jumping back and forth is quite nice), is as cross-compatible as Vim and stores the notes in future-proof .md files.
Hm that's hard to accomplish with simple text files. You can checkout Emvi [1]. That's not exactly what you're looking for but you can link everything using the @ key and export to HTML and markdown.
still a bit too heavy for my purposes, but it looks like it may be the only option. I was trying not to resort to `.md` files, but that may be a more future-roof option to be honest.
I get that. But I'm also skeptical of any product / service which attempts to bolt on Roam-like features.
Note taking apps have been around for a long time, and now all of a sudden it's a hot new thing to add bio-directional links?
The developers talked about starting out not knowing what they would end up with but that they would know when they saw it. That process took them two years (?) of exploration and development to get to what they have now. That's worth tipping them at least a few months subscription for anyone looking for a note taking app with Roam features. Throw these guys a bone for getting us past the stagnation.
Also, anything Roam-like is still going to be half-assed. If they aren't furthering the thread, then they're just copying. If they're just copying, then they don't have the understanding of the problem that the Roam developers have. If I feel Roam brought value to the world, then I should follow those developers who delivered rather than the copy cats.
Granted, Roam didn't create the idea of of linking notes. They didn't create the idea of the bullet blocks. They did create the interface which made it all work on a screen though.
Hell, even if they had straight up invented backlinks I wouldn't be willing to deal with an application that costs $15 per month and gives me absolutely no control over my data. The possibility that an outage could cause me to lose work alone prevents me from ever giving it a shot.
And the idea that even though the copycats deliver to me the superior product, I should still give what amounts to charity to Roam because they designed a nice interface just strikes me as absurd. I don't see the point in being overly concerned about supporting new research since we already have a mechanism for that: patents. If Roam truly believes their work is revolutionary, they should have just applied for a patent.
> The possibility that an outage could cause me to lose work alone prevents me from ever giving it a shot.
They have an excellent data download option in the app. You can download in Markdown or JSON and then restore. The JSON format restores everything. The Markdown format restores syntax. I download both with every session.
> And the idea that even though the copycats deliver to me the superior product, I should still give what amounts to charity to Roam because they designed a nice interface just strikes me as absurd.
Where in my comment did I mention Roam being inferior? Right now it's the opposite. Copycats are offering bolt-on roam-like features which don't work the same. The developers don't have the same understanding of the problem that the Roam developers have.
Why is Roam blowing up right now when it's just another note taking app? People are seeing something in it that they haven't seen in other apps. Bolting on copy-cat features isn't going to capture whatever magic Roam is doing. People are doing themselves a disservice by looking for a Roam alternative. If you tried Roam and believe it sucks, then you aren't looking for an alternative, you're just looking for something with links (Roam does way more than that though.)
I have no personal stake in the app. I'm just amazed at the reviews that Roam has got. I have seen loads of people say that Roam has changed the way they take notes. Some even say it has been life changing. The service has been blowing up.
There is an export to markdown, and the developer has specifically said he is going to continue to allow that. There is a converter for tag/highlight/todo from Obsidian.md
FreeMind is FOSS and cross platform (Java) although I haven't used it in years and it doesn't appear to have had a new release in quite some time. (Wikipedia says the fork Freeplane is active?)
Sometimes it's been useful for me to use the tool used to state the problem as a guidance framework during the thought process.
So you could try to state the problem in a very structured way (say, a spreadsheet) and at the same time in a visual way (say, a presentation slide deck). Of course some people are better using one type than the other but that's where the trick relies: forcing yourself to think in a way that is not your "natural" way of thinking.
If this sort of thing appeals to you, you might enjoy Poor Charlie's Almanack, which can be found on archive.org right now for the low, low price of free:
So an "iceberg model" is about trends and patterns over time? That's adding a dimension to the iceberg's ocean and I think the analogy breaks. Usually icebergs are to describe partial occlusion.
Also alarming is that in the example for that model QA is something that happens post-release. If so, I expect quality to be a looming iceberg.
Just meditate, please do not load more pain to head. The article shares some good techniques, use the same techniques using pen and paper and it is healthier.
P.S. Its a personal preference, I'm not trying to put down the tool, its great and can be used as a training material for better thinking.
This is great. I find I often do these things at work (such as second order thinking) but have never attempted to encapsulate it or differentiate from other ways of looking at things. Thank you for sharing.
Whenever I see something like this or other "mental model" tools, I just think: soon this will be obsolete, as the human who used to make decisions in a given job is replaced by AI.
I used to be the type who asked a lot of questions until I realized that formulating the question was often more important than getting the answer.