Developers Need to Spend More Time on Low-End Hardware and Networks

Google is now shipping the Chromebook Pixel 2015 and it reminded me of something that greatly annoyed me at the GDG North America Summit 2015. This is a conference that Google puts together for people that organize Google Developer Groups across North America. Most of the attendees are developers (Android and Web). They were all excited about the just announced Chromebook Pixel (then called 2).

I committed something of a blasphemy when I said I was sorry to see a second model of the Pixel. The problem is that the Chromebook Pixel is much more capable than a normal Chromebook. Google really makes the Pixel only for use by Googlers and friends, such as many of the people attending the summit. These “friends” get these Pixels for free (for example when they attend I/O). While a few people do buy them, the pricing really makes them unreasonable to all but the most ardent Chromebooks fans. (I’m a big Chromebook Fan… but I’m using an Acer CB5-311 to type this post.)

So here’s the problem… the people that make software, web sites and Android apps all live on high-end hardware. The vast majority of these people live in areas with good LTE phone service. Almost all have high-end cell phones. Most enjoy very high-speed networks, such as Google Fiber. They have no idea what it is like to use lower-end things. Sure, they’ll talk about “testing” there, but that is nothing like “using” there.

As a developer I understand that certain kinds of tooling requires high-end computers. For Android and Windows development, I definitely reach for Core i5/Core i7 laptops and desktops. But I do try to spend as much time as I can on low to mid-range devices. For example, when I am doing development with Web Technologies, I usually do it from the Chromebook I’m typing this on. I remote into the development machines to run my tooling at higher speeds and do all the UI testing directly on the Chromebook. If it starts getting painful to test, then I see immediately that I need to optimize my app. Most of my tablets are low-mid range (most heavily used are Nexus 7, both 2012 and 2013). When I need to use a Mac, it is generally a rather old MacBook Air. My cell-phone is a Nexus 5 (now mid-rangeish) and when I replace it, it is going to be with a mid-range, Moto-G-ish sort of phone.

But even with my well-intentioned efforts in trying to live the life I’m preaching here… I fail. Especially in phones… the phone I get will have LTE. Most people, even in the industrialized world, do not have LTE!

Recently I was complaining about how software is continually bloated, focusing on WinJS and Polymer. But the problem is deeper than that, current popular development frameworks (Angular, Ember, and even Backbone), have unacceptable overhead on the most commonly used mobile devices.

The simple truth is that as developers we are often failing the majority of our users. Perhaps we should all have a day (say once a month) where we all use truly low-end hardware and networking? I personally would love to see Googlers use Gmail (web-based) on something less than Google Fiber… I bet those 20+ second app load times would quickly disappear.