Async Communication and Incremental Correctness

May 22, 2020 -
#tech #career

As I described in an earlier post, I didn’t feel comfortable at all when starting my second job. It has been six months since then (crazy six months for this planet, I know), I can’t say I’m back to my comfort zone now but there are definitely some takeaways that worth noting.

Async communication

Async communication will just get more and more important as more employers embrace remote work. But even without that, I find this format of communication helpful in general - it forces people to structuralize their thoughts, exactly the feature of writing. When I first started, I got super frustrated with the high communication cost when I got stuck at my daily work. Why can’t I just direct message someone like “Yo I don’t know how to do X, tell me plz”? Why do I have to “waste” my time drafting a post in a support group to get help? But as I get more comfortable doing this, it turns out to bring out some side effects that I didn’t expect before, in a good way.

I bet we all encounter some moments when people jump into your Slack channel for Q&A. An ideal scenario would be like this:

Alice: Yo I don’t know how to do X, please help.
Bob: First you need to do A, then B, and finally C. Done.
Alice: Thanks!
Bob: You’re welcome!

But more often things turn out like this:

Alice: Yo I don’t know how to do X, please help.
Bob: Did you do A by any chance?
Alice: Yep A works.
Bob: What’s the result of A?
Alice: Here it is.
Bob: This looks good. Did you do B then?
Alice: Nope.
Bob: Could you try that?
Alice: Sure give me a seconds… yeah B works too.
Bob: Weird. Could you remind me why you need X?
Alice: I was trying to do Y but got stuck getting X work.
Bob: I see. I don’t think X is the best way to achieve Y, you should do Z.

Alice is the one who needs help, but it takes a couple more prompts to collect information from her. I would be a bit frustrated if I was Bob. So how can Alice do better?

Alice: My goal is Y but I got stuck at X. I did A and here’s the results. Please advise the next step, thanks!
Bob: I don’t think X is the best way to achieve Y, you should do Z.

Or it could be:

Bob: Yeah X is the right way for Y. From your results of A, seems you’re missing B. Could you try B?

There are two perspectives why this helps. First, a question with context, goal and the path to get stuck simply help other people to help you. This pre-processing of information eliminates the overhead for others to go over the problem from scratch and more importantly avoid deriving solutions based on interpretations/assumptions instead of facts. Second, I find writing the thought process down helps me fill in the gaps of my mind flow when reasoning about a problem (remember those proofs in highschool maths? xD). A classic mutter could be like:

Ok my goal is Y and I got stuck at X. I’ve done A and B, and they work as expected. Hmm so why X doesn’t work? But wait…B isn’t necessarily related to X right? There’re some pieces missing here…Holy f, C actually connects B and X but I didn’t consider it at all!

Yeah we think we really understand the problem until we write it down. To others who help us by consuming our information, it’s a pre-processing; To ourselves, it’s more like a post-processing that enhances the outputs.

Incremental correctness

Perfectionism is often an excuse for procrastination.

True. I’ve always been struggled with the frustration of not being 100% correct when learning something new. Get overwhelmed → get stuck → lose momentum completely is a classic script to achieve “From Beginning to Nothing”. Later, I figure out a more sustainable process for me is just being OK with not getting stuff completely correct at the very beginning. As we continue with the process of learning by doing, in a large chance the problem that bothers us will surface again - and by which time we usually either curate a global view and a deeper understanding of the whole problem space, which helps solve that particular problem; Or we simply find that particular problem just makes more sense in a concrete context. Then it’s the perfect time for a deep dive and correction. Keep the momentum and iteration.