Assumed Audience: practitioners or interested lookers-on for software development—especially indies.
Today, I had about 3½ hours dedicated to working on rewrite and I did make progress… but it sure didn’t feel like it.
For the past month or so, I’ve been sidelined from working on the project by way of getting very sick and then being swamped with travel for a conference followed by a friend’s wedding. I resolved, however, to get some things done today. I enjoyed that sense of momentum I had in those first couple weeks I was working, and I want it back.
Today’s work, however… felt exceedingly unproductive. It wasn’t. I was learning. Specifically, I was learning how Swift Packages and the Swift Package Manager (SPM) work, how they work with Xcode, and what they can and cannot do. In general, learning like this is necessary and valuable, and this specific knowledge domain is particularly necessary and valuable for me. For one thing, the details of how I’m building the app will make this very applicable very quickly. (More on that in a future update.) For another, because I work best when I have a good understanding of how the whole system works together.
The net of it, though, was that I came out with a good idea of how to use Swift Packages… and zero new lines of code written for the app itself. I may yet make a little progress this evening after my little girls are in bed, but the big takeaway for me today was the need to remind myself that learning is a form of progress. You might think that I, academically-minded and hyper-nerdy fellow that I am, would find that easy to remember. It turns out, though, that it isn’t easy to remember in the context of the desire to actually ship something!
I hope this dev journal entry serves as an encouragement to others doing development work. There’s value in these days. They’re not failures. They’re an integral part of the way you get to the day when you actually ship.