Summary¶
In my last article, I talked about how I had suffered a major crash while working on my PyMarkdown project. In this article, I talk about continuing to battle those effects.
Introduction¶
The build up to last weekend was nasty. After spending 30 months working on the PyMarkdown project, I do not believe I have ever had a time where I crashed as hard as I did that weekend. From that aspect of things, I was long overdue. And now, I get to deal with the long path to recovery.
One Size Does Not Fit All¶
From over thirty years of professional experience, and even more experience working on my own projects, I know that there are four level of crashing that I have encountered.
Level 1: The “Simple” Crash¶
The first level for me is the simple crash. The reason I call this a “simple” crash is because the path to get there is simple, the cause is simple, and the path to recover is simple. This is the crash that I tend to hit a lot, mostly because I like to push myself a bit past what I am comfortable dealing with. These situations are when I am running out of energy when working outdoors or feel that I need “just a little bit more” experimentation to get a problem solved. The wonderful thing about these situations is that the recovering from them is simple: relax and take it easy. A couple of hours with my feet up and watching a good movie and I am ready to go again.
As the side effects are short term and are typically good for increasing stamina, I am usually okay with these crashes. I do watch out for their effects though, making sure that the effects are not cumulative and do have a tangible benefit. If not, I try and find a way to avoid the crash completely.
Level 2: The “Eyes Wide Shut” Crash¶
The second level for me is the “eyes wide shut” crash. I tried to find another name for this crash, but none of them had the same emphasis that I believe this name gives it. While I do run into this physically on occasion, I run into this more with mental problems through which I am working. As much as it pains me to say it, this level of crash is where the physical and mental damage starts to set in. A good physical example for me is going on a long hike after a dormant winter. I can do the longer hikes, but I must get back in shape first. You know, make intelligent decisions.
And it is with those intelligent decisions that I get into the mental aspect of this type of crash. Telling myself “I can make it to the end” when I can see the end of a hike is one thing. Pushing myself regardless of the consequences when I can still see the start is another thing entirely. Mentally speaking, I get into these situations when I do not pay attention to where I am at in solving a problem, only telling myself that the problem must be solved. However, instead of a sore body from a hike, the damage is in my ability to solve other problems. Instead of thinking about the best approach, I just charge forward.
To bring this back to the name of the crash, it is as if I closed my eyes as hard as I can, continuing to walk towards the end of the hike. Given that image, I cannot see any way in which I would not harm myself. Get lucky that it was not a bad injury. But at least minimal injuries are bound to occur. And as these injuries are a bit more severe than just the “simple” crash, the recovery is more prolonged. For me, I need multiple days where I specifically focus on avoiding the areas where the injuries occurred. If I injure my legs from a hike, it means I sit down with my legs raised. Similarly, if I injure myself mentally, it means avoiding doing the same type of work that I was doing that caused the injury.
I would love to say that I do not crash like this frequently, but the best I can do is to say that I do not crash like this as frequently as before. There are times where I push past the “simple” crash more than I should, and usually I have a good reason for doing that. But with these crashes, I am more concerned about the injuries, mental and physical, and how they accumulate. From my point of view, there usually is a good reason for pushing as far as I did, but I know I am going to pay for it later.
Level 3: The “Crossover” Crash¶
The third level that I have experienced is the “crossover” crash. Once again, I spent time agonizing over a good name for this crash before settled on this one. The reason for that specific name is hopefully self-evident. When this type of crash occurs, it means I pushed through the “eyes wide shut” crash to the point where any injuries crossed over from the mental to the physical and vice versa. While there are other ways to get to this type of crash, such as getting into an automobile accident, I am going to focus on those situations where I have a decent ability to affect the outcome.
From that narrowed point of view, the best description is that I end up working on something until I am sick of it. I have not encountered this physically in my life, but I have hit this mentally about ten times in my life. In each case, I pushed through the small injuries, weathering through the multiple, larger injuries until I reached a breaking point. Quite simply, I got to a point where I just did not have any more left to give.
Based on my own nomenclature, this is where I ended up a week or so ago. My mind was crashing so hard that I was feeling physical symptoms in my body. And unlike the recovery steps for the previous two situations, the steps to recovery for each of these situations has been very specifically keyed to that situation. For this last crash, I had to immediately stop doing anything that did not feel right, which started out being most things. For the first couple of days, even doing LEGO or watching some more interesting movies was too much. I just had to take it slow, evaluating where I am at each day and adjusting for that. Eventually I got to the point where I was able to some debugging and writing of code, but I had to make sure to not push it too far. And things did get better… just very slowly.
Level 4: Burnout¶
This is the level that nobody wants to be at: burnout. I have been there once in my life, and that was enough for me. This is the crossover crash on steroids. When this hit me, my life energy just drained away from most of the aspects of my life. It was just nasty. So nasty in fact, that I am just going to say “seriously, do not get this far” and leave it at that. It still hurts me mentally to think back to that time. And the recovery is just as brutal, taking multiple weeks only to find myself back to the crossover crash stage and starting my recover there.
Those were what I refer to as the “dark days.” That was a time in my life when I really had no choice but to keep on pushing. This was back in the 2002-2003 time frame when the tech bubble had burst and there was hardly any work to be found anywhere. So, when I did find contract work here and there, I worked myself to the bone. There were times where I was working on two full time contracts just to make ends meet. It was bad. It was not a fun time for me or my family.
Having been there, I thought that there was nothing else I could do. With twenty years of experience since that year, I now understand that it may look like there were no alternatives at the time, but there are always alternatives. These were not the best alternative, but they would have kept me from going through that dark time. My advice to any in a comparable situation is to please look for these alternatives, even if they are not the best alternative, and achieve those alternatives. Focus on the things that mean a lot to you, which in my case is family. Now, I do not really hate anyone, and definitely do not have anyone that I would call an enemy, but as the saying goes, “I wouldn’t want to wish that on my worst enemy.”
When I finally recovered, I know I spent extra time with my family to make up for wasting time with them when I was burned out. Just do not go there. Find a way to avoid going there.
Where Am I At Now?¶
Well, first off, I had to delay the publishing of this article by a day because I am still recovering from that weekend. Normally the words for the articles just flow from my fingers. But that “flow” was just not there on Sunday and Monday night. On both nights, I pushed until I started feeling resistance and then I backed off. I decided that a good article a day late with a healthy mind was better than adding extra time to my recovery.
Other than that, the recovery is going well. I am not at 100% yet, but I can see my own progress in getting there. I still took breaks this week and weekend while I was working on fixing issues, but the frequency and duration of those breaks was noticeably lower. I also noticed that when I got to the point to take a break, it was more of a nudge in my mind that I should stop, rather than any kind of yelling in my ears. So, while I am not back to where I was before that weekend, I can see that happening in the next couple of weeks.
From a project point of view… well, I honestly wish I had hit that brick wall sooner. Before I crashed, I worked an entire weekend without making any headway on the remaining container issues on which I was working. As of this past Sunday afternoon, all three groups of issues are debugged, fixed, and committed. To be clear, while recovering and not at full strength, I was able to solve those issues when a mostly healthy me could not make a dent in those same issues over that fateful weekend.
If nothing else, that kind of information makes me feel humble. It helps me to understand that I still have room to grow, especially when it comes to taking care of myself. One of my views on that information is: debugging and solving issues is just as much about wisdom as it is about intelligence. Brute force attacking those issues just got me into a bad mental and physical state. But a more measured recovery attempt worked well, achieving my desired goals. Sometimes, all the pressure just gets in the way where a more measured and relaxed approach works more seamlessly.
I do not believe I am a good poster child for what to do when developing software and testing that same software. I am still learning, and I still on the journey to be better. But I do know that this experience has taught me to be more honest with myself about debugging code and solving issues. If not, then I can expect another repeat of this in the future. And though I do stupid things from time to time, I would prefer to learn from them than repeat them. It just seems easier to me.
Comments
So what do you think? Did I miss something? Is any part unclear? Leave your comments below.