June 8, 2019
Iteration: a simple example
I always advocate the following:
Start small. Ship something. Make it better later. Iterate!
Well, here's a meta example of this. When I launched my blog in March 2019, I created a custom theme for Ghost that suited my needs.
This theme is simple and minimalistic by design. However, three months later I have discovered a few limitations.
When I started the blog, I only had one post. Then two, three, and so on. It took me a while to get to 6 posts, which is the value I had set for the
posts_per_page configuration option in my theme's
package.json file. After I published the 7th post, posts started disappearing from the index.
This isn't a big issue, as most people don't come to my index page and browse for posts. Typically, someone will come from a social channel like LinkedIn. To fix this, I simply added in pagination at the bottom of the index page. Now, you can navigate pages like a champ.
Full Posts on Index
Next up, after having a few lengthy posts, I realized that the index page had some additional problems. Anyone reading a post could run into another post, or get lost because the content was not clearly separated.
To solve this, I took a step back. I decided that an index page should be, well, an index. I removed the post content and reduced the size of the post titles. I could have spent more time tweaking the right amount of words to cut off for an excerpt, or perhaps a better way to separate the posts. However, I feel that (for now) this is the best solution.
Ship and iterate
When I created the first version of the blog theme, I didn't even consider pagination. Why? Because I didn't need it. I could have spent the time to add it, among other things, but I decided to draw the line and ship something. Because of that, I was able to put the blog out there and start writing. I achieved my initial goal without riddling myself with additional work.
One key implication of this advice that often goes overlooked is that you must remember to come back and iterate on the things you create. Don't let your half-baked product sit out there forever. Sadly, this happens routinely if you are unable to prioritize work well. Push to gather internal or external feedback over time and make improvements to your products. Many of these will be obvious: the items you cut from the first release. However, other improvements may not be clear until you hear it from a customer.
Unfortunately, this isn't sage advice. You don't have to iterate. If something is a dud, let it die. And the best part? If you cut scope and got it out quickly, you wasted less time because you were focused on properly iterating.