Home Artists Posts Import Register

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

Comments

marenoodles

I relate to this stuff a lot and it's great to hear you being transparent about all of this. Might help others deal with their own issues too. :) I wanted to mention something about being antisocial when behind on stuff. For me, it specifically happens with coworkers and supervisors. I'm a software developer at work, and when I'm stuck on a bug, I often avoid asking them for help. The reason is that I feel ashamed that I wasn't good enough to figure out the solution on my own. Not only that, but I hate feeling stuck, so I'll also usually feel the urge to slack off as a way to "run away" from the problem. When I do slack off, I'm even less likely to ask for help because now I'm ashamed for slacking off lol. And I get more ashamed the longer I wait, so it's a positive feedback loop. Thankfully I've gotten better over the years because I keep reminding myself that running away from my problems and becoming a hermit only makes the issue worse, and I instead have to swallow my self-esteem and ask for help ASAP. Still have my off days, though. :P Regardless, I think there's a lot of parallels for your situation. I don't have Patreon supporters, but I could easily see myself not wanting to communicate with them if I was ashamed for taking a while to deliver something to them. I imagine it can be rough. However, I think just being honest is the best approach for everyone, even if it feels uncomfortable at first. :)

Anonymous

I can relate to these problems quite well, especially to the time estimate problems. There's a reason why Ho(o)fstadter's law exists and is quoted often amongst programmers. "It always takes longer than you expect, even when you take into account Hofstadter's Law."

Anonymous

I'm really glad that you made this post and of course that you've started working on problems in your life too! As you guessed, i was really excited for the update and refreshed the page probably everyday since the announcement xD It was really worth the wait. But you're right in making smaller chunks of updates instead of one big one. I wish you an awesome start into the new year!

Anonymous

I would try to not be so concerned about how much longer things take than what you expected. I know it's a difficult mindset to get over, but coming from a fellow professional software dev it's definite possible. If it helps any, my rule of thumb is this: For every every hour quoted, expect at least half a day. So, if you quote a full 8 hour workday, expect it to take a business week. This seems to be true for a few reasons: 1) No matter how much experience you have, and how good you are, there are always unknowns. Full stop. You'll inevitably run into them either on first pass or whilst unit testing. 2) There's always something else that needs done. This is true for either someone who programs as their main job or someone who does it as a hobby. In the workplace, it's important that steakholders understand that you cannot possibly devote all of your time to their request uninterrupted. 3) Even if you're spending that entire hour on one task, you're not typing for one straight hour. Programming is cerebral, and it takes time to decide on how to tackle even small sections of code. That time is usually unnoticeable, but it builds up. And as others have said. Hofstadter's law

Anonymous

I had a feeling it was a stress thing when you vanished. I have the same bad habit. Your work is incredible, and while the updates are slow, they are consistently incredible and even if I saw a fraction of the update size from you each month, I would still be amazed. I'm sure everyone else is enjoying the last update as much as I have, and that any future work from you will continue to be more amazing than you believe it to be.

VitAnyaNaked

Do not worry so much. Everything that you have indicated here is quite fixable and I wish you more and more success in creating!

Anonymous

First I think it was brave of you to come out and tell us how you were truly feeling behind the scene like this. I know a lot of people would of been too scared to do something like that and would have just burned themselves out by working harder in order to make it look like everything was fine, but I think this will turn out to be a far healthier decision in the end.

Anonymous

I actually liked the long release periods. You were able to put a lot of content into one update, and give quite a bit to play with. On top of that, you were able to put out a higher quality product. I would rather you take your time and work in a big update without stressing over release schedules, and just keep us posted on progress, rather than rapid tiny releases.

Anonymous

what happened to the public release of update 28