EnhanceConf 2016 London

Last Friday I have been lucky enough to obtain a scholarship to attend the EnhanceConf. Based on the concept of progressive enhancement in web development, the conference was the first of its kind and gather a set of incredibly good speakers.

The principle of progressive enhancement encourages developers to first build applications that are simple and have great performance on any device and browser, even offline. It then slowly builds on top of the basic requirements to add enhancements suitable for the newest devices, latest browsers and fastest Internet speeds. You can find Aaron Gustafson’s article for more details on the concept, as he coined this term.

The learnings I have gathered from this conference are incredibly useful for my final year project. The biggest challenge for me is to deliver the fastest experience on mobile devices with low processing power and slow networks such as GPRS and 2G. The size and the number of HTTP requests should therefore be minimised as much as possible, making sure users get all the features they need without wasting their time or data.

By far the best talk of the day came from Jen Simmons, a web designer and developer with great experience and ideas. Her talk was entitled ‘Progressing Our Layouts’ and emphasised the fact that we are able to create amazing online experience with little to no JavaScript, by embracing the capabilities of CSS. I realise we usually underestimate the power CSS has and how beautiful it is to simply design in your browser. CSS has great error handling. As she outlined, if a CSS rule is not supported in the user’s browser, it simply is ignored. Nothing bad happens if instead seeing a border radius of 5px, they’ll get a square. On the other hand, if there is one error in your JS, your entire website can be compromised. Of course, that is the point of JS testing, but it is a nice example to outline the difference of using JS for enhancing a website. I very much agree with her also on the unnecessary extensive use of UI frameworks nowadays. I know they make life easier for many developers, but they also make all websites look the same. They lose their individuality and gain page weight.

My other favourite talk came from Stuart Cox, developer at Potato London, gave a very good presentation on progressive enhancement and fighting fragmentation. He presented the link between features (core functionality + enhancements) and capabilities (browser, device, human). He proposed the use of atomic enhancements (small enhancements that are either applied fully or not at all), feature detection (check on the user’s capabilities) and grouping of features as modules. An overall great philosophy towards web development and application structure.

Forbes Lindesay (Facebook) spoke about server side JavaScript, React and shell rendering. Oliver Ash, web developer at the Guardian, explained how they worked on the offline page of the online newspaper with the help of service workers. Also, during the morning session, two other great talks came from Stefan Tilkov on web architecture and how to use the browser smartly and Anna Debenham, who has conducted an in-depth study on console browsers and their use.

Overall, this conference was a great learning experience for me. It offered me an insight into where front-end is at the moment and where it is heading. Hearing from professionals with experience in this field, made me realise how important it is to always stay updated with the latest trends, keep up with development and be flexible and open to new ideas, while still having your own set of principles. In a nutshell, to adapt.

The organisers have also created a website dedicated to Progressive Enhancement, where the community can find out about interesting developments and events surrounding this concept.