Archive

Posts Tagged ‘design’

Invisible design

January 17, 2013 Leave a comment

Late Steve Jobs once remarked about design,

Most people make the mistake of thinking design is what it looks like. That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.

A lot of people repeat it, but do they really know what they are talking? Specially in today’s IT corporate filled with phony jargons like “innovtion”, “cutting edge”, “out of the box”, etc. coming specially from the most rigid (always thinking inside the box) guys from the top management.

Well, pet peeves apart.

Coming to the point, why am I writing this post today? Because, its been long since I wrote and I have been meaning to resume blogging lately. And today, when I completed a critical ‘invisible design’ as a part of a mobile app I am developing, I thought its worth sharing.

A part of the app that I am developing involves uploading large files from mobiles. Large files, low upload speed phones#, low bandwidth, spotty data connections on mobiles, failed uploads, restarted uploads, etc. sounds a ring? Well, the straightforward and naive way to do that would have been to ask the user to chose a file and try to upload it. If anything fails, just tell the user and let him take a call or just silently restart (from scratch) the upload when data connection is available. Well, what if it fails again? How many times the user driven or the automatic restart will happen? Will the large file ever get uploaded?

#Most mobile phones, including smartphones usually have low upload speeds as compared to download speeds. Even in most middle end phones with the so called 3G speeds, they only mean high download speeds (HSDPA) and not upload speeds (HSUPA)

If upload does not sound a ring, then think download. What if your torrent downloaders did not offer resuming of a download and only allows restart (from scratch) of the download ? Will your favorite movie ever download if your connection is spotty, or your router SNR is high, or the router had a power cut, etc.? Did you ever observe that ‘ordinary’ (taken for granted) thing? Ask older (1970’s and 80’s) folks from the computers world, they will tell you how dowloaders worked back then.

You can say that is a feature (developers will say architecture) of the torrent software, but I say its design too.

Now think of a solution to that upload from mobile problem, wherein the client (the mobile app) uploads the data in small chunks and both client as well as server (where files are uploaded) are stateful with regards to the amount (chunks) of data uploaded. If the data connection drops somewhere, the client can communicate and negotiate with the server on where to resume the interrupted upload. That saves the trouble of manual or automatic restart, saves resources, time and simply get’s the job done. But do you ever observe such ‘ordinary’ things (which just get the job done), besides the user interface bells and whistles, in apps that you use? I guess not.

No, I am not showcasing any innovation, the concept of chunked upload is very much existent and referred with the same name in the tech industry, ‘chunked uploads’, but its like talked a lot, implemented a little. The point that I am trying to make today is that there is much beyond what you see in an object (specifically app/site) that you use, which makes your life simple. Observe it!!

SC20130117-194333

Hat tip for developers: Empathize, eat your own dog food, sink yourself in your end-users’ shoes and see what they see, feel what they feel, you will understand the deeper meaning of design, specially the invisible one, and you will start making better software (I am hopeful that you are making good software already, you just need to make it better).

P.S.: I am thinking to release the chunked uploads Android app code (Java) and server code (Python/Django) as an open source code on github soon, *if I get enough free time*.

%d bloggers like this: