Jakub Holý: Start with the simplest version you can

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: lawrence@krubner.com, or follow me on Twitter.

Jakub Holý has an interesting post:

Once upon time, there was a webshop portal with hundreds of partner webshops displayed on the front page. Potential users wanted to find out if their favorite webshops or a particular type of goods were available, existing users wanted to find a shop quickly. Therefore it was decided to implement search. But how to do that?

[a section about the first attempt]

Alternative 2: Minimal viable feature growing iteratively

After the original diversion, I have focused on getting value to the users ASAP. Thus the development was as follows:

Purely client-side search (or rather filtering) in webshop names, a case-insensitive matching of a substring

Addition of a library that can do fuzzy matching so that even misspelled names are found

Addition of keyword search – for each webshop we had tens of keywords such as “shoes” or “sport” so I transferred those to the browser as well and started to search them too. (The display of the results has evolved accordingly. I have also introduced lazy loading of these data not to impact initial load time.)

I’ve moved the search to the server-side to save clients from having to fetch so much data and thus increase load size, especially on mobile devices. This also opened possibilities for searching other sources later on. That is where we stopped for the time being. (Thanks to using ClojureScript at frontend and Clojure at backend, this was mostly copy & paste.)

The good thing was that every few days we could have delivered increased value to the users. And I was also able to test the search on a frined (thank you, Fredrik!) early in the process and improve the UI considerably. (Weak search with good UI/UX may well beat great search with terrible one, it turns out.)

Post external references

  1. 1
    http://theholyjava.wordpress.com/2014/11/10/tiny-tiny-steps/
Source