Software engineering can be quite overwhelming, heck, life can be overwhelming. One thing that I’ve found that helps me keep some sanity in work (and life) is tackling the next smallest thing.
Don’t get me wrong sometimes you have a clear picture of what you need to do and you know how to do it. If that’s the case just go do it! But I often find myself tangled up in a ball of confusion as I try to wrap my mind around a new concept, or a new system. After I dizzy myself into a frenzy I take a break and begin to systematically break down what’s in front of me. I usually start by asking myself What am I trying to accomplish? — it might not be what you were told you needed to accomplish.
I find this set of questions helpful:
What is the next smallest question I can answer?
What is the next smallest concept I can learn?
What is the next smallest thing I can do?
Sometimes I just sit there thinking about the problem before one of these 3 areas become clear.
As things grow in complexity I find myself having to do this more often than not. Gone are the days when I can just start working and see tangible progress in the next hour or two.
This has become more apparent at my new company which is a FAANG company (Facebook Apple Amazon Netflix Google) where it seems that every system I interact with has years of complexity built into it. How do you fix a bug in a system that has 10+ different teams that make it work even at a basic level? It’s not easy. So my new mantra has become: What’s the next smallest thing I can answer, learn, or do to make progress?
-Jesse