Be Water

by kirupa   |   13 November 2011

  Have questions? Discuss this random article with others on the forums.

I'm sure you've read by now that work on the Flash Player for mobile devices is being discontinued. Mike's post does a good job laying things out and clarifying many concerns, so I won't add my opinion or try to analyze what is going on.

Instead, in this short article, I would like to share my thoughts on why news like this is just part of the (often painful/scary) evolution of our jobs as designers and developers.

Just to clarify, I work at Microsoft on a team that allows you to build Windows 8 applications using HTML5. These opinions, like all other jibberish on this site, are purely my own.

Technologies change often. The underlying wants change slowly.

Who do you work for? The answer isn't as simple and clear-cut as it seems. I'm not talking about your boss, your team, or even your company. I'm referring to who, in the long run, determines the success or failure of what you do.

The answer is in the following diagram:

users and clients and u s

In the long term, users dictate what succeeds and fails. It is they who you work for and try to please. No matter how much you try to go your own way, the sheer number of people out there will override your preferences and go with what makes the most sense for them.

For the most part, there is an implicit understanding that this is how things are - how our world works. What you do is what your clients and users want you to do. Clients do what their users want them to do. Users do whatever helps them get what they want. This unwritten harmony described in my diagram has always existed and violators are simply removed from the picture.

I mentioned that users do whatever helps them get what they want. Let's state what our users want to see today:

Users want things that look nice and presentable. They want to see interactive content. They care about usability and accessibility. They even want to see things move around and play sound when appropriate. They do not want boring and bland. They want to see cool things on whatever cool device they are using.

The solution to this set of wants has changed frequently over the years, but the meta-point about the wants themselves has mostly stayed constant.

In the past, for creating the types of content users would want, you may have used Java:

slime volleyball

[ the Gears of War of my high school years: Slime Volleyball ]

 A bit later, you may have used Flash:


[ 2advanced is a classic ]

 A while later, you probably still used Flash with a little bit of HTML5 on the side:


[ vimeo combines great HTML and Flash videos seamlessly ]

Over the years, do you think your users cared that the content they were interested in viewing involved Java, Flash, or HTML5? Do you think they even noticed? The answer probably is NO.

What users wanted then and still want now is the ability to view content in the best way possible. They don't care how it gets done. If a technology isn't giving them what they want, they will migrate to one that does. For them, the technology used to create and deliver that content is a moo point.

But...but....we care about technology!

While users and clients may not care about technology, you and I do. The reason is that our ability to solve users' problems depends on our ability to master and use the right technology. Note that the "right technology" may be something you may not like or be familiar with.

 Every project is unique. Every audience you target may have different needs where certain technologies will simply work better than others. What works for an intranet in a closed environment may be different than something designed to target 18-25 year olds with a strong interest in music. That may be different than what you would use for something that works on a mobile device.

Our primary jobs are not to be experts in technologies and languages and tools. Technical expertise is a side effect of us being experts in solving problems. What you should do is be good enough to pick the right technology for the problem at hand and adapt when something new is needed.

This is because the technologies will change. Things you used once will lose relevance in the future. Something you dismiss today as being silly may end up becoming the "next big thing." Some of you already know this. Some of you don't.

If you are in the "don't" column and have run into choppy waters where a change is happening, I am not saying that the transition will be easy. If you staked a living delivering solutions using a technology that everyone seems to move away from, an involuntary transition may even seem scary.

The solution is simple but time-consuming: learn something new that will get you making things that people care about. As you will soon find out, many of the skills you have learned over the years will transfer over. The new frontier is not that much different than the one you just left. Some things will be better, some worse, and some will simply no longer exist.

Note that I am not even commenting on work companies are doing to create tools that make these types of transitions easier.

The only certainty we have is that these kinds of transitions happen all of the time, and they will keep happening into the future. For example, HTML5 is what many seem to be hedging their bets on today:


In the future, something else will come along that puts those bets aside. I guarantee it. This doesn't mean you ignore the past, abandon the present, and jump head first into the future.


Technologies change quickly. People's desires change less quickly. Instead of focusing a lot of attention on technologies, focus more on what people are interested in now and may be interested in the future. Adapt your technical skills as needed. Be water.

I strongly believe this ability to adapt is what separates a good designer/developer from a great one. I want you to be a great one.

If you have any comments about this article, feel free to drop a line on the Be Water thread.


Kirupa Chinnathambi
about | facebook | twitter
Awesome and high-performance web hosting!