A Shift To Web-First Development

As most of you know I’ve been “mobile first” my entire career. We developed our first apps for Newton and PalmPilot in 1997, although Apple cancelled the Newton before we shipped an app for it. We then developed for Windows Mobile and Windows, although our Windows version was designed for the pen-based tablets, not the desktop OS. This was followed by BlackBerry, iOS, and Android.

When we started developing Equals we started it as an iOS application. Multiple rounds of prototype development were done on iOS, where the web served primarily as connecting tissue, syncing templates across devices and giving our customers a read-only view of their notes so they could be followed.

I was always uneasy with this approach. There are significant problems starting a service on mobile devices. Here’s a few of them:

  1. Gives us massive scale immediately
  2. Requires a high level of polish
  3. Long release cycles
  4. Connects us only indirectly to the customer
  5. Offers only vanity metrics

When starting a new service, all of these are required in reverse. We can’t handle massive scale because we don’t know how or where to scale yet. Plus, we need to control who uses the app. We want a rough product to launch that can be revised quickly and easily. We need tons of customer touch points so we know whether we are on the right path. We need in-depth data and knowledge to refine our metrics, not vanity metrics such as downloads that tell us next to nothing.

Last year I fully realized the folly of my ways and we started making the shift to a “web first” approach. We had minimal skills here though. As of last summer I had never written more than three or four lines of JavaScript. I knew what responsive design was but had never thought about how to implement it. We did (and do) know Rails, CSS and HTML basics, so we weren’t completely starting from scratch, but all the same I knew it would be a difficult but necessary transition.

I lined up contract gigs that taught us HTML5 and got to use responsive design for the first time. We refined our skills for most of the year, iterating over development projects and working on Equals between the contract gaps. We have the skills we need now and are full-time on Equals. We will have a web version that runs on various desktop and mobile browsers available before April is out.

We still have plans for mobile-native versions of course, but this gives us the flexibility to build at our own pace, learning a ton, refining the features, and then make the best possible mobile apps we can when ready.

Two Days of Pain and Suffering, Windows 7 Edition

I forgot what a bear installing Windows is. Got back from vacation last week and had a very busy week catching up. We are trying to launch Equals this month so will be heads down writing code.

As apart of the testing process I needed copies of Windows with various versions of Internet Explorer so I can do appropriate testing. For this, I downloaded VirtualBox, installed it, and downloaded copies of IE specially provided by Microsoft for testing purposes. It’s a fantastic set-up and couldn’t be happier with how Microsoft is supporting web developers with this option. I accomplished this quite some time ago.

This means I had VirtualBox setup with copies of IE and still had Parallels setup with a copy of Windows 7 that I use primarily for bookkeeping purposes. (Quickbooks for Windows is still the best option.) I increasingly became frustrated with Parallels over the years. The app is slow, I find that after quitting it does weird things to my Mac, which doesn’t act right until I reboot, and they now install stuff that I don’t need and give me no means to turn it off.

I’ve been thinking for a while that I’d install Windows 7 in VirtualBox and uninstall Parallels altogether. I started the process Saturday and this morning, Monday, it is finally completed. The install went fine. The problem is the updates. Downloading one set of updates for Windows uncovers a bunch of additional downloads which uncovers a bunch of additional downloads, etc., etc., on and on, until eventually it stops finding downloads. This went on for nearly two days.

In the dark ages when I was stuck on Windows I remember going through this process about once per year. I’d wipe clean my drive and reinstall Windows. I forgot how time consuming this is and am glad that I rarely do it anymore. My Mac has never required a re-install of the OS.

I’m hoping this is the last time for Windows for a very long time.


My Technology Wish List

I’m a reducer by nature. I figure that’s because I like simplicity and getting rid of physical things simplifies life considerably.

About a decade ago I reduced a music collection of some 500 or so CDs down to a portion of a hard drive. A couple of years after that I burned out the DVD drive on a Mac mini by ripping some 300 DVDs to the same hard drive. Two massive collections down. This past year I took 1100 pictures in physical form (slide, negative and print) and sent them off to ScanCafe. They are sitting on two discs next to my desk right now, waiting to be imported into my collection and all the photo albums have been reduced to a small box. I will likely turn my sights to our book collection next, which has been reduced substantially since our college days, converting as much as I can of what remains to epub.

I have one very good reason for eliminating all this stuff and one silly reason. The good reason is that it all collects dust and when there are allergies in the house (my oldest daughter and me) anything we can do to eliminate potentially dusty things is good. The second, and silly, reason is that I once moved across country with only the things I could fit in the back of my car. There’s a part of me that wishes I could do that again.

One area that I’d like to reduce is the clutter around my tv set. I have a tv, an antenna, a receiver, a DVD player, a Roku box and an Apple TV. Plugged into the receiver are five speakers and a sub-woofer. Again, too much stuff. It’s not a big room so can’t help but wonder if a tv with sound bar and subwoofer would allow me to get rid of all the speakers and wires. And if Apple would release an Apple TV where I could plug in one of their mini DVD players, I could also get rid of my big honkin’ DVD player that takes up a whole shelf. I could get rid of Roku also if Apple TV would add Amazon Video. How awesome would that be? A TV, soundbar, subwoofer, antenna, Apple TV and a small DVD drive only, all except the subwoofer off the floor. [1] I’d probably mount the TV on the wall and build a small shelf for everything else. Oh, heaven.

Finally, while I’m making a list, I’m also ready for a new Mac mini. I wish Apple would release it already. I’m tired of waiting.

[1] I don’t have cable and haven’t for seven years. The antenna lets us pick up local channels. We got rid of our landline phone at least that long ago, too.

Tablets, Phones and Wearables

Benedict Evans has written some great stuff lately. Two articles in particular have jumped out at me. The first was Tablets, PCs and Office. In it Benedict talks about how the tablet discussion is reminiscent of the laptop discussions a decade or more ago. Which to get? In it he basically says that one reason to get a PC today is because Office (or Office-like) products work best on it but questions whether that is that the right decision point?

This brings us back to the mouse and keyboard that you ‘need for real work’, as the phrase goes. Yes, you really do need them to make a financial model. And you need them to make an operating metrics summary – in Excel and Powerpoint. But is that, really, what you need to be doing to achieve the underlying business purpose? Very few people’s job is literally ‘make Excel files’. And what if you spend the other 90% of your time on the road meeting clients and replying to emails? Do you need a laptop, or a tablet? Do you need a tablet as well as a smartphone? Or a laptop, or phablet? Or both?

Interesting, especially his discussion of Office.

In the second article I will point out today, called Cards, Code and Wearables, Benedict talks about the recently announced Google Watch and rumored Apple Healthbook. In it, he discusses how both are really the same product, focused on the phone as the source of processing power and how watches, apps and other things are all extensions of the phone itself. Near the end he philosophizes:

It seems to me that the key question this year is that now that the platform war is over, and Apple and Google won, what happens on top of those platforms? How do Apple and Google but also a bunch of other companies drive interaction models forward? I’ve said quite often that on mobile the internet is in a pre-Pagerank phase, lacking the ‘one good’ discovery mechanism that the desktop web had, but it’s also in a pre-Netscape phase, lacking one interaction model in the way that the web dominated the desktop internet for the last 20 years. Of course that doesn’t mean there’ll be one, but right now everything is wide open.

I’ve followed Benedict’s work for a while. I can see why a16z added him as a partner.

Scratch and ScratchJr

My six year old daughter sat on my lap yesterday after her half-day kindergarten class let out and wanted to help me program. So I had her do a little typing for me. Sadly, it wasn’t the slowest coding I’ve ever completed! I have a keyboard and fake monitor set up next to my desk and sometimes my youngest likes to pull up a chair and type away, pretending to be working next to her dad.

My eldest daughter, eight years old and in second grade, has also shown an interest in computers. She uses them at school more than at home. Here the iPads rein supreme. Both girls have had access to iPads since they were fairly young and use them with supervision, especially for math exercises and other academic pursuits. (Plus a few leisure time activities, too.)

Yesterday when my six year old and I were working together, I explained to her what I do. I told her I make the computer do things just like she makes paper do things. My tools are a keyboard and a mouse while hers are scissors and glue. She got that right away. She helped me change a couple of lines of code and she could see the changes immediately in the web browser. Her eyes lit up.

I’ve had this thought over the years but have not found the time to go explore: how could I get the kids into programming? They are so young right now, such early readers, and writing code “the traditional way” would be boring and hard for them to grasp. I remember Logo (although I never wrote code with it) when I was a kid but haven’t made the time to find age-appropriate programming tools for my girls.

Today, those tools found me. Fred Wilson blogged about a language called Scratch from MIT Media Labs. Scratch is specifically designed for kids 8 to 16, teaching them development in a visual style. MIT Media Labs has a Kickstarter going for a new project called ScratchJr, too. It’s designed for early readers, age 5-7. It’s reached its goal but I’m sure they could use more funds. I backed it this morning. Hope you will consider doing so too.