Sunday, 23 September 2012

Forgiving Design and Reversible Choices

Yesterday as I was ruminating on topic of this post, I wandered into a large supermarket and headed downstairs to pick up some large bottles of juice. Rushing along the drinks aisle I realised I probably should've picked up a basket at the entrance. Fortunately, the supermarket had allowed for this slip of judgement and had a stack of baskets waiting by the bottom of the escalator.

They had understood that shoppers make mistakes and designed the store in a way that forgives these mistakes.

When designing any user journey, it’s vital to think to think about how fallible humans will use your product in practice. Don Norman devotes a whole chapter to this in The Design of Everyday Things. Often a tiny fix can result in a significant improvement in user experience. You can either design your processes such that errors can easily be rectified later (as with the shopping basket example), or you can allow users to immediately reverse an action that they’ve made by accident.

One major benefit of this approach is that it immediately makes users more comfortable in exploring your product, knowing that nothing they do is irreversible without warning (assuming you're consistent in this!)

A few well known examples should make this clear

1. Gmail’s “undo” feature.

Almonst any significant action in Gmail gives you the option to undo it immediately. Obviously this is a feature that most desktop software has had for years, but for some reason it’s still uncommon in web applications.

Most famously, simply by introducing a short time delay, Gmail allows you to undo the sending of an email, letting you to claw back that hasty rant or add that missing bullet.

2. Facebook’s “Edit comment” feature.

Hit return thinking it would insert a new line rather than submitting your comment? Realised that without that final emoticon people might not realise you're joking? No problem, there’s an edit link right there.

3. Chrome’s "Reopen Closed Tab" feature

Ever closed a browser tab by accident? Ctrl-Shift-T in Chrome will bring it right back. A lifesaver.

To err is human

Next time you’re designing a user flow, see if you can find it in your heart to forgive your users their little mistakes. They’ll love you for it.

Sunday, 13 May 2012

Encouraging an Adversarial Environment

A few years back I was working on a project managing a development team. We’d recently had junior developer join the team, and one day he came over to me, looking a little troubled.

“Zeshan, do you think we don’t get on very well?”

“What makes you say that?” I replied

“Well, somebody mentioned that we’re always arguing”

What he thought of as arguing, I considered to be robust debate. He was bright guy, but inexperienced. He’d frequently come up with crazy ideas, many of which were unworkable. But the important thing was that he came up with ideas. We argue through them, and more often than not, once I’d explained why a particular solution wouldn't work, he’d accept it and move on. Similarly I got into the habit of using him as a sounding board for solutions to problems, and he’d often have good criticisms.

More recently at TrialReach, I joked to one of my colleagues that we have at least one big argument in the office a day. I think this is great, and extremely important in both startups like ours, and larger companies too. I get some funny looks when I tell people that we had a great argument at work today; presumably because the word argument tends to carry negative connotations. However it’s not that we have a great work environment despite our arguments, but rather because of them (amongst other things).

The key is that arguments always need to be about the substantive matter at hand, not the people arguing the position. Every now and again I find myself arguing one side with a colleague, only to find that halfway through we've swapped sides. Adversarial discussion should not be seen as a competition where one person wins over the other, but rather a tool to determine the best possible course of action. This demands a level of intellectual honesty and maturity on both sides, as well as the ability to separate the person from the argument.

Encouraging this kind of adversarial environment is particularly important at a startup because most startups are built on a shaky foundation of unproven hypotheses and unverified assumptions. There’s nothing wrong with that, but it’s vital that these hypotheses and assumptions are made explicit, and adversarial discussion is a great way to to drill down to these.

Note I’m not advocating argument simply for the sake of argument. It’s as important a skill to understand what needs discussion and what doesn’t. When it’s late on a Friday evening, and you find yourself arguing about the size of a font, then it makes sense to step back and realise it’s unlikely to make a huge difference in the grand scheme of things, and can always be fixed later.

Of course, what I'm suggesting here is nothing new. Socrates was doing this 2,500 years ago and most law and business schools use this approach to teach case studies.

Disagree with any of this? I’d love to hear your argument.

Monday, 30 January 2012

Go learn something

As an undergraduate at Imperial in the late 90s, I recall having a conversation with a professor asking why the university didn't put past exam papers and lecture material online. He informed me that the department was looking into the matter, but needed a way to ensure outsiders couldn't gain access to the material. He seemed oblivious to the irony of a seat of learning trying to keep education secret, out of the hands of those who couldn't pay or meet our entry standards. It seemed odd to my idealistic teenage ears, and it still seems odd to me now.

Fortunately, the world moved on from such medieval attitudes to learning. MIT led the way in 2002 with their open courseware initiative, and in the past decade we've seen huge growth in the availability of top quality course material online. Nowadays we've moved well beyond lecture notes to videos of the lectures themselves. All students can now have access to the best professors in the world. For those of you who spent time wrestling with the joys of linear algebra as a student, there’s a good chance you used Gilbert Strang’s Introducton to Linear Algebra. Now you can see the man himself lecture the topic, thanks to MIT OCW. Last year, Stanford opened up its AI course to the public, not only uploading recordings of lectures, but allowing interaction with the teachers, issuing and grading exams, and encouraging people to form remote study groups.

Nor is this wealth of material constrained to the technophile sciences. A quick look at iTunes University reveals lecture courses on all manner of subjects encompassing the humanities and social sciences. University courses as well as popular introductions to various topics abound. In the weeks leading up to a trip to China last year, I went through the episodes of Lazlo Montogmery’s China History Podcast series, covering China from its early mythical dynasties through to the modern day.

Understandably, not everyone may feel up to the challenge of doing an undergraduate level course in their spare time, but thanks to Khan Academy, you can now study topics from a primary school level upwards. Never understood how to do long division? Let Salman Khan teach you in the embarassment free environment of your living room.

No discussion of online education would be complete without mention of TED. At no other time in our history could one so easily access speeches and lectures given by the leading thinkers of our day in person. If you've not yet had the pleasure, go pick a list of top TED talks and watch one a day for the next month. It will be worth the investment of your time.

Education is not something that should stop at the age of 20, or worse still, even earlier. By this I’m not suggesting that we should all spend our time in full time study for longer. Rather I mean that education no longer has to take place only in universities, nor does it have to be done full time. But before we go all wide eyed at this upcoming age of enlightenment, let us be clear - listening to a podcast on Number Theory will not turn you into Karl Friedrich Gauss. Education still requires active participation. Technology can make opportunities available, but there's no substitute for the hard work it will take to master these topics.

We're repeatedly told that the driving force for all modern economies is a highly educated workforce. Klaus Schwab, founder of the World Economic Forum, believes that talent rather than capital is our most important resource. Some in the US have suggested that education should be considered a national security issue. Everyone that has the ability to view this blog post has the ability to educate themselves online.

Whether you chose to avail yourself of these opportunities or not, I guarantee you this: on the other side of the world, in neighbourhoods you've never heard of, there are kids drinking from this firehose of knowledge. One or more of them will grow up to become the next Newton or Einstein.

Never has so much high quality knowledge been made available to so many at such little cost.

So what are you waiting for? Go learn something.

Friday, 30 December 2011

The Scourge of Unnecessary Usernames

The signup process for a website needs to be as smooth as possible. You’ve got a user to the point where they’re about to sign up. You've mastered the art of lazy registration. Every field you add in a signup form is one more reason for user abandonment. So why is it that many sites still prompt you for a username as well as an email address when signing up?

We've all been there. I guess most of us have a standard username we like to use in these situations. john, oh it’s gone, lets try johndoe, nope that’s gone too, john2148 it is then. Will be sure to remember that one next time round.

In most cases there's no need to force users to come up with a username, since there’s already a unique identifier they've already memorised - their email address. Chances are you’re going to ask them for this anyway.

The only reason to ask for a username in addition to an email address is if you plan to publicly display this on your site (e.g on a forum). Here it makes some sense, but even this could be accomplished by using the email address for login and allowing the username to be an alias (unique and unchangeable if necessary).

It’s possible that people may want to have multiple accounts, but for most applications this is unlikely or even undesirable. In cases where people e.g. need a work account and a personal account, they’ll probably have corresponding emails.

One other option is doing away with passwords altogether, especially where the site is one that will be used rarely (e.g. travel insurance). In cases like this you could just request an email address when users want to login and send them a link which allows one-off access to a time-limited session. If your password reset procedure only requires access to the user’s email address then you lose no security by doing this.

Of course, if you do away with usernames, you need to think about how to deal with people that have lost access to their email addresses (e.g. if they used a work address for a personal service). But depending on the size of your userbase, this may happen infrequently enough that you can handle it manually.

The other increasingly popular mechanism is to allow people to login with a 3rd party service like their Facebook or Twitter account. This is a great idea, especially if you want to encourage people to use their real identities, but in most cases you’ll still need to offer the option of a local login to avoid losing users that don’t have or are unwilling to use such services.

So please, let's just do away with unnecessary usernames.

Monday, 12 September 2011

How Apple are storming the enterprise from the inside

Earlier this year I was working with a company that was in the throes of trying to put together a mobility strategy. In truth they already had a mobility strategy - employees had laptops with access to a VPN for when they were using public wifi. Blackberrys were the phone of choice, and OWA let employees gain access to email from non-company computers. Sounds like mobility was pretty well covered, no?

This would have been fine except for one little thing. Employees were asking questions about iPhones. Some had discovered that asking the right person in the networking team would reveal a little known publically accessible IMAP server that would let them get company email on their iPhone. When the IT department decided to enforce policy and shut this down, there was an uproar.

The more enterprising sales reps were starting to bring in their own iPads loaded with company demos and presentations to sales meetings. Others started following suit when they noted competitors doing the same. In a chat with a national sales director, he mentioned that with many customers, turning up with an iPad definitely made a positive impression, and he was keen to see an official solution put in place.

Since then I've seen this same story repeat itself at a couple of large companies, especially with the iPad. Whereas most of the functionality of the iPhone can be matched by a Blackberry (at least for business purposes), the iPad stands head and shoulders above the competition. Moreover, many employees have positive personal experience of using the iPad, so it's a natural extension to bring one in to work, much like a favoured pen or notepad.

The typical concerns around Apple technology in IT departments tends to centre around security risks. How do we manage access? Can we remotely wipe them if they are lost or if an employee is terminated? Can we restrict the types of applications that can be installed? RIM with their combination of BlackBerry enterprise server (BES) and the ubiquitous BlackBerry devices have long held sway over this market with ready answers to all of these questions. Now with the help of various partners, Apple seems to be attacking these concerns head on.

It's tough to see how RIM can compete effectively. Certainly the promise of flash on the BlackBerry Playbook isn't enough. In fact it rarely even comes up as a concern.

Enterprise software vendors also seem to know which way the wind is blowing, and many seem to be focussing on an Apple iOS first strategy, or even an iOS only strategy. Some are hedging their bets by sticking to cross platform HTML5 apps, and it's not yet clear how this will play out compared to native applications in the long term. Very few software companies are leading with a BlackBerry app first.

It's a testament to Apple's design excellence that they've managed to transform their consumers into enterprise salesmen. Nowadays for most CIOs, the question isn't really one of whether iOS devices should be allowed within the enterprise, but rather how best to deal with the inevitability of their arrival.

You might wonder where Android devices fit in to all of this. Perhaps the lack of a single clear competitor to the iPhone and iPad is the problem, but for whatever reason, the clamour seems to be for IOS devices rather than simply for non-RIM devices. It's possible that the demand for iOS devices might lead to a multi-platform enterprise rather than a future where we simply swap the RIM hegemony for an Apple one. BlackBerry devices will no doubt have many loyal adherents who will be loathe to give up their cherished keyboard, and thus a more inclusive mobility policy may be a likely solution, which would be to the benefit of Android manufacturers as well as Apple.

Wednesday, 17 August 2011

Transactional email should be fast

A few weeks ago I needed to renew an insurance policy online. Inevitably, I'd forgotten the password so I clicked the reset password link and tabbed over to my inbox to pick up the email. Nothing there. Click to refresh a few times. Still nothing. Read some other emails that catch my attention and head back to inbox. Zilch. Head back to website and click password link a few more times for good measure. Check spam folder. Lots of Viagra offers but no insurance password reset. Give up and go outside to enjoy the sunshine.

Check my phone later that evening, and see that the password reset finally turned up. In this case I didn't end up going to a competitor or abandoning the purchase altogether, but one can imagine that delay in sending email reminders could easily translate into website or shopping cart abandonment.

I'd mostly forgotten about this incident and wouldn't have bothered writing about it, except that a similar thing happened again today, this time with an application that I was installing on my laptop. The user set up process required me to click on an activation link - pretty standard stuff. Once again, heading to my inbox showed nothing for a good hour or so.

If you're going to make email an integral part of interactive user process, then it must be immediate. Although you can't guarantee the entire end-to-end delivery, in this day and age there's no excuse for any holdups to occur on your end. Tools like SendGrid, Postmark, or Amazon SES make transactional email a breeze. Measure performance of email delivery just as you'd measure performance for the rest of your application. You wouldn't expect a user to wait 30 minutes for a page load; don't make them wait for email either.

Tuesday, 26 July 2011

B2B enterprise sales, a view from the inside

I've recently been doing some consulting work for a large multinational, helping them select a CRM product and vendor. In the interests of confidentiality, I won't say too much about the client or the vendor, but I hope the following inside view might help startups working on B2B sales. Mostly this relates to large scale software sales (supported by services), but much of it will apply to smaller scale items and pure services too.

Timescale and budgets
Almost everything in large companies takes a long time. Enterprise sales is no exception. In particular for significant expenditure, departments need to include it in their budget, which may only be set yearly. Additional spend not on the budget will always be a harder (but not impossible) sell. Depending on the overall amount, various levels of approval need to be sought, potentially up to board level. Breaking up your sale into smaller pieces may avoid some of this. For initial one-off costs you may also be able to get money from budgets set aside for discretionary spending.

Total Cost of Ownership (TCO) is the name of the game. Whilst you might be focussed on your per-seat price (which is of course important), the buyer is really focussed on the total cost. In particular this includes the cost to implement, cost of maintenance and support costs. Customers can be paranoid about "hidden" costs that become significant over the lifetime of the project. Typical enterprise systems are expected to have 5-year lifetimes, and it's the TCO over this period that is relevant. Costs will also need to be broken down to help determine what can be capitalised, what can be re-charged to departments/subsidiaries etc.

Usually seen in a competitive tendering situation, Requests for Proposals (RFPs) and their pre-cursor, Requests for Information (RFIs), are often a necessary evil. Ideally you want to be able to avoid these altogether, but often for any large scale purchase, governance requirements mean that you will have to deal with them. In some cases these can be a bit of a sham, where there is a strong "default" decided in advance and the rest are just there to make up the numbers and provide negotiating leverage. In the case I was working on, the entire vendor selection process was taken very seriously internally, with the decision still open right to the very end. As a vendor it's hard to know which of the two situations you're in so best to always take it seriously until you get a definite signal (inside knowledge etc) to tell you otherwise.

In the worst case the customer produces a heavy document laden with unrealistic expectations, and the respondents answer "yes" to every requirement whilst shovelling in a good dose of marketing and sales copy wherever they can. There are usually faults on both sides, but on the sales side I would suggest

- Understand that answering "no" for things you just can't or won't do is perfectly fine and comes across as much more honest than somebody that says they can do everything (unless of course they can, say in the case of a relatively simple RFP). Feel free to suggest alternative options and 3rd party partnerships if appropriate.

- Don't cut and paste irrelevant marketing blurb. We understand that you have stock answers to questions that you see all the time, and copying answers from a previous RFP response is perfectly fine - if they are relevant. Also have the decency to check it once over and remove any mention of the previous client's name that made it through the cut and paste. I've seen this happen more than once and it looks pretty unprofessional.

- Know who your competitors are, and position your answers accordingly. However don't make the mistake of trying to be something you're not and be wary of actively trashing the opposition - it rarely comes across well. It's generally better to play to your own strengths rather than your opponents weaknesses. Try not to overdo it with the sales patter. 

One throat to choke
Often companies want to contract with just a single party who is then responsible for all subcontracts (integration partners, additional 3rd party software etc). It's best to be flexible on this in case they want a mixture of the two approaches. 

Users are not always the buyers
In our case, one of the vendors had a product which had a more attractive UI. If it were down to just the users, they would have picked this one. Ultimately this vendor wasn't selected because the another solution had a good enough UI and did much better on other fronts. Not to say that user opinion didn't matter - ease of user adoption was a success criteria for us, but it's important to understand all of the decision criteria involved.

Price negotiations
Enterprise buyers always expect a discount. We had a procurement department involved that was responsible for the commercial negotiation. Typically the way it works is that vendors show their prices at a "Card rate" and then offer various discounts. The client will then negotiate further discounts over the offered discounts. If it seems like a silly game, it is. But unless you have market power and the client has no alternatives (e.g. you are Microsoft), you will have to play by the rules of the game.

Several books have been filled with advice on negotiation. So I won't go into this in any more detail beyond recommending that you go in well prepared with a negotiation plan.

Cloudy skies
Companies are paranoid about data being in the cloud, but there is a gradual acceptance that this is the way things are going. If you're peddling a SaaS product, anything you can do to allay fears will help. Expect questions about your data centres and SAS70 compliance. In particular European companies can be wary of having data hosted in the US, even with the Safe Harbor agreement in place. Customers may request data centre visits/audits.

Also think about how integration will work through firewalls and how you will deal with authentication (single sign-on with MS Active Directory etc).

Know your product
Enterprise buyers are used to dealing with salesmen and will spot when you don't really know what you're talking about. Nobody expects salesmen to know every facet of their product, but customers will expect to be able to talk to somebody who can fill in the holes where necessary. Bringing in somebody from product or engineering who really knows the nuts and bolts demonstrates the substance behind the spin. Live demos are great too.

Reference customers
Reference customers are an incredibly powerful sales tool. If you can present customers that are evangelical about your product and services, this goes a long way. Ultimately this relies on you building good product and providing great customer service. Getting new customers to agree to be future reference customers (case studies, joint press release, reference calls etc) is a good negotiation ask which comes at zero cash cost to the customer.

Current big name customers, or customers from the same industry will help inspire confidence, and possibly even a fear of being left behind. If your company or product is new to the market, this will help re-assure potential customers that they are not taking a huge gamble.

Contract negotiations
Once the deal is sealed and you've agreed key commercial terms, there's usually a period of detailed combing over of contracts. It's unlikely that this will uncover a deal breaker - usually by this time the customer has mentally committed to selecting you so just bear with it and get through to the other end.

Whatever happened to the consumerisation of IT?
Yes, I know managed to get into organisations by getting users to whip out their credit cards and buy the product themselves. But this really isn't a strategy you can rely on, and even Salesforce still go through the whole rigmarole outlined above when dealing with big sales. If you're selling e.g. a tool for developers then the process should be much less complex, but for anything that will affect large numbers of users, I'm afraid IT procurement really hasn't changed much in the past 20 years. Ben Horowitz has a great blog post on this here.

If any of you have stories or advice on the enterprise software sales process (from either side of the fence), I'd love to hear them.

Follow me on twitter