Got this in an email recent and was like, “You know what… why not?” So here we are.
This is gonna be, probably a place for me to take notes of things I resolve, try to abstract it away from thing I resolved it in and then write about how I found my way to the solution.
The reality is that I’ve been doing this kind of work now for a long time and I still just throw shit at the wall until it works… but maybe someone else out there can get an idea of what works based on the color of shit I’m throwing at the wall. Here’s a couple of things I do for discovering work…
1. Write it down
Like literally grab a pen and paper and write it down. I know, you’re sitting in front of a computer and don’t want to waste paper and ink and you probably have some note taking tool on your laptop that you can use or an audio note… but I do that stuff too and I think, for me at least, writing it down on a piece of paper helps me understand more than just throwing thoughts down with a keyboard.
2. Understand the problem
Part of writing it down for me is to just generally understand the problem. Once I know what the problem is, I’m relatively quick to start thinking of a solution. I don’t focus on the entire thing and identifying every little piece… I just understand the problem and will worry about the details as I go along. As long as the solution to the problem is something I can visualize, then the details don’t matter as much to me.
3. Draft a solution
Once I start putting hands to keyboard, THEN I’ll start to identify gaps in the solution and can start to think my way through those things. Maybe I’ll spend some time on one particular gap and really need to flesh it out with (guess what!) a pen and paper thought dump. Sometimes the result of that thought dump is that my original idea didn’t have enough of an understanding about the problem, so I should start over.
4. Improve the solution
Sometimes when I’m working through the problem, I’ll be along a path and then jump off the trail like a dog that saw a squirrel. Like, for example, maybe I create a class for a thing and then I’m like, “Oh… wait I could really abstract this and cover X, Y and Z along the way.” SO then we start the abstraction and improve upon it (sometimes I start out with this idea, but I’m not smart all the time and don’t jump to these right away). I think the real cusp here is understanding when something sucks and not being afraid to make it better.
5. Don’t be afraid to scrap the solution
Speaking of understanding when something sucks… don’t be afraid to scrap it and start over. Sticking to a solution removes the possibility of iteration and sometimes iteration needs to happen sooner rather than later. It’s not resiliency to keep chugging along when you think something isn’t going to work, it’s being stubborn and having a bit of an ego. Let the ego go, dude, just find something better and keep moving forward
Later y’all.

Leave a reply to sparrows-scroll Cancel reply