Pareto Programming (How to be an 80/20 Coder)


First of all, let’s define Pareto’s principle for the uninitiated:

80% of the output stems from 20% of the input.

Get it? 20% of labor produces 80% of value. 20% of your clients contribute 80% of your revenue. 20% of your code does 80% of the work.

Read Tim Ferriss’s material to learn more about using Pareto’s Principle to change your life outside of coding.

If you’re a coder, we’ll want to use this idea to our advantage. The first thing that comes to mind is testing. I make a proposition:

80% of your coverage comes from 20% of your tests. Ask yourself: What are the 20% of tests that will accomplish 80% of the coverage? Whatever the answer is are the tests you should write first.

This thinking can also be applied to UX design. What are 20% of features that will provide 80% of the value to my users? Those are the features that you spec out first.

Let me give you a great example of this: Last week, at Launch Academy‘s Ship It Saturday hackathon, my friend Peter and I built a small photo-blog called #BostonsBad. The concept is simple: A user-generated content site that provides a simple and intuitive interface for submitting and curating images.

Immediately, a number of features come to mind:

  • Social/sharing mechanism
  • User log-in
  • User profiles
  • Content submission
  • Admin/Curation interface
  • “Follow” for notifications
  • Follow individual submitters
  • Comments
  • User-facing homepage
  • etc etc…

So, in the midst of the muck of the brainstorm, it’s easy to see how this project could grow out of control and never be deployed. As an experience UX designer, it’s imperative for me identify the most important features to develop and get this thing on the web. These features are the 20% that will comprise 80% of the value. 

For us, these features were clear:

We needed:

– A user-facing homepage

– A content submission mechanism

– and an easy-to-use content curation interface.

Not in that order. Obviously, the front-end is contingent on a functioning back-end in this case.

We built out a slick submission engine using Instagram. Users don’t need to download an app or even visit the site to submit content. All they need to do is Instagram a photo using the hashtag #BostonsBad. We scrape their API for these photos and add them to our database as they’re submitted.

That’s a simple user experience.

On our end, those photos get emailed to the site’s administrator (me) for acceptance. I DON’T EVEN NEED TO VISIT THE SITE. This is huge for me. I don’t want to have to wait by my computer to manage incoming content. I want to be able to look at it, and give it a yes or no on the spot.

After that, building the front-end was cake. We deployed to heroku and I bought the domain name and you can check out the working prototype here.

The important thing to remember here, is that we took a big idea and pared it down to the significant 20% that would allow people to use the product. 

What about you? What are some times you’ve been able to make small changes for a big impact?

One thought on “Pareto Programming (How to be an 80/20 Coder)

  1. Pingback: Justus: Excellence as a Religion | Justus: Unlimited

Leave a Reply

Your email address will not be published. Required fields are marked *