Cycles
During the past few years I worked on delivering a new Web architecture which required a big rewrite of a legacy system. It was a complete overhaul both from Engineering and Product perspective and involved switching from monolyth to micro-services architecture, going all in on Kafka and event-streaming, and rethinking a lot of our solutions. It was intense. But, starting around the summer of 2022 the work became less demanding. My team has reached the point where our systems where stable, the code was running well, and the only thing we had to do to prep for the big launch was fix the occasional bugs and polish the details. So, for the past half a year our pace was a lot slower. And even though we lauched a closed Beta in October, we still had some spare time to shift our attention to other things. This provided a great opportunity to reflect and take stock. Our team members got a well-deserved breather.
Looking back, I realize that this is when I started to pick some some online courses and to be excited about things outside of work again. That pause gave me enough energy to restart my learning process and to become a better developer. Both the intense work before and the rest after had an impressive benefit on my overall skills as a software engineer. If we'd continued to work on shipping more features without taking a breather - I would be burnt out and potentially have quit my job by now. If we hadn't worked as hard as we did - I would not have grown as much and progressed as fast. Also, we would probably not have been able to get everything ready for launch in time, which would mean more stress down the road. Hard work paid off there.
A lot of things in this world come in cycles. Seasons change one after the other, night follows the day etc. I believe similar concept could be applied to our professional lives. It's important to understand that you can keep giving 200% every day for a year but it will hurt you in the end. You will get burnt out. Personally, I don't think it's worth it in the long run. I think the best approach would be akin to how high-intesity interval training works - you sprint, you rest, you repeat. Clearly defined period of intense hard work needs to be followed by a period of rest, or at least some far lighter load. This will give your body time to recuperate, give your mind some space to come up with new ideas, and help you avoid burnout in the long run. It will also benefit your personal lives and you will feel more productive when it is time to push hard again.
Of course, this is all mostly based on my personal observations. But I do think that it is a good strategy. There's a time to sprint and there's a time to rest. And it's extremely important to know when to do what.
This post is part of the #100days project, where I try to write a post a day. Today is #day6