Ship little and often! – The new mantra behind my current portfolio site

  • Updated April 21st 2020

Today I released the latest version of my professional website. I count this as the fourth major iteration of my professional website in the space of approximately 6 years. With each new major version came an entirely new design. The content however, remained the same.

Before I created my latest site, I realised something. For far too long, I have been renovating my website by pulling it down and starting from scratch. I would always start with the best intentions and plan out (in my head) all of the great features that my new site will have. When it came to building the site however, I would quickly lose focus. As I looked at the scale of the task ahead of me, I would quickly realise that I did not have the time to create the masterpiece that I had planned.

Time has always been the biggest blocker on a lot of my personal projects. I have realised now that one way to remove this barrier is by making smaller changes that build on the work that is already in place. As long as the foundations of your project are solid, building on top of it should be an easy task.

To put this another way:

Start with something basic, a MVP (Minimum Viable Product) if you like, and then add more functionality over time.

Ship little and often.

By doing this on my latest professional website, I noticed the following:

  • I have been excited about working on this project. Previously, I would have lost interest quite quickly.
  • I have been breaking the site down into its smallest components, building and releasing these independently.
  • I want to spend more time on this project because of the progress that I can see myself making.

I think I would attribute that last bullet point to the second bullet point. One benefit of breaking any project/task down into subtasks is that your work becomes more manageable and you experience success more frequently. Try it out on your next project. Instead of making one task: ‘redesign home page’, make three subtasks:

  • Redesign the hero section at the top of the home page.
  • Build ‘Projects’ section on the home page to display all web projects that link to their corresponding project pages.
  • Design and style a new section of the home page to highlight my experience as a software engineer.

Immediately, we have three new tasks that can be tackled independently of each other. This means that we can complete and release the first bullet point before we even think about the next two. We have already updated and released new content for our site.

These subtasks are still quite broad however. We could break these down further. My subtasks for the home page looked more like this:

  • Redesign the hero section at the top of the home page.
    • Design a logo and add this to the hero section.
    • Choose a new background image and add this to the hero section.
  • Build Projects section on home page to display all web projects that link to their corresponding project pages.
    • Design images that will represent each project.
    • Create a horizontally scrolling area on the home page that will house the projects (but can also be reused in other areas of the site).
    • Hard code each project image on the home page and make them link to the websites of those projects.
    • Build a projects section into our content management system and add the necessary custom fields that we will need to display all the data that we want on the front end.
    • Request the projects from our CMS’s API and use these to replace the hard coded projects.
  • Design and style a new section of the home page to highlight my experience as a software engineer.
    • Decide which points I would like to include and write the content for them.
    • Create logos to represent each bullet point.
    • Create an appealing layout style to display these bullet points to users.

The difference in these subtasks compared with our original list is that our new subtasks are much more specific and manageable. We can complete these subtasks more easily which makes us more willing to start them. They are also much smaller which means that we are more likely to complete them.

Design subtasks so that they can be released after they are complete. Try not to make subtasks depend on other subtasks.

Moving forward, I plan to continue using this idea. I will not redesign a new website from the ground up unless I have a good reason to. I am hoping that I will be able to make smaller, incremental improvements to this site over time. This should improve the quality of this project over time, allow me to build more features and ultimately, create a better experience for my users (which should always be your end goal).



© Ian Holden 2020

“We can get better, because we’re not dead yet.” – Frank Turner