It’s been lots of years since I found any new app and enjoyed using it.
Most new applications that get released these days are just junk that “kinda” looks good. They are either too buggy, or too slow or they just have a User Interface that looks shinny, while it does not help its users achieve their goals.
The reason I do not enjoy the new applications that come out these days is that they are not polished. The people that build them do not spend time to smoothen their rough edges and make them “frictionless”. They are optimized for the best-case scenario. No soul or love has been put on them.
Every time I think about polishing a product of work, I always think of this profound advertisement by Leica Camera; “The Most Boring Ad Ever Made?”. It’s a 45-min video of a Leica employee who polishes the body of a camera carefully, deliberately with care and love.
My favorite part of the ad is at 1:20 when the narrator states the following astounding question
Of course there are faster and less costly ways to make camera but, is there a better way?
Leica is rightfully considered one of the best camera makers in the history of photography. It creates robust, polished cameras since 1914 (a whooping 100+ years of staying in business) and is still loved by tons of professional and enthusiast photographers.
I do not mistake cameras with software. Building a prototype camera is far more expensive that building a prototype software app. Leica knows this and is super careful with what it puts out in the market, in order to stay relevant and in business for so many years.
Just because it’s easy and cheap to ship junk software, it doesn’t mean we should.
I plead guilty for having done this in the past. I have shipped half baked software, working only in the best case scenario and needlessly slow. It doesn’t have to be like that and I plan to change this for the applications I am responsible for.
It’s straightforward to perform considerable polishing on an application;
- Reduce the surface to be polished by removing features
- Eliminate user errors where possible by limiting input options to a minimum set of discrete values (e.g. preferring radio input, instead of free text when it makes sense)
- Optimize for unexpected circumstances (slow network, runtime errors or unexpected user input)
Straightforward does not mean simple or easy and definitely not fast. Polishing an application needs care, love and time — especially in the beginning. There will always be more to polish and you should be the one to know when to stop and when it’s time to ship.
So there is my New Year’s Resolution for 2018; I will polish deliberately the software I am responsible for. I will do it because I want to put out in the market only shit that I am proud of — things that work and look great.
So, polish your shit too and have Happy New Year!