Improving performance; managing expectations; being responsive; work in progress; and fear, uncertainty and doubt (#MKGN)

I can’t believe that the quarterly Milton Keynes Geek Night is nearly upon us again. I usually try to blog about the evening but I’ve failed spectacularly on recent attempts.  I might fail again with this week’s MKGN – not because I’m slow to get a blog post up but because the tickets “sold” out in something crazy like 2 minutes…

September’s Geek Night was up to the usual high standard (including the return of David Hughes – seems you can’t escape that easily!) but included one talk in particular that stood out above all of the others, when Ben Foxall (@BenjaminBenBen) showed us (literally) the other side of responsiveness… but we’ll come back to that in a moment.

Back to front performance

First up was Drew McLellan (@DrewM)’s take on “back to front” performance. You can catch the whole talk on Soundcloud but for me, as someone who runs a fairly shoddy WordPress site, it got me thinking about how performance is not just about optimising the user experience but also about the back end – perhaps summed up in one of the first points that Drew made:

“Website performance is about how your site feels.”

That may be obvious but how many times have you heard people taking about optimisation of one part of a site in isolation, without considering the whole picture.  As Drew highlighted, performance is a feature to build in – not a problem to fix – and it’s also factored into search engine algorithms.

Whilst many performance gains can be found by optimising the “front-end” (i.e. Browser-side), there are some “back-end” changes that should be considered – sites need to be super-fast under normal load in order to be responsive under heavy load (quite simply, simultaneous requests affect responsiveness – they use memory and the quicker you can process pages and release memory, the better!).

First up, consider hosting. Drew’s advice was:

  • Cheap hosting is expensive (shared hosting is cheap for a reason).
  • Shared hosting is the worst (rarely fast) – think about a virtualised or dedicated server solution instead.  Constrain by CPU, then RAM, not disk space (that should be a red flag – it’s cheap, if not much is allocated it shows lots of people crammed on a server).
  • Consider what your project has cost to build when buying hosting! Use the best you can afford – and if they advertise with scantily clad ladies, they’re probably not very good (or to be encouraged)

Next, the content management system (CMS), where Drew says:

  • Think about the cost of external resources (going to database or web API, for example). Often these are necessary costs but can be reduced with careful architecture.
  • Employ DRY coding (don’t repeat yourself) – make sure everything only has a single representation in code. Do things once, cache and reuse (unless you expect different results). For example, if something doesn’t change often (e.g. post count by category on a blog), don’t calculate this on every page serve – instead consider calculating when adding/removing a post or category (called denormalisation in database terms)… be smart – consider how real-time is the data? And are people making decisions using this data?
  • Do the work once – “premature optimization is the root of all evil” is actually a quote from 1974, when line-by-line optimisation was necessary.  Focus on the bottlenecks: “premature” should not be confused with “early” – if you know something will be a bottleneck, optimisation is not premature, it’s sensible.
  • Some frameworks focus on convention over configuration (code works things out, reduces developer decisions) – can lead to non-DRY code – so let’s make programming fun and allow the developer to work out the best way instead of burning CPU cycles.  “Insanity is doing the same thing over and over again and expecting different results”.
  • The Varnish caching HTTP reverse proxy may be something to consider to speed up web site (unfortunately Drew ran out of time to tell us more – and my hosting provided found it caused problems for some other customers, so had to remove it after giving it a try for me)

In summary, Drew told us to care about front end optimisation; be careful about setting cookies and serve assets from cookieless domains; be smart about server headers; use CDNs to outsource traffic; GZip content; JavaScript at bottom of page and minimise it; test with PageSpeed and YSlow; ignore bits that make no sense for responsive web design.  But, importantly, don’t forget the back end – hosting, CMS, stay dry (do it once), a few minutes configuring up front saves wasted time later, and optimise early. In short – front end performance can’t make up for slow servers!


Related reading: check out Kier Whitaker (@KierWhitaker)’s  adventures with Google Page Speed in my write-up from MK Geek Night 4

Managing client expectations

The first of the five-minute talks was from Christian Senior (@senoir – note the spelling of the Twitter handle, it’s senoir not senior!).  Christian spoke about managing client expectations.  Whilst my notes from Christian’s talk are pretty brief (it was only 5 minutes after all) it certainly struck a chord, even with an infrastructure guy like me.

Often, the difficult part is getting a client to understand what they are getting for their money (“after all, how hard can it really be?”, they ask!) – but key to that is understanding the customer’s requirements and making sure that’s what your service delivers.  Right from the first encounter, find out about the customer (not just who they are, what want, how much money they will spend – but browsers, devices available, etc.) and try to include that detail in a brief – the small things count too and can be deliverables (incidentally, it can be just as important to distinguish the non-deliverables as the deliverables). Most of all, don’t take things for granted.  My favourite point of the talk though, was “talk to customers in a language they understand!”:

Or, to put it another way:

“Work in code, not talk in code!”

The other side of responsive

As I mentioned in my introduction, Ben Foxall (@BenjaminBenBen)’s five minute talk on “the other side” of responsive design was nothing short of stunning. If I ever manage to deliver a presentation that’s half as innovative as this, I’ll be a happy man.  Unfortunately, I’m not sure I can do it justice in words but, as we know from Sarah Parmenter (@Sazzy)’s talk at MK Geek Night 5, responsive websites provide the same content, constructed in different ways to serve to multiple devices appropriately.

  • Ben got us all to go to a site, which reacted according to our devices.
  • He then showed how the site responded differently on a phone or a PC – choose a file from a PC, or take a photo on a phone.
  • He tweeted that photo.
  • He showed us the device capabilities (i.e. the available APIs).
  • He updated his “slides” (in HTML5, of course), interactively.
  • And projected those slides in our browsers (via the link we all blindly clicked).

Actually – Ben did so much more than that. And thankfully he blogged about what he did and how he did it – I recommend you go take a look.

In summary, Ben wrapped up by saying that “responsiveness and the web needs to use the capabilities of all the devices and push the boundaries to do interesting things”.  If only more “responsive” designers pushed those boundaries…

One last thought on this topic (from Brad Frost, via Ben Foxall’s MK Geek Night talk), is contained in these three images (provided under a Creative Commons attribution license):

  

Work in progress

Following Ben’s talk was always going to be a tough gig.  I’m not sure that I really grokked Tom Underhill (@imeatingworms)’s “Work in Progress” although the gist seemed to be that technology gallops on and that we’re in a state of constant evolution with new tools, programs, apps, books, articles, courses, posts, people to follow (or not follow), etc., etc.

Whilst the fundamentals of human behaviour haven’t changed, what’s going on around us have – now we need more than just food and warmth – we “need” desktops, laptops, smartphones, pink smartphones, smart watches.  Who knows what’s in the future in a world of continued change…

Constant change is guaranteed – in technology, social context and more. Tech is a great enabler, it could be seen as essential – but should never replace the message. Brands, experiences and products change lives based on the fundamentals of need.

Hmm…

Interlude

The one minute talks were the usual mixed bag of shout-outs for jobs at various local agencies (anyone want to employ an ex-infrastructure architect who manages a team and really would like to do something exciting again… maybe something “webby”?), Code Club, the first meeting of Leamington Geeks, and upcoming conferences.

Fear, uncertainty and doubt

The final keynote was from Paul Robert Lloyd (@paulrobertlloyd), speaking on FUD – fear, uncertainty and doubt. Paul makes the point that these are all real human emotions – and asks what the consequences of abusing them are. He suggests that the web has been hijacked by commercial interests – not only monitoring behaviour but manipulating it too.

Some of the highlights from Paul’s talk make quite a reading list (one that I have in Pocket and will hopefully get around to one day):

  • Jonathan Harris’ modern medicine considers the ethical implications of software. Even a default setting can affect the daily behaviours of thousands of people.  Facebook asks its designers about the “Serotonin” of new features – i.e. how will it affect how we behave.
  • As the web is largely unregulated, it’s attractive to those who want to increase their personal wealth; so we have to be optimistic that there are enough people working in the tech sector with a moral compass. Arguably, the Snowden leaks show that some people have integrity and courage. But Paul is uncertain that Silicon Valley is healthy – “normal” people don’t see customers as data points against which to test designs – for example a team at Google couldn’t decide on shade of blue so they tested 41 shades (and border widths). Paul also made the point that the team was working under Marissa Mayer – for a more recent example witness the Yahoo! logo changes…
  • Then there are the “evil” social networks where, as Charles Stross highlights, “Klout operates under American privacy law, or rather, the lack of it”.
  • Paul says that The Valley operates in a bubble – and that Americans (or at least startups) skew to the workaholic side of things, viewing weekends off as a privilege not a right. He also suggests that the problem is partly a lack of diversity – The Valley is basically a bunch of Stanford guys making things to fix their own problems. Very few start from a social problem and work backwards – so very few are enhancing society; they’re making widgets or enhancing what already exists. Funding can be an issue but governments are seeing the tech sector as an area of rapid growth and it’s probably good not to be aligned to a sector where you can launch start-ups without a business case!
  • Lanyrd shows that it is possible to start up outside The Valley (although they have been bought by Eventbrite so have to move) [TweetDeck is another example, although bought by Twitter] but Silicon Valley arrived by a series of happy accidents and good luck/fortune – it’s important that the new tech hubs shouldn’t be a facsimile of this.
  • We trust Yahoo! by putting photos on Flickr but they also have form for removing content (e.g. Geocities) – but what happens when your service is closed down? Is there something morally wrong with closing sites containing thousands of hours of individuals’ comments, posts, etc.? Shouldn’t we treat data like it matters, allow export capabilities and support data rescue?
  • Then there’s protecting out data from Governments. Although conducted before the Snowden leaks the Electronic Frontier Foundation’s annual survey asks “who has your back?” – and, although it’s still young, it seems companies are starting to take notice.
  • Choose your services wisely – we (the geeks) are early adopters – and we can stop using social networks too.  It’s easier to change services if data can be exported – but all too often that’s not the case so you need to own your own content.
  • We all have the power to change the web to the way we want to see it, says Paul – all we need is need a text editor, an FTP client and some webspace. In the wake of the NSA revelations, Bruce Schneier writes in the Guardian how those who love liberty have to fix the ‘net.

Paul’s slides are available on Speaker Deck.

So, what’s next?

MK Geek night #7 is on Thursday 5 December featuring:

together with five minute features from:


Even if I don’t manage to get there (or if I do and am a bit slow blogging) you can find out more on the MK Geek Night website on Twitter (@MKGeekNight), or Soundcloud (on the MKGN stream).

Related reading: James Bavington has another write-up of MKGN #6.

[Update 7 December 2013: Added links to Paul Robert Lloyd’s slides and to James Bavington’s post]

Leave a Reply