Setting disruptors to stun!
This slide deck is using the shower system - roll over the previews to see the notes and click any slide to go into presentation mode. Then use keys to navigate.
When the web came around it shook the foundation of IT at that time. World wide distribution independent of platform and environment? People allowed to write code without having a degree, a beard or suspenders? Unthinkable! Now we are the mainstream and the pendulum swings the other way - we are the disruption target and we lose our users to closed, specialised environments. Or do we? There is nothing stopping you from dazzling audiences with web technologies - all you need to do is to get back some of the excitement we felt when we fought the machine. In this keynote Chris Heilmann will show how you can get your web mojo back and reach a market of millions of new users that will be available to you this year. All you need to do is to give your web apps more love and stop trying to copy what you cannot deliver.
Setting disruptors to stun!
Chris Heilmann, Mozilla, HTML5Devcon 2013, San Francisco 02/04/2013
When I started web development it was a crazy time. There weren't many mainstream sites and it was considered almost Sci-Fi for a lot of people.
Over the years I heard over and over again that the web isn't enough and that real development only happens in higher, more sophisticated languages and using SDKs and IDEs and massive frameworks. Web developers were cowboy developers who don't have the insight to write "proper code" and for the main market we were just geeks who work on a geek toy.
The waiting game paid out…
Nowadays things are different, the web is mainstream and very much a part of life. Newspapers, TV stations, Commerce, Dating, Selling of your goods and research is done online. Everybody does something online and the people building these things are cool hipsters.
The reason for this is that the web is an incredible distribution platform. You can reach people 24/7, and it does not need much to go online. From internet cafes in third world countries to us with our fancy phones or laptops - everybody can get onto the web. Tim Berners-Lee showed that at the opening ceremony of the Olympic Games in London.
The big power of the web, which made it different from any other media before that is that the line between consumer and creator is very thin indeed. Publishing on the web is easy. So people did and still do it - a lot.
Then something happened. The mobile revolution came around and smartphones were the great new thing. Everybody needed to have one.
Smartphones are a huge success, there is no question about it. And people are mesmerised by them and are happy to use them all the time.
The form-factor was an issue though. The screens are small and we had to think of touch vs. click which meant simpler and larger interface elements. All in all a good thing.
Jobs' original vision - no third party native apps
Let's not forget that the smartphone revolution did start without the idea of third party native apps. Steve Jobs, visionary that he was, praised Safari as an integral part of the iPhone and HTML5 as the platform to build great apps and talk to native functionality.
Very soon after the original announcement, Steve Jobs got a lot of backlash in the company about the plan not to have any SDK. This was both from business but also from Apple developers who simply didn't want to give up the tried-and-true development environment they were used to. Web developers on the other hand loved the idea but soon realised that not all is as easy as it was advertised as especially debugging and performance testing of our mobile sites was harder than it looked. This got even harder when more mobile players came around.
A competitive, closed market
In order to understand the backlash from developers, it is important to understand the history. The mobile space is very much a competitive closed market which thrives on patents and software being unattainable to other players. A lot of that is based on making hardware and software one package and control the lot. This renders beautiful results, but it also means that when one gets outdated, the other dies out with it.
For someone who worked in such a closed environment fragmentation or having to support different hardware is an unthinkable hardship and annoyance. The idea is to build in one, highly specialised environment.
Shouldn't we cherish flexibility?
When we check though what is out there, shouldn't it be the choice of the user what to have? Or is it all about presentation? Ever noticed that every phone ad has phones from the front, the back and at an angle to show the depth. Ever noticed that they are still the same height? Does this mean phones get longer when you tilt them?
As a web developer, I was confused about a lot of this. I always cherished the idea that my content can be consumed on many devices and I knew that all I can do was to make the best effort to not deliver broken experiences. A perfect, one-size-fits-all approach is impossible. I researched and wondered why there is such a big fear of building flexible products. And thus I found "The story of stuff" and within it an interesting story. For decades now we've been manipulated not to try to build things that last.
Our enormously productive economy … demands that we make consumption our way of life, that we convert the buying and use of goods into rituals…
Victor Lebow, Journal of Retailing, 1955
Victor Lebow on Wikipedia -
Detailed article and original paper
Back in 1955 Victor Lebow wrote the idea in the journal of retailing that is still our guiding principle when it comes to production of things. The concept of in-built obsolescence means that products have to break in order to keep a constant flow of income.
An old, old idea (continued)…
…that we seek our spiritual satisfaction, our ego satisfaction, in consumption … we need things consumed, burned up, replaced and discarded at an ever-accelerating rate.
Victor Lebow, Journal of Retailing, 1955
This stands counter to anything the web is about. A web product doesn't get outdated or breaks - it is built to adapt, to be fluid. And thus it is hard to make it obsolete unless you bundle it in a much more fixed environment.
Planned or built-in obsolescence
Instilling in the buyer the desire to own something a little newer, a little better, a little sooner than is necessary.
Clifford Brooks Stevens, 1954
Planned Obsolescence on Wikipedia
Planned style obsolescence occurs when marketers change the styling of products so customers will purchase products more frequently. The style changes are designed to make owners of the old model feel out of date.
Clifford's work lead to perceived obsolescence. Making sure that buyers feel inadequate when they don't have the latest and greatest.
The systematic attempt of business to make us wasteful, debt-ridden, permanently discontented individuals".
Vance Packard: "The Waste Makers", 1960
There was already a backlash to the concept of money only being made by creating things that break or get outdated quickly.
As web developers I don't think that this is our struggle. We play a game where the cards are stacked against us. As the money is made by selling hardware and apps that run on the newest and coolest we will always be blocked out as we are the disrupting factor in this equation.
On the web, fragmentation has always been and will always be a given. You can not control the environment and the better you understand that, the more users you will reach.
The mobile web reminds me of the street in Temple Run - it is paved with gold just lying around, but it also has lots of stumbling blocks and holes.
We need to patch these holes and we need to ensure that what our web solutions can do on mobile devices is adequate to give people a really good experience. For this, we need to re-think our ways.
Take a look at these lines. Which one do you think is longer? The upper or the downer one?
Most likely you'd have said they are the same length. The reason is that this is a very known optical illusion. But in this case the first line is really longer. This is what I like to call the "too clever" trap. We learn something quickly and then we form a solution for that and carry this one over for years to come. On the web this is dangerous. We shouldn't look for traps, we should analyse and see what works now and in the future.
Many, many, many awesome solutions…
If you want to be professional, use:
Right now we are spoiled when it comes to innovation in the processes around web development. We have libraries, microlibraries, build scripts, preprocessors and even lots of new languages to patch the holes of the web.
Many, many, many awesome demos…
We also have our weekly inspiration of new cool demos that show what the web can do and we push the boundaries of what is possible.
We have an awesome overload!
You know what? I am getting an awesome overload here. We are too competitive on making amazing things to make our work easier and we're forgetting a few things.
Companies have a very hard time hiring at the moment - we just don't have enough people. It doesn't help us at all to breed a new generation of developers who are dependent on abstractions. What we do is confuse people before they get started. If we want the web to be the choice for the next generation, we have to stop selling beta platforms as the first thing to use.
The question is how can we keep the web the disruptor and free system it is right now? How can we build without There are a few ways.
First of all, we have to stop being scared. There is nothing new about native platforms and people getting excited about everything being better in a closed environment.
We had all of this before and there will be a backlash again soon. Sure, people now spend a lot of money on closed systems and it seems the move from desktops to mobile to tablets is complete, but darn it, think of the principle of in-built obsolescence. This is what is happening. So you have a choice – join the rat race and deliver, and quickly, or play a longer game.
The first step is to stop copying what native apps do. HTML5 and web technologies are flexible enough to support much more than native could ever do and we need to play it to its strengths.
Making of Fastbook
If you need to copy, show that you can reach at least parity if not make it a smoother experience.
Go where others don't go!
Comparing Firefox OS with Android or iOS head-on is therefore a pointless idea. The aim of Firefox OS is to replace feature phones in emerging markets. True to the main goal of Mozilla to keep the web open and affordable to everyone. It can not be that a means of mass communication and information is only for the rich in certain markets. The web is a voice for a lot of people who can not speak otherwise as their mass media is controlled. Therefore mobile web access needs to be affordable and easy for everyone.
Bring app discovery to the web…
Having a market is not enough. The search interface on the Firefox OS phone does not only group your apps for you - it is also a discovery interface for apps on the web. Where app markets were the Yahoo Directory for finding apps this is the Google. Imagine using the success of any web site to promote its app and vice versa. This is coming.
Mouse Lock API
Network Information API
Battery Status API
Push Notifications API
WebFM API / FMRadio
Ambient light sensor
Using WebAPIs to make the web layer more capable
The Web APIs available to hosted apps can already get you very far. A lot of them are already available across browsers and on Desktop, like the Battery API. Interesting are also Push Notifications and Vibration for interaction with the user. Privileged and certified apps can access everything.
new, f.e type: “websms/sms” or “webcontacts/contact”
Web Activities is a standards proposal to trigger a user interaction that is part of the operating system. Instead of using the functionality of the OS you use it with a user-initiated action. That way you don't have the security issue you'd have by accessing the functionality on behalf of the users and without notifying them. This is a concept from Android where it is called intents. Chrome until recently also had Web Intents but pulled them a short while ago because of UX issues on the Desktop.
When initiating a Web Activity, the end user gets prompted to allow it. For example a pick activity would ask them to get images from the pictures or wallpaper folder or take a new photo. This is the beauty of activities - as a developer I don't care where content comes from or where it goes. Instead I leave that up to the user. Much like a right-click on any file on your hard-drive allows you to open it in your program of choice.
Apps built for Firefox OS also run on Android devices with Firefox installed, which means you can test your apps on your own phone easily.
You will not get all the functionality, but you get support for HTML5 back to Froyo.
Build context-aware apps…
What I don't see yet is apps that really change according to what environment they are used in. Yes, we use responsive design to resize and hide and show elements but there is a massive difference in how people use a mobile to how they use a desktop. A good HTML5 app gives the best interface according to the context and the ability of the device. This can not be done in native apps.
Fix the first-generation mobile web
Trust and help the platforms
For the web to move on we need browsers to continuously evolve. Functionality that is in a library is nice, functionality that comes out of the box with browsers is better. Use new tech, file bugs and stop simulating technology before it is ready.