We plan our code with a lot of care. So, why don’t we look inward with the same care?
I’ve been a professional software engineer for a year and a half now. I see a lot of stressed people in this industry, and I see a lot of people who have opinions about how to build the best system. Do we build something with maximum simplicity, or with the quickest method? Or do we build something with the latest, hottest libraries? How thorough does end-to-end testing need to be? Do things we build need to be able to shift and grow in the future?
I recently wrote a post about meditation for software engineers, and I wanted to continue that line of thought. In this post, I will discuss the ways these engineering dilemmas apply to our minds. How can we make ourselves better humans by following these principles?
Make it Boring
I went to a talk at JSConf 2019 by Jeremy Wagner called Make it Boring. This opened my eyes to the idea that some engineers think it’s great to create a system without frills and complications. As a junior engineer, I assumed that making code fancy was what all the experienced engineers did all the time. Apparently not.
What this really means is: it’s a good thing to keep things simple. When we think about making our thought processes simple, it seems beneficial because we often let the thoughts attached to our egos get amplified and distracting. We might be pulled in many directions, with pressure on all sides of us. If we slow down and stay quiet — serene — we can achieve a new system for our thoughts. We can learn to guide them to a place beneficial to ourselves.
Meditation can help with this. When you clear your head and start to stay in the simple and ‘boring’ place, you will discover things you never noticed before. And trust me, life will not be boring at all once this is achieved.
End to End Testing
We talk about end-to-end testing where real scenarios can be completely simulated before the code is in production. Tests capture all the ways our code can break, and run non-production code to see if things will work correctly. Can we apply this to the mind, too?
When we are stressed, we are blocked from thinking clearly. Our fears are blinding us. Can we slow down and run through a simulation of reality in our minds to find out what the fearful ending might be, and how to avoid it? We care so much about our code being tested, but we can do so much with our thoughts before they are manifested into reality. Our minds have infinite potential, so why not use them to harness the power of controlled outcomes?
Imagine that you are facing losing your job. You feel a sense of panic and hopelessness at first, but the more you think it over, and run scenarios through your mind, the more you realize that things are going to be okay somehow. You may be uncomfortable for a period of time, but with a plan and an examination of the worst-case scenario, you will survive this life change.
All we have to do is look within, calm our minds (this is a repeating theme), and let go of our fears while we run through the different paths and results. If we do this before taking action in our lives, imagine how much more powerful we will feel to make the changes we desire in the world around us.
Scalability
It is in human nature to evolve and grow throughout our lives. We often don’t expect great changes that are forced upon us as we go on with living. In engineering, we build system with the idea that in the future, they will change and grow in often unexpected directions, and we plan for this. So, why don’t we plan for this in life? Why do we so often believe that things will keep going as they are? That is just not the nature of life.
We can learn to be truly open and remain stable no matter what comes. We can be open to growth and learning at any time in life, and get ready ahead of time for changes to come.
No one saw a virus pandemic coming in 2020, and it disrupted our lives. Arguably, the people who it affected with the least stress were the people who are prepared for anything at all times. Those that don’t easily succumb to fear and panic were able to gracefully transition their lifestyles to work with the restrictions and health concerns that they faced. Many people found the good aspects of staying at home, developing their skills or using the time for introspection. This is scalability at its finest. These people didn’t break down when the unexpected happened.
Our fears often seat themselves in unforeseen future changes. We feel that we have no control over our fates because things can change any time. But if we mentally prepare to be resilient, we can overcome difficulties with more grace.
In Conclusion
So much of our time working on code is spent striking a balance between extravagance and simplicity and between the unknown and certainty. If we just turn our attention inwards with the same principles sometimes, we can overcome great obstacles in life. Living isn’t easy, but we don’t have to live in fear or stress. There are methods we already know that we can apply to ourselves for peace of mind now.