Reflecting on wasted effort
| kaizen
One way to look for ways to improve is to think about where the waste might be. I wanted to reflect on how I'm currently doing things and where I might be wasting effort.
- Not noticing an opportunity: There's not noticing that there's an opportunity to improve or not seeing that something that I can do that takes advantages of something I'm already doing.
- Working on the wrong thing: If I pick something less effective to work on, I waste a little opportunity. Something might be a bad fit if it bumps into my weaknesses or doesn't take advantage of my strengths. Maybe I'm picking the wrong problem to work on, or I'm taking the wrong approach, or I haven't prepared, or I'm working on something that may be high effort and low reward. It's usually not a big deal, but it helps to think a little bit about which tasks can lead to compounding benefits and which are one-offs that don't help as much.
- Working at the wrong time: I feel a little slower working on something when I'm not in the right mindset or I'm not as interested in it as in other things I could be doing. It's also tough when I don't have enough energy to work on things. It's important to notice when I'm getting into the negative productivity zone, especially when coding. If I pick the wrong time to work on something, I might have to deal with lots of interruptions or distractions.
- Context-switching: Context-switching is a particularly big challenge for me because I'm basically working with one to two hour chunks possibly separated by days or months. For example, if I start something on Tuesday and then I pick it up again on Friday, I need to do a fair bit of rethinking and remembering. Switching from one thing to another is hard. I'm always looking up how to do something in the specific language that I need to work with. It's related to the problem of…
- Duplicate research: Sometimes I have to reread the resources that would help me prepare for that task.
- Tunnel vision: On the flip side, focusing too much on one project means not thinking about other things. Everything else tends to be in the back burner because of context switching costs, and that sometimes leads to…
- Letting an opportunity lapse: Sometimes it's too late to get the most out of something because a person who wanted it has moved on (including me) or because I'd completely forgotten the context of my notes. This also applies to real life, too. A- is not going to want to hang out with me forever, so I should make the most of it. =)
- Forgetting the context: Quick notes are sometimes too quick.
- Fragmented time: Since I need to work in short bursts, I have to get to a good stopping point. That can be tough.
- Frittering away time on distractions: It can also be tough working on something that doesn't fit into five minutes here, five minutes there. There's a big temptation to fritter time away on distractions like scrolling through Reddit, or just working on small, easy stuff instead of thinking about the harder problems.
- Repetitive steps that could be automated: Waste could also be working on things that the computer could be working on instead.
- Not making the most of it: If I'm not paying attention, I might not get as much out of an experience or task as I could have.
- Not harvesting notes/code: It's very tempting sometimes to try to work quickly and just solve the problem for today. But if I take a little bit of extra time to harvest my notes from it, then I might be able to solve that problem when I run into the same problem, six months later or something like that.
- Doing more than needed: The principle of You Ain't Gonna Need It often comes into play here, especially if I need to squeeze things down to fit into the chunks of time I have.
- Missing pieces, incomplete notes: If I write something incomplete, I might have to redo more of it when I want to reuse it or build on it.
- Forgetting where to find something: If I can't even remember the keywords needed to find something, that's even more of a waste of good notes.
- Mistakes: Mistakes happen, and that's another source of wasted effort. If I'm in a rush or if I'm being impatient, I am not very good at paying attention to details. Then, when I need to go back and fix things, I have to deal with the context-switching all over again.
- Doing things that might be a better fit for other people: So if there's something that can be done by somebody who's more detail-oriented or who has more time to look at all the small things or who has those particular skills or interests, it's better for them to do it. Then I can focus on the stuff that fits me.
- Limits of tools: If I'm coding, doing it on my laptop with maybe two side-by-side windows is not quite as effective as plugging into the external monitor and getting all the things set up so I can see things instead of switching between overlapping things.
- Having things in a form that's hard to search or skim: Videos and sketches can be hard to search or skim, so sometimes it makes sense to go back and actually write the text for it.
- Negative feelings: For example, if the kiddo really wants my attention and I'm trying to complete a thought, it's tough not to get frustrated by the interruptions. It helps to be able to pull myself back and actually focus on her because there's no getting around that anyway, and then to do my thing later. It's also good to not let that frustration linger, because then that gets in the way of both enjoying her company and being able to focus on my own thing afterwards.
Now to think a little more closely about my main challenges…
Dealing with the fragmentation of my time is a big challenge. The way that I might do that is by grouping tasks together, so I don't have to switch context so much. Tunnel vision hasn't been too much of a problem for me so far, although it does mean that some things don't get worked on for a long time.
Taking a little bit of extra time to write up my notes makes sense, although it means my chunks of coding time have to be even shorter. Extracting excerpts for literate programming posts is a bit tough if I need to think about how to provide enough context. Maybe I should let myself fill things in later. I'm also looking into ways to do that faster, like maybe auto-generated captions running in the background so I can think out loud, grab the transcript, and then edit it a little bit (like this post). We'll see how that goes.
It makes sense to invest some time into expanding my toolset, like learning more about my tools, automating things, or taking advantage of hardware or software.
Of course, I'm still probably going to run into mistakes along the way, but if I can figure out which things are not as good for me, then I can see if other people want to go pick them up.
Might be a reasonable plan for reducing waste. Let's see how it works out.