I Get Knocked Down, but I Get up Again
You're Never Gonna Keep Me Down
Developing good software is hard. Even with a good platform, good tools, a good design, and a great team, it's hard.
Even the best platform has bugs, inconsistencies, and limitations. The better you know the platform, the more you can plan for where the issues may crop up, but unless you're working on a task that you've done several times before, in the exact same way, there's a good chance you'll find some new quirk, limitation, or bug.
While you're dealing with that your tools will crash, slow down, require maintenance, change behavior, or require some kind of extra attention that doesn't involve writing new code.
Any non trivial app will have a design that requires rethinking based on device size, workflows, keyboard visibility, rarely seen states, errors, and anything that wasn't planned for while the foundations were being laid.
Sometimes, all of the problems seem to happen at once, repeatedly. The project knocks me down.
Hard.
Repeatedly.
It's stressful, it hurts my pride, and it frustrates me.
Getting knocked down spans a pretty broad scale, sometimes it's a small problem that just refuses to budge, or getting a feature to 90% before realizing there's a major flaw in the current design that requires major refactoring, and sometimes it's just getting worn down from a run of smaller problems, stress, and deadlines.
The thing is, I get back up every time. Then I see what I can learn about what went wrong, and get back to coding. I keep getting back up, and I keep getting back to work. Sometimes it's because I'm a professional and that's what I do, but mostly it's because I'm tenacious and refuse to give up.