A Manifesto for Progressive Software Development

I’ve been thinking a lot about how I develop projects and what makes my projects uniquely mine. As of November 2023, I have four sites that I am actively working on: Binary Moon, Brush Ninja, Ninja Puzzles, and WPBriefs. Despite working mostly in the evenings and being a one-person team, I manage to update all these sites every week (often multiple times). How do I do it? Let me share my approach with you.

Release Early, Release Often

Perfect is the enemy of good

My strategy is to release early and release often. This means adopting an iterative development process where I continuously refine and improve my projects. Rather than waiting until everything is perfect before releasing it. I believe in getting something out there as soon as possible. This allows me to gather feedback from users and make useful adjustments along the way; as opposed to guessing what would be useful and spending a long time making something people don’t want.

Embrace Minimalism

In addition to iterative development, I keep everything as minimal as possible. Not only in terms of functionality but also from a technical standpoint. Why? Because I want development to be quick and easy. By stripping away unnecessary complexities, I can focus on delivering value efficiently.

My website designs tend to be almost brutal. I use ElementalCSS for all my projects and try to steer clear of fancy animations and other unnecessary bells and whistles.

My code is not fancy either. All of my sites are static html, css and JavaScript. This keeps hosting costs down, ensures scalability, and makes it easier & quicker to maintain.

Automation is Key

Automation plays a vital role in my workflow. Whenever possible, I automate repetitive tasks so that they don’t consume unnecessary time and effort. For instance, I build small local tools that help speed up various processes. These tools act as shortcuts, enabling me to complete work more rapidly without compromising quality.

For example I have created my own code for generating related posts. Because I have a consistent tech stack I can use exactly the same code for all my sites, and any improvements I make will automatically propogate across all projects.

Consistency Matters

Consistency is essential when working on multiple projects simultaneously. One example of this is that I name things consistently across different projects. One example is that all of my projects have a deployment script called deploy.sh. By standardizing aspects of my workflow, I don’t have to remember how to do similar tasks across projects. In this instance deploying a project is the same regardless of which project I am working on.

Stick to What Works

Using the same boring technology stack across all projects has proven beneficial for me. It saves time by allowing me to leverage my existing knowledge and experience. It allows me to reuse code easily. Additionally, it ensures consistency in the codebase, making maintenance and updates more straightforward.

Document Everything

My documentation comprises lots of code comments. I make sure all functions/ methods have docblocks and there are comments throughout the codebase. This ensures I can jump between projects and get up to speed quickly.

Harnessing the Power of AI

Modern tools like AI offer incredible potential for boosting productivity. While I don’t rely on AI to do the work for me, I use it to my advantage by leveraging its capabilities to find shortcuts and speed up certain tasks.

Recently I have used AI to help me optimize my code. I use ChatGPT to identify areas of my codebase that could be improved. I also use AI to help me generate content for my websites.

By embracing technology, I can complete the boring work more quickly and focus on the things I enjoy while still maintaining control over the creative process.


With these strategies in mind, I’ve crafted a manifesto for progressive software development:

A Manifesto for Progressive Software Development

  1. Start Small, Improve Fast: Deliver the basic user experience first, then make quick improvements.
  2. Share Resources Wisely: Use resources smartly across projects for efficiency and consistency.
  3. Focus on Users: Puts users first, align design and features to their needs.
  4. Be Unique, Not Trendy: Prioritize familiar tools over short-lived trends for speed and efficiency.
  5. Always Learn: Keep growing personally and professionally.
  6. Keep It Simple: Opt for simple design, features, and language to boost user understanding.
  7. Document with Purpose: Create clear and strategic documentation for smooth collaboration and onboarding.

By adhering to these principles, I believe I can create software that is efficient, user-friendly, and adaptable to the ever-changing needs of my users.

How was it for you? Let me know on BlueSky or Mastodon

(Please) Link to this page

Thanks for reading. I'd really appreciate it if you'd link to this page if you mention it in your newsletter or on your blog.

Related Posts

12 Jun 2023

Rebuilding the Binary Moon Website

I have recently rebuilt the Binary Moon website. It’s been something I’ve been thinking about for a while, and a recent issue with my web host pushed me to finally make a start. In this post, I’ll share some of...
15 Jun 2023

How I Use AI to Streamline My Programming Process

As a programmer, I am always on the lookout for ways to improve my workflow. In recent years, artificial intelligence (AI) has become an increasingly popular tool in the tech world, and I have found myself using it more and...
01 Apr 2015

The State of WordPress Themes #wcldn

I recently spoke on a panel at WordCamp London 2015e. Lance – who used to be the Theme Team lead at WordPress.com – asked me if I wanted to speak on a panel with him at WordCamp London 2015. I’ve...
02 Sep 2023

Keeping Web Dev Simple

As I have gotten older, I have realized that caring less about what people think has brought me a great sense of freedom. In the past, I used to follow all the latest trends in tech, constantly trying to keep...
15 Sep 2023

Building a Control Panel for my Websites

I run a whole stack of websites, and as the number keeps growing, I was finding it harder to manage them all; so I decided to make a central control panel to manage them all efficiently. In this blog post,...
13 Oct 2016

Lessons Learned from 20 Theme Releases on WordPress.com

In 2007 I partnered with Darren Hoyt to release Mimbo Pro, one of the earliest premium WordPress themes. In 2012 Mimbo Pro was published on wordpress.com. Last week – on October 5th 2016 to be precise – my 20th theme...