Thoughts on the last update (Patreon)
Content
So, the last SHF3 update took a while. This post is about what happened, why, and what I learned from it. This post won't contain anything about upcoming SHF3 features or Factory progress, and there aren't any big announcements here, so feel free to skip it!
I'm super glad to see that the update is well-liked so far. Everyone is incredibly supportive and patient. Seriously, thank you guys for being so cool about all this. <3
But! There's still a bunch of problems with the way things went this last month, and I want to fix them.
The Time Management problem
This was my mindset for about 30 days straight: "I'm almost done. It'll only take 1 more day to finish up the rest of this todo list. I'll just ignore everything else and power through it." And each day I'd be amazed that I hadn't finished yet. What was I doing with my time? Was I lazy? Was I not focusing properly? Was I just too stupid to do this?
Some of you know that I've been trying to fix my bad project management habits. Well, bad habits die hard. But the project management course I'm taking did come in handy this time around. What snapped me out of my dumb trance was bringing in a tool from that course- measuring time estimates against my actual performance.
I use Trello to organize all my minor tasks, so I started adding a time estimate for each card, and then actually setting a timer to see how long it took me. The results were absurd. Most of my "15 minutes" cards took 4 hours. "30 minutes" cards took 7-9 hours. "1 hour" cards took multiple days. FML.
So yeah, that's why I wasn't finished yet. I was looking at weeks worth of tasks and saying "yeah I can do that in an afternoon". And when I couldn't finish, I thought it was because I wasn't putting in enough effort. Even now, my brain is telling me "You can finish the next huge feature in a couple of hours. Just do that before writing this post."
The Standards problem
You guys see what I manage to create in each update, and are (hopefully) excited by it. I see what I manage to create and am disappointed by it. It's just a fraction of what I was trying to do. No matter how much people like it, if it's not up to the expectations I set for myself, then I feel like I've failed.
On one hand, this means I don't compromise my personal standards or let praise go to my head. On the other, it means that I can get stressed out even when everyone is happy with what I'm doing. And that stress gets worse when I can't figure out why my "30 minute" task is taking all day to finish.
I don't think there's a "solution" to this one, but it was a realization I had while thinking about all of this. Maybe being aware of it will be useful.
The Unhealthy Coping Mechanisms problem
So I've noticed a few bad habits that really screw me over in these situations.
1: I feel like I haven't accomplished enough for this update, so I'll add more and more features to the todo list to "make up" for the lack of progress. This is self-defeating for obvious reasons.
2: I feel like I'm too overwhelmed to take a step back and re-evaluate. I keep thinking I only have enough mental bandwidth to just finish the todo list. In reality, if I just stopped for a second and took a deep breath, I'd be able to take some things off the todo list, and I'd be less overwhelmed.
3: I feel like socializing with people is too overwhelming, so I disappear from social media without warning. Of course, if I actually talked to people about what I was doing, I could get feedback and support when I'm stressed.
Lessons Learned
I'm now tracking time estimates for each and every minor task, and breaking major tasks down into more quantifiable chunks. I'd recommend this to anyone with a serious project. It's incredible how bad the brain (or at least MY brain) is at sizing up an abstract task. So far, I already feel a lot less insecure about my progress for the next update.
Scope creep is a killer. I already knew about that, but it still got me. One thing that I found useful in finally releasing this last update was clearly defining the MVP (minimum viable product) for the update. What's the bare minimum I could finish and still have the update be functional? This makes sorting my Trello a lot easier- everything that isn't absolutely crucial gets pushed to the "later" list. This is a skill I'm constantly trying to get better at.
That feeling of being overwhelmed is a huge red flag. When I feel that, I need to stop coding immediately. Being overwhelmed isn't a code problem- it's a project management problem. When I tried to solve it by CODING HARDER, it only made things worse. I'm better at coding than I am at management, so this is a hard thing for me to really internalize.
Socializing with others is healthy and I shouldn't avoid it when stressed. This isn't a new lesson, but damn it, I'll keep trying to learn it. Still, I naturally go through antisocial periods even when not stressed, so this might be an eternal struggle.
Final thoughts
This update was pretty good in terms of features, but it took a long time, and half of the things in it were unrelated to each other. Each feature could've been its own individual update, and would have come out much more quickly. That would've solved the rest of the problems directly or indirectly.
So that's gonna be my main solution- finish one feature, then release. That way things don't get stalled out again. I've said stuff along these lines before, though, so all I can promise is that I'll do my best to put these lessons into practice. Learning is a slow process for some of us >.<'
I'm slowly coming out of my antisocial period- I AM reading comments, even though I'm not answering them yet. Public builds and Factory progress coming next. <3