diff --git a/source/_daily_emails/2024-12-19.md b/source/_daily_emails/2024-12-19.md new file mode 100644 index 00000000..c5d2d754 --- /dev/null +++ b/source/_daily_emails/2024-12-19.md @@ -0,0 +1,36 @@ +--- +title: Working iteratively +date: 2024-12-19 +permalink: daily/2024/12/19/working-iteratively +tags: + - software-development +cta: ~ +snippet: | + What's the smallest deployable piece you can break a task into? +--- + +I recently started [self-hosting the episodes for the Beyond Blocks podcast][0]. + +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. + +[0]: {{site.url}}/daily/2024/12/18/self-hosting-podcast