A Quick Note
My colleague was assigned a task in which he had to set up open-source software on one of our servers. The process was a bit tricky, making the installation challenging, so he was somewhat disappointed to not finish his task. This is one of those moments when you want to fix a problem, but so many things happen simultaneously that you forget what the actual issue was. It’s colloquially known as Yak-Shaving. Scott Hanselman has written a cool article on this topic.
This is how software engineering actually works. You have to be patient, and nothing should get you down. Challenges will always arise, and most of the time you’ll hit a wall and find yourself chasing your tail. In such situations, it’s best to step away from the computer and go for a walk, or even better, get some sleep. That’s often how challenges are overcome. So when you’re stuck, take a break and come back to it later or basically sleep on it.
Another common experience is wanting to understand complex parts of a system. You keep digging but end up with no clues, and by the end of the day, you feel like you’ve accomplished nothing. The technique to tackle this issue is called Code Spelunking. This means you have to debug issues, add new features, or simply familiarise yourself with the code. The term “spelunking” is borrowed from the recreational activity of exploring caves, which serves as a fitting metaphor for diving deep into complex, labyrinthine codebases.
Speaking of Code Spelunking, You might like to checkout this vidoe: