Working iteratively

I recently started self-hosting the episodes for the Beyond Blocks podcast.

Instead of hosting the episodes on a third party service, the MP3 files are hosted on my server and played using the HTML5 audio element.

The first step was to add the files to my website codebase and deploy them to the server. This was the smallest deployable iteration of this project.

The second iteration was to change the player on the episode page.

This is still a work-in-progress as I need to finish building the podcast feed to submit to iTunes, Spotify, etc.

Here's the thing

I didn't need to wait to finish this before I could change the player, and I didn't need to do that before uploading the MP3 files.

Each was its own deployable step, and this is how I like to approach tasks.

I like to break things down as much as possible to find the smallest piece of task that can be committed and deployed.

Deploying features iteratively is less risky that deploying everything at once.

You're deploying changes in smaller parts, making it less likely for something to go wrong, and easier to identify and resolve any issues.

And, if you need to roll back or revert a change, you can affect only the part you need instead of everything.