Sep 23

Why install time permissions suck. Why we wanted access to contacts in the Walmart app

Tech, UI / UX, Walmart with tags: 5 Comments »

I have always disliked install time permissions. The user is asked to make a decision up front that:

  • They don’t have any context around
  • They can easily forget
  • They often say “yes” just because they wanted to download the darn thing
  • There is no way to tweak the permissions


This reared its head today. We released a new version of the Walmart Android app. In there we are trying to make the user do as little typing as possible, so when you create a new address there is an option at the top to grab the address from your contacts. There is a good chance that you are sending the goods either to yourself (home, business) or to a friend / family member…. and you may have that info already available.

The problem is, that for us to get that information, we need to blanket ask every user for that access on install. Many users are privacy conscious and I respect that. They should be able to say “thanks, but I don’t want you to have access to my contacts”. We are using a contact picker UI, so the user is explicitly tapping to launch this and selecting the contact, so we don’t need access to anything other than what the user would select. Why do we need READ_CONTACTS?

Why can’t I let those users NOT allow the application access to contacts, but still be able to do everything else? The zero-sum game is nuts.

This shows up all over the shop. If I have an application that happens to have one screen that would be able to help the user by accessing the Geolocation API…. I have to ask for that up front. That screen may be used 0.0000001% of the time, and it just may be aided by that (not required to function).

We need to fix permissions. Would it be so hard to let us say “these permissions are nice to have and can even be on demand” so users can check or uncheck permission there? (this has happened to others too, and we should have realized it would be an issue, so that side of things is our bad :/)

For our users who were scared off when they saw the request for that permission, I am very sorry. We are looking to setup a new build that doesn’t require it at the expense of the convenience feature.

On another note, I am super jazzed at the hard work that went into this release. This app has a bunch of native and Web integration. Our Android and mobile Web teams have worked together to great affect, and although this is just the very tip of the iceberg, it has been great to see!

Remember, if you want to do Android, iOS, or bleeding edge mobile Web development that reaches millions of users globally, please let me know. Join us, the water is warm!

Jun 09

Helping Set Direction at Walmart; Ben and I and our (surprising!) new role

Tech, Walmart 7 Comments »


Ben and I, and the entire Set Direction team are now part of Walmart. We are now leading the mobile engineering effort and have set off on a journey to revolutionize mobile commerce at the largest company in the world.

Now, you may be a touch surprised. “You just started!”, “Walmart?”

To be honest, if you had told us that our career would take this turn 5 months ago, we would have been surprised too.

Here is what happened. After leaving Palm/HP, we had some hypotheses around the difficulty that developers were having in a modern world that contains a diversity of platforms. Not too long ago, most businesses were building Web sites, and the diversity was around the number of Web frameworks. Many companies are now in a post-Java malaise and there are a huge number of very viable server solutions for developers to choose from.

On the client, you need a Web presence, but may also need to get onto iOS, Android, and even Blackberry, WinPhone, webOS and friends. These new platforms are amazing for developers in that they come with low-friction monetization affordances, but they are very different technically. The Web has the opportunity to be a great cross platform solution (again!) but there are real trade offs between Web vs. native, and it very much depends on the type of experience you are going for, your business needs, and even your personnel.

We set out to explore the entire stack, from the clients all the way to service creation that fits in to the unique needs of mobile. To test out the hypotheses we took on a small number of clients ranging from small startups to the Fortune 50. One of these clients was Walmart where we teamed up with Paul Cousineau (former product director for webOS), someone we rated highly from our time at Palm.

We quickly learned that Walmart was very serious about a quest to use the mobile revolution to make commerce a fantastic experience for their customers: whether that is helping to get the most out of their store visit, or buying goods from (or the many worldwide properties that are part of the Global eCommerce group). We had conversations with executives all the way to the top, and we heard a strong message: there is a belief that the advent of mobile could be larger for commerce than the years where the automobile enabled true reach to even rural America…. a time that launched Walmart on its path to the top.

We got to know other members of the team over the last few months, and a conversation started around Walmart acquiring the Set Direction team to accelerate their vision. We had discussions about the way that we think product should be created, about the role of open source, on how we like to build teams, and Walmart was very much aligned. They really want to build something special here.

This all culminated with us signing up to build a world class mobile group, backed by the fantastic resources of Walmart. We are joined by some other new faces. The Kosmix crew are top notch engineers with careers building mechanical turk, various search engines, and most recently a real-time social genome. Social and mobile can fit hand and glove, and we are very excited to work with them as part of Walmart Labs.

What does this mean for our other activities?

  • We recently launched FunctionSource to cover the Web and mobile space. We have a passion for being part of the community and that won’t change. It has been fantastic to get back into the game post-Ajaxian, and we look forward to doing some fun experiments on f{}. We will be open sourcing the technology behind it, which includes a particular fun “view server” that allows us to enjoy writing the application using CoffeeScript, Backbone, and modern client Web technology…. but serializing that out to “legacy” browser such as…. the Google Bot.
  • Conferences? We love being part of the community. That can be on Twitter, FunctionSource, but very much speaking and participating at conferences and user groups. We have a lot of exciting work to do at Walmart, but we want to share some of that with you and learn from you too!

We have a mammoth task to make the most of the amazing devices that consumers have, and the massive amount of data (internally from Walmart itself, but also externally across the Web). We want to build delightful products using the best technology possible. Walmart also has a global reach, so we need a developer platform that scales.

I am obviously excited to continue to work with my friend and long time partner-in-crime Ben Galbraith as we take on this new challenge. Here you can read his thoughts on our new roles.

Finally, we are looking for like-minded developers to join us on this mission. If you look to take on some hard problems using leading technology surrounded by fellow technologists, we are looking for people like you. We care equally about: the craft of software, building great products, and having great fun along the way.

You will have access to real scale. Our iOS application has millions of downloads, and we recently released an Android application that jumped into the top shopping applications list in short order. And of course, don’t forget the mobile website, with an epic number of users as customers. We have big plans for that experience.

Please reach out to talk more about joining the team.