In this talk from Business of Software 2009, Joel flies in the face of what is often accepted as current wisdom and says that building new features does add value to your product. Simplicity is often a way to avoid your customers knowing you are releasing a product without enough features. Features are good if you can add them without making a product too complex. This can create real value for customers and revenue for your business.
You can read the full transcript below.
Joel Spolsky is a globally-recognized expert on the software development process.
His website Joel on Software is popular with software developers around the world and has been translated into over thirty languages. As the founder of Fog Creek Software in New York City, he created FogBugz, a popular project management system for software teams. He is the co-creator of Stack Overflow, a programmer Q & A site.
Joel has worked at Microsoft, where he designed VBA as a member of the Excel team, and at Juno Online Services, developing an Internet client used by millions. He has written four books: User Interface Design for Programmers (Apress, 2001), Joel on Software (Apress, 2004), More Joel on Software (Apress, 2008), and Smart and Gets Things Done: Joel Spolsky’s Concise Guide to Finding the Best Technical Talent (Apress, 2007). He also writes a monthly column for Inc Magazine. Joel holds a BS from Yale in Computer Science. Before college he served in the Israeli Defense Forces as a paratrooper, and he was one of the founders of Kibbutz Hanaton.
Joel Spolsky: Thank you, wow this is sort of a lot of pressure being the last speaker, it’s been going pretty well right, mostly no technical, no serious technical problems I think thanks to the AV people mostly we haven’t had anything, no, excuse me just one second let me just fix this one here. Okay, I do this at every Business of Software so it’s something. But anywhere, does anybody know, I was trying to figure this out, support for Unicode characters, what is the GB18030 character set? Does anybody know, somebody, should I?
Okay, well then I got to do it, the Chinese government says I got to do it, not really, how many people could possibly like even know about what this things are. The decisions that software asks people to make and Michael talked about little decisions, Luke talked about big decisions. I’m going to talk about all decisions and the kind of endless decision making that you have to go on. See even if you click, this is what I love quick books has recently downloaded the RA product. Even if you click install now, you then have to make this exact same decision again. So, it’s bad enough that you have no possible way of knowing the answer to, my whole inbox is completely full of people asking me to make various decisions about various things that’s why that stuff is in there because those are decisions that I have to make, some of which, looking at them now this is a screen shot from about a month ago, I have no idea what to do about any of those.
Okay, software is constantly asking me questions and asking you to decide something’s, this is a good one, this comes up in our look if you have a recurring appointment and you have made some exceptions to the recurrence buy let’s say one week you changed it and the you go to try to change the overall, it’s just too boring I can’t tell you. But the point of this is that it’s not okay, it says is this okay and your choices are okay and cancelled but they don’t give you a choice for no and this is one of those famous dialogues where clicking okay means to cancel something and clicking cancel means not to cancel something. Look at the wording of that dialogue, the famous Windows message box. So, yeah no, it was not okay but that wasn’t one of my choices, very painful decision actually. If you stopped trying to do work for a while and go on Facebook to hang out you have to decide who you are friends with and I hate that, there is nothing more painful than trying to decide if I’m actually friends with, I don’t really know who Damian Decaracoza is, but he has got the Serbian Imperial court of Exile going there and he stands bravely in the face of adversity. Some of this is easier to decide some of them are a little bit harder. Linked In is supposed to be more professional and there is a person who wants you to connect and join their network and endorse them and all that kind of stuff.
So, in order to avoid making any decisions, I had to say no to everybody on Facebook and Yes to everybody on Linked In and it’s also I got like a million business connection, it’s terrific. Sometimes software that we write asks you to decide stuff that you shouldn’t even have to decide. For example Rap City has this music search engine and you go and type the name of something and you need to choose from the drop down list whether that’s an artist, a track, an album a composer, like who cares, search them all. Why do I have to then choose like when is the last time you saw a search form, right, it’s just a search box and then you won’t find it if you don’t get it right, which is sort of ridiculous even though it has 69 results which is also kind of weird because it’s really just the name of the song, there should only be one. Alright, notice that I-Tunes doesn’t make you make this stupid decision there is just a box and you type it in there and it finds the thing.
Can’t even turn off your computer and go home if you are frustrated by the possibility of all these decisions that your computer is requiring you to make and if that in some ways in some ways is driving you crazy because you are afraid that you will make the wrong decision . Turning off your computer has six options like right there on the menu and then there is also to press the on/off button you could close the lead, unplug it or throw it out the window. So, there is 10 different ways to turn off your computer and then you have just got paper work to deal with, this was the paper work I had on my desk when I was working on this presentation, I had to choose a health care plan and if you have ever done this as a business owner this is extremely, frustrating me because there is all kinds of terminology there like deductibles, co-insurance, atom networking, network prescription, UCR, I don’t know what any of these stuff means, I don’t know how to decide they do seem to have different prices.
I can decide based on that, one of the decisions I had to make was between the freedom network and the liberty network. Also different prices that turned out to be kind of hard, to decide if all those decision making is stressing you out, I put up a little temporary break it’s a picture of a dog with a tail, so you can, it’s just a little relaxation technique. Okay, so, what I’m really going to talk about is where these decisions come from; it comes from a debate that we are having right now. Yeah, it’s like one of those internet wars, between simplicity and power, unfortunately no matter how much you try to use if you go to blogs, if you read what tech writers are writing on the internet , if you read sites like Torrents Software, like [Inaudible][00:05:44] to try to get actual information and to learn something about your field there is the problem that there is also a group of people there who are doing that for entertainment purposes and what they like is conflict and war. So, here is my conflict war, it’s the war conflict between simplicity and power and simplicity specifically says when you design your products, when you design your product offering you should pick one thing and do it well. You should simplify as much as possible, and there is this 8020 rule or 9010 rule which is sort of similar and it’s all baloney.
But it says that 80% of the people only use 20% of the features and therefore if you employ to 20% of the features you would still get 80% of the market. I will show you why that’s not true, but that’s the simplicity argument and then there is the power side the power way of doing things which is to give people lots and lots of features, lots and lots of options that’s not some choices which are frustrating and lots of capabilities in their software. So, that’s the power, that’s the power features kind of side is this theoretical Swiss Army it comes with all kinds of different many, many, many different types of can opener and bottle opener and knives and files and stuff like that. There is a little tiny saw which I have never really been able to use, every time I got a new Swiss Army knife I would try to find a piece of wood that I could saw with it so I could use that. But I can never find a piece of food that was like small enough, that a little saw would work and by the time we finally did it was like a twig, you could just snap it. So, I don’t know why they have that and that’s part of the problem with doing a bunch of things not well is that you give people a saw that can’t really cut anything and the opposite is you guys I bet you all know what this is, [Inaudible][00:07:25]. Yes sir, it’s a hard wood floor nailer and it only serves that purpose this was sort of funny because I showed that in Amsterdam and nobody knew what it was and I guess they don’t buy the cheap old thin hard wood things that you get at CostCo but then hard wood floors as much in Europe as they do in the States.
Okay, so that’s a hard wood floor and it does exactly one thing and no it doesn’t even do it you have to hook it up to a compressor I believe and you need this sort of hammer kind of thing and it’s like the hammering is the whole point but it does a perfect job of jus doing that one thing and you would certainly not want to put a hard wood near – a hard wood floor with a Swiss Army knife. So, what’s the problem with giving people the Swiss Army is that features leads to choices and choices leads to decisions and decisions lead to war and unhappiness? Let me show you a little, I got a little a movie clip here from you have got mail, can we have the sound up on here maybe.
To make six decisions, just to buy one cup of coffee, short, tall, light, dark, caf, decaf, low fat, none fat, etcetera. So, people who don’t know what the hell they are doing or who on earth they are can for only $2.95 get not just a cup of coffee but an absolutely defying sense of self, tall, decaf, cappuccino.
So, that’s Tom Hanks that’s the quote from You’ve got mail and he sort of extolling the virtues of the American scheme of giving people lots and lots of choices and letting them define themselves through the way they construct a coffee drink and this is certainly a trend in retail of giving people you know 47 different kinds of toothpaste or a million kinds of coffee or you know my favorite example if this Barito places that you go into and you practically have to give them the recipe for a Barito if you want to get a Barito out of this places. How do you – well don’t you know how to make Barito’s isn’t that why I came.
So, the scenes great, China and Engar and Mike Lapar wrote a paper that was sort of similar which I want to talk about a little research project they did, they went to Dragus down the road here in Silicon valley and they asked, this is one of those grocery stores where they have 250 kinds of mustards, this is a pure reviewed paper, there really are 250 kinds of mustards, somebody must have checked. 75 varieties of all about 300 different kinds of jam, and what they did is they set up these little boots where people could sample the jam and they did an AB test between there are six kinds of jam to choose between them and there are 24 kinds of jam to choose between them before they did this they got a bunch of graduate students to taste all the jam and make sure that they were all good. So, six versus 24 where do you expect happened? The only variation here really is how much choice, how much do you have to choose between. Well the booth in which they gave people or the table when they set up 24 kinds of jam, more people stopped to sample the jam by a substantial portion. 60% rather than 40% actually stopped to try the jam and see what it was like. It was maybe a more attractive display and it looked kind of more copious and bountiful, however when it came to actually purchasing the numbers are astonishing.
There was a 10 to one difference in how many people purchased the –jam based on how much choice they had to make. 30% and this is actually 30% of the not the sample, its 30% of the initial people that went into the store, 40% of them stopped and ¾ of them actually bought a jam if they only had to choose between six kinds of jam on the other side 60% stopped and just a tiny, tiny, percentage of them were willing to actually undergo the mental stress of having to choose between 24 flavors and who knows what it is the sense of impending the lose that maybe you should have really got an [Inaudible][00:11:31] jam instead of the Olive flavor. Barry Schwarz wrote a book called the paradox of choice and it sort of brings up this study and a lot of other studies in a lot of other areas. One popular and important one right now is that it seems to me that the more choices you give your employees in their 41K plan as an investment vehicle the less likely they are to actually save for their future. So, there is a very strong new trend that is increasing saving rates dramatically, I’m just giving people one or two choices for their 41K like you know, conservative, not conservative or just give them whatever the appropriate retirement bracket is for when they are going to retire and let Vengi do the work.
And this makes people sort of less agree about the decision and more likely to actually make a choice, there is the paradox of choices that well theoretically it makes us all better off it also is stressful because of the fear that you are going to make the wrong decision. Now based on this idea of choice and options and so forth and features and capabilities, you bet, the smart folks at 37 signals software company in Chicago wrote a book called getting real, and here is what they said, they have basically been the advocates and you all know this, they have been the advocates for simple –software that does on thing and does it well and here is how they explained they said that the conventional wisdom is to beat your competitors, you need to one up them, if they have four features you need five or 15 or 25 if they are spending X you need to spend XX, if they have 20 you need 30. So, what do they suggest that you do, they say you should less, do less than your competitors to beat them. Solve the simple problems and leave the hairy, difficult, nasty problems to Microsoft instead of one upping try one downing, instead of out doing try under doing.
I’m kind of beating up on an underdog here anyway, but what the hell it will be fun, so here is what they suggest this is there, less features, less options and preferences and awful that, less people in cooperate structure, less meetings and abstractions. It’s weird that they put these on one line its sort of like saying you know, like less anger and garlic, they are not really in the same food group, but okay meanings of obstructions and less promises that’s cool. So, they made a bunch of products, 37 signals is a bunch of really nice products, very, very simple, very clean easy to use base camp high raised back that camp fire. You can try them out on their website or if you have no pad just make an HTML page and put like a big text area in it and that will give you a taste of what you is out there to do. Really it’s very simple but really nice, now you should definitely try them but they do one thing and then when you say I got this other thing that I needed to do doesn’t quite work. So, this is the debate, less features, that would be the less features as the sort of the 37 signals and much are defining sense of self and that would be what Tom Hanks is calling for in the Starbucks model, I would call that the jam versus coffee idea.
So, this is something that my manager said to me at Microsoft once and what’s interesting is that it seems like a tautology every time you have an option to do it. It used to happen when I was a beginning designer is I would design something and I really would say but what about dot, dot, dot left handed squirrels and I would say oh yeah, I forgot the left handed squirrels and then I would make some kind of different thing and they would say yeah but that’s not going to work for the right handed humans and then I would say alright well there will be an option in the dial box and you say squirrel human and you slide a little slider and I would invent a new kind of slider just to make it confusing and Andrew Quiodnates who is my first manager said, every time you have an option you obviously going to make a decision and I said that’s the point, we will give them the decision. But then I realized that people don’t like to make decisions and this is a bad thing.
So, look at what’s going on in option dialogue boxes today, this is internet explorer, there is a choice on there that says enable chara browsing, I mean first of all one, I don’t know what any of these are or why you would care or why you would want to choose between the left handed squirrels and the right handed squirrels. But what is chara browsing for new windows and tabs? Does anyone know what that is? Do we really have to enable that, why is it only for new windows in tabs? What if I want chara browsing on old windows and say how old do they have to be? A week, why is chara browsing capitalized? It’s just makes you kind of wonder and what ends up happening is that people go into the style box by mistake they check a few things by mistakes and their computers become broken in an deterministic way and they call on people who say you are going to have to get a new computer because I don’t know how to fix whatever is wrong with your internet explorer.
Anybody use Visual Studio in t his audience, there must be some developers who remember, if you just go into the main tools options dialogue in visual studio this is what you see, down the left hand side there is this huge trail, an enormous hierarchy of options configuration settings and its like some intern spent you know two summer internships on this just so to tree on the left hand side not to mention all the crap that has been put on the right hand side. But what’s interesting here is look at the kind of choices you have to decide between if you want to use visual studio on the right hand side, how many items do you want and you recently used this, this is on the first page I didn’t have to dig for this, this is the first thing you see. How many items are on that file open recently used files, six, 10? I don’t know, who cares does anybody even care, how about all of them, oh that won’t fit.
Okay fill the screen from the top to the bottom and if there is a little more than that maybe make a scroll bar, I don’t even c are just alphabetize them that’s all I want. That’s not a choice, no, you are not going to get them alphabetized. All right can I put 99? No, you maximum is 10, completely useless configuration setting that nobody can possibly care about. Before all you web software developers get all high and mighty about we don’t have this problem on the web, here is the Gmail configuration page, same kind of thing a whole bunch of tabs with a whole bunch of questions. Here is my favorite, its display, external content such as images sent by trusted senders. This is one of those things that nobody knows how to answer and the people who do know how to answer will not have enough information.
So, for example, what are they talking about here, like we are mostly technical people, we understand that there is this issue that there have been bugs in the program for various image formats that it has been possible to use. Alright this is external content , which I guess tends, what does it do it’s like a little image that you put on an email and it will contact the web server so they will know that you opened the email. But it is a trusted sender but what does this trusted sender really mean, I mean who trusts them. There are a lot of different definitions of trusted sender that’s a confusing thing and it’s not something that anybody who uses Gmail is really capable of answering,. So, why is it possibly there? It sort of reminded me, we will figure out why it’s there in a minute, it’s sort of reminded me of this old, this screen that I saw once on the Yahoo store a long time ago, so this is 2001 I’m sure that they fixed this, this code was re-written to not be enlist, so this couldn’t possibly be the same code anymore.
But look at what it is, it is a guided tour it says the guided tour is actually the sign up wizard for Yahoo stores. We are going to take you through some sequential steps, please do not use your browsers back or reload button, you remember this was a long time ago when we told people this all the time, or don’t resize the browser because that would refresh the tour, if you do the tour will simply restart itself. Now, I was a web programmer in 2011 and we had ways of making user interface experience that survived the user pressing the back button, it didn’t blow you back and slither and throw everything away. But not if you used continuations unless but I guess, so, we found this is the killer, we found 105 of the people who take the guided tour forget this warning and hit back or reload out of habit. So, don’t hit back reload, okay, thanks. Why is this here? It’s not working, you measured it 10% of people are still hitting it because they are human and they think that they have learned the back is undoing it and they make a mistake and they are like oops they hit back then they are like, this is here to prepare those people to understand that, that when they hit back it’s their fault, not the programmers at Yahoo, it’s their fault that they got blown back to smithereens and that they have to start all over again.
So, presumably they won’t write in saying I want to notify about a little bug, I was doing this thing and I hit back and everything was erased and I had to start over and I did that four times and it was really frustrating and they got that email from 10% of their users and put this up there to try to reduce that possibly to 0% and what that reminds me, I mean this stuff is long gone in the Yahoo store but it reminds me of this dialogue box which I saw yesterday which is do you want to allow this program to make a change to your computer. Why are we asking that, do you know if this is safe, do you know is maybe a virus got in there somehow? No, it’s this confirmation dialogue thing, do you want to do what you just did to which the answer is always yes, so why are you asking me, well its so that when not if, when you accidentally install some kind of nasty spyware which gets into your bank account and transfers all your money to Bernie Maydof’s canteen account the penitentiary when you do that, you won’t blame us, you will blame yourself and this I thought is a little bit inhumane, it’s a little bit inhumane, it’s like a public relations dialogue so that you feel bad about all those bad things that happened to you.
Because as a matter of fact this is stressing you and I have a picture of a kitten and a duck. Nothing to do with anything just to relax, if you are going to get angry about that, so, where does a little diversion – where is this idea, why does the 37 signals idea, why is it taking halt, why is that idea that decisions and so forth are bad and that you should have a simple single use products, why is that so popular? I think there is and it’s because there is a lot of startups and the start ups have two or three, this is why we have two or three in them and just a few guys in there, you don’t have a lot of resources and everybody is telling you correctly that you need to get something out to the customers right away. So, you need – it’s not like Microsoft where they throw 800 people on a clone of foot books and then shut it down and it never goes anywhere but it still – they still spend I don’t know how many developer years on that. You are just like a little starter you have got three people and you have got three months you are not going to be able to do very much and you got to get it out to customers and start getting feedback right away .
So, you make bug tracking made easier, you make very simple track tracking or bug tracking made stupid easy or beautifully simple as you are tracking, or both tracking software, it doesn’t have to be complicated or bug tracking made simple for the first time. Beautiful simplicity in bug tracking, simple task and bug tracker, bug tracking software made it so easy that this clip art kid can use it and this one was called dead simple bug tracking, bug wikki, I tried to click through on the link but it was really dead. So, how do you get in to the situation which we are in? So, I’m making fun of all these people, the reason you get into this is because you have got three people and you have three months and that’s a lot for start up and when you try to make a feature list these are your choices, you got simple, now these are your features you got simple, simple and it’s just really, really simple and that’s what you tell customers and you read somewhere on some blog that this was great to have simple software and it worked because the customer said that is awesome, I freaking love simple, I want it to be simple, I’m backing you guys, I got this bug tracking software and its complicated I want simple and then they ask you the next question, here are some examples, wait I need to be able to attach a picture and I can’t search are you serious.
There is no search function? Fug Bucks when do we get search, 3.0? 3.0 maybe 4.0 anyway, you can’t search no you don’t have to search its real simple it’s just a list of what you are going to work on, yeah but I want to search it, but it’s simple, can you make it simple with search? And that’s what everybody says to you and they don’t buy your software, there is kind of one exception which is that sometimes you are going to go and , this is a funny story from Net App actually. You are going to ask somebody to buy your software in an enterprise, you are not even going to understand what they are saying to you, because they will say son we are Geori Pacific we make trees into Toilet paper and that will tell you like what, you make trees into toilet paper. Okay, so I guess you don’t buy bug tracking software, got it let me move on, the toilet paper people are looking for solutions they need tree into toilet paper making software and everything that goes around that and they probably have bugs but they don’t know that, so you are not going to sell to the enterprises especially when you have like two people and you have done simple and then you find somebody that says its perfect and its usually somebody actually.
I hate to say this, but its somebody that has not actually used software from this category before so they don’t really realize what software in this category needs to do when you actually deploy it and so when they see simple it’s very easy for them to understand because they don’t have to spend six hours figuring out all your features. That’s okay and then you make some sales but then you learn the one lesson of Fall Creeks offer that Michael and I have learned over nine years which is that and we actually did a very detailed exhaustive search of the literature and we gather from literally tens of thousands of software companies about all their products and over time and correlated that neatly and we had graduate students working on this for six years. This is a lot of data so just hold on to your seats. The correlation between features and sales, there you go the more features you have the more you sell. There is nothing clear than that in the chart of the – all of the output reports that you get from Quick Books at Fog Creek. Is when we came up with newer versions that added new features our sales went up a lot and the reason is obvious because you have this universe of people banging on your door and they are asking you things which are completely reasonable and if you can say yes, I can attach a picture they will say okay, that’s perfect I will buy that and if you say yes, you can search those people will say its perfect as well now Georgia Pacific forget it, you are not ever sell them anything.
There is always somebody that you are not, you are just not doing what they need to do but adding features that is sort of an obstacle course. Some people call it like the funnel, he customer funnel but there is an obstacle course that you are running with a lead they just heard about your software, they have all the requirements and you kind of need to and at any point if you don’t meet one of their requirements they are going to drop out and go look for something else. So, conclusion, simplicity versus power this is a little bit too facile.
Power does actually make you more sales but I’m not going to leave it at this, this would be depressing because decisions are hard and options are hard and complicated software is hard and all those things make people unhappy and you have to show them pictures of cats. So, I want to give you a model some kind of idea theory that you can use to try to bridge this gap, solve this dilemma a little bit between the simple and complicated products. You got to first to ask yourself what do people care about, cheerleaders, no that’s not why those are cheerleaders they care about their team. You have to have a model, some kind of model in your head for what your customers are interested in, the visual studio does not care about the recently used file list, ever. They care about their code, let me give you an example a more useful example of what people care about. Imagine a new college student has just arrived in the dorm room and he has bought a computer at the University book store and set it up and it came with internet explorer and the home page is Bing and so the first thing he is going to do is install Firefox because he is smart and you say why are you installing Firefox on that computer you just got, Freshman year student in the dorm room, why are you installing, Firefox well I want to get on Facebook as soon as I can really and start meeting people. Okay, why do you want to meet people, because that’s how you go on dates this is college you know, you go to parties, you go on dates and you go on dates so that you have a chance of hooking up and you hook up so that your DNA can make a copy of itself somewhere else.
So, that’s the chain it’s not direct, you may not be thinking about this but believe me your genes are. Okay, same thing with Tweeter everybody on this room is Tweeting as I ask right now somebody was about to hit and we are not college freshmen and we are not really thinking about going on dates and that’s not the kind of people I have on Twitter at least. But there is a social or human need to be fugacious to be social to meet other people and part of that comes from the fact that we have evolved as a social species and we have evolved as a social species so that we can meet people go on dates, hook up and make copies of our DNA that’s what evolution does. Anything you do, buying brand new nice clothes and going to the gym to work out all of those are things that you do in order to become more attractive so that you can go on more dates and you can hook up and make copies of your DNA. Okay so this is category of human activity, well actually it’s not just a category.
So, why do you make a budget spreadsheet in Microsoft Excel, why are you sitting there using Excel to plan next year’s budget. Why are you using PowerPoint and tweaking all these slides to put on cool gradients, why for the love of God are you using Microsoft system centre configurations module 2007? Well these are all things you do for work and you want to do a good job at work so that you can get promoted, and you want to get promoted so that you can make money, you want to make more money so that you can hook up and make copies of your DNA. So, you can pretty much create this is a single root objective tire key on its side and it’s just one way of modeling, why do people care about it at any time and its indirect, I don’t want to say using Excel to copy your DNA, you are using yourself to do a good job and so that’s what you care about when you are using Excel, your job and being awesome as Cathy here said whatever it is that you do. Richard Dockings put it this way, our survival machines were blindly programmed to preserve the genes and he actually kind of turned something upside down for e I used to think and this is the way I guess I was taught biology in high school a long time ago before Richard Dockins said this.
Was I used to think that DNA is a mechanism by which organisms including humans make copies of themselves. So, for example you have lungs which are mechanisms by which human being breath air and yet your heart which is a mechanism to pump blood and get the air to all the cells oxygen I guess and you have got a pancreas, I don’t know what that does, and you also have TNA which is a mechanism by which you make additional copies of yourself and that is the way we were all taught in high school. I think, but what Richard Dockins is saying is quite the opposite the genes have us to make copies of themselves. Because that’s all evolution cars about is that these genes be able to make copies of themselves and they are everything that they are going to do and they are in charge believe me is going to be about making new evolutionary versions that are better at copying themselves and if they could just climb at a Xerox machine and make copies of themselves and that was easier than having these complicated human beings with all their foibles and their Excel spread sheets they would have done that but this turns out to be a pretty good way to make copies of DNA.
Or as Jamie Sowinsky who is one of the early engineers on the Netscape project puts it, your Yu-Scape should be there is a 22 year old college student living in the dorm how will the software get him laid? And now that was in regards to the first before we had social media everybody was talking about group wear, so, you have to have a model for what people care about because when you give them features and choices they have to be features and choices that directly relate to them making them awesome. Them doing whatever it is they have to do to support their work, what they care about their job at that particular moment. So, imagine for a moment that you are a programmer, this is Jimmy and you are working into it, although who doesn’t. But anyway let’s say this is Jimmy had into it and you just spent a year implementing this new R8 release of the Quick Book software, its – how many people use Quick Books actually in this audience, it’s probably a lot of you.
How many of you clicked later and later on that dialogue like 100 times right, this is only like a tenth in this room is having the same experience as I did with that stupid dialogue box. But what is Jimmy thinking, he is thinking I just spent a year putting together this new patches and releasing them, there is probably a whole team of Jimmy’s actually and they are pretty excited about it and he is thinking you know, I don’t want to install this prematurely because bad things will happen and let’s let the user decide when to install Quick Books. I will just call that a little message box function and say do you want to install this version and I will have a dialogue to dialogue box, I’ll have a dialogue with my user across the space in time which is cool. We will have this conversation and the conservation across space and time doesn’t really work that well. So, think about, that’s Jimmy’s perspective I’m going to have a conversation with my users, now what’s the perspective of the users? There is a million possible things, there is a million possible people 10% of the people in this room were in this situation probably several times of seeing Jimmy’s dialogue box and what was going on when you saw that. Let me just make something up you are the CFO of a fortune 500 company and you are sitting there working away, or actually you are not working you are flirting with your secretary who you are having an affair with. I won’t use the technical, dramatic term, having an affair with your secretary and she is kind of leaning over your desk and you are kind of flirting, having a good time and you suddenly notice your wife coming down the hall way and you hear her Manolo Blahniks. She was click, clacking down the hall way and oh shit my wife.
Now the second problem occurs because you forgot to tell your secretary about your wife and your secretary says wait a minute, what do you mean wife? You told me you were single or divorced or whatever the case maybe and then you say shit for the second time that day oh my God and she is getting closer and closer and closer. Now your secretary is smart and she says I’m going to tell your wife about this affair unless you give me $100,000 on the spot. So, now you are relieved because finally something is going right you are the CFO, you can just print a check for $100,000 you got Quick Books. One it’s just a hypothetical, now so, your wife is getting closer and closer and you are kind of sweating and trying to launch Quick Books and it’s not and what happens is Jimmy Turner comes up and it seems like a really, really bad time to install Quick Books and this is the most important thing to remember when you are a developer, when you are having a conversation across space and time with one of those users that’s not a conversation, that’s not a dialogue box, you are interrupting them.
You are asking them about something they do not care about it is what they are working on they got hold it inbox full of crap that they have to worry about some of which they do care about actually that is their stuff and so as the computer which you are you are writing the code this drive in the computer you don’t even actually have a right to set the agenda for what uses you do, you have no right to set the agenda. If you put up a module dialogue box, module meaning you cannot progress, the user can not progress until they answer some questions in a module dialogue box. To some extent you are claiming a right to determine what your users do which you probably don’t have and so that’s probably something you should think about is there a way to make this module – it’s sort of a borderline unethical to require a user to do something in a specific order when there is no such requirement. You are not in charge of what your users do. So, now we actually have a model of good features versus bad features, right. The good features are the ones, now that you have an idea of what your users care about where they are on that tree, what the right hand node that they are trying to get to, what are they trying to do now, what do they care about and those are good features and if you give them lots and lots of features to make them awesome at what they do they are going to be happy and they are going to enjoy features and they are going to like them. But you can also give them bad features and those are the kind of things that interrupt users where interrupt means causes them to think about something that they don’t care about at that particular time that they don’t really knew about.
So, as a designer and I have said this many, many times your main decisions – a designer is all about, this took me a long time to finally learn. I thought design was like you have a blank sheet of paper and you make a pretty design. Design is actually the act of deciding stuff because and good designers design the right stuff, there is an easy way you can give people a word processor that has every possible configuration option. You just give them a programming language for word processor as it is already programming language and say build your own damn word processor, it will any way you want, you can have the spell checker, with spigly red lines or orange lines anything you want but that’s like a little bit too much configuration. So, the way we make our money is by making the right decisions for people about the stuff that they don’t care about so that all they get to do is sit around and decide between caf and decaf. When you give people a choice of any sort they don’t care about you are not doing your job as a designer, I think the answer is that there are good features and bad features and apart of the way to eliminate to create the possibility of like powerful useful cool stuff people want without bothering them with all kinds of nonsense like what Jeffrey Moore called context like stuff is just wasting their time like hide all that stuff, get rid of it, make those decisions for people somehow and I think I’m missing a verb in that sentence, in doesn’t matter.
I sort of was enlightened into a way of thinking about this by Alenda Burton who has written a whole bunch of book about all kinds of esoteric things but this one was about architecture and he wrote about the this bridge which is Switzerland somewhere and that’s what it looks like and it’s just incredibly cool looking, very modern and I mean that’s a huge span that’s a highway and he compared it to the Clifton suspension bridge which is much, much older of course and it’s in England and they are both are accomplishing the same task. But here is what he said, he said both bridges are accomplished during feet’s but my hearts possess the added virtue of making its achievement look effortless. There is something effortless looking about what this bridge is doing, because we sense that it isn’t, we wander at it and admire it all the more he bridge is endowed with a sub category of beauty we can refer to as elegance a quality present whenever a work of architecture succeeds in carrying an act of resistance, holding spanning sheltering with grace and economy as well as strength, when it has the modesty not to draw attention to the difficulties that it has. Look at these words, the modesty not to draw attention to the difficulties that are surmounted. You don’t pop up a dialogue box asking people hey I just wrote some code would you like to run my code that I just wrote, yeah. Or think about the kind of, half of the , if you go to tools options in any open source framework half of the things that are there are stuff where somebody contributed a piece of really useful functionality that everybody wants and everybody turns on and is awesome and has no user interface completely invisible and they just to somehow surface something in the user interface that shows hey I was here, I did this.
But they can’t because what they did I mean the best kind of feature is the one that is completely and utterly invisible. So, that’s the concept of elegance it’s a very specific term I will show you a couple of ways that I use the word elegance. I’m not talking about like a nice Channel dress and that different kind of elegance. One way that the designers refer to sort of the same concept of elegance of taking stuff away or hiding stuff, the designer Calvin Klein often said the designer knows he has achieved perfection not when there is nothing left to add but when actually we don’t really need that on the slide or that. I don’t even need the slide.
OK, let me give you a typical example of taking away to achieve elegance this is former phone, the Nokia E71 it’s a very, very good smart phone and it has four choices for whether or not to ring. The four choices are normal which is ring, silent which is not, outdoor which is to ring loudly I believe and meeting I don’t know, I’m not Finnish I don’t know what they do in meetings in Finland.
But it must not be either ring or not ring because these are the four choices for whether or not to ring. There is also a volume for how loud you ring but that’s a separate feature, now because there are so many choices there is a menu you choose from and because there is a menu that you choose from you have to use a keyboard, and because you have to use a keyboard you have to unlock it because this is one of those, the Nokia is one of those, what do they call it, candy bar phones or whatever. So, it’s got a lot of functions, so you have to unlock, get in to the menu, choose the item for the menu, up, down, select okay, and then relock your phone and put it back in your pocket because there are four choices for ring or don’t ring. Now by comparison, can everybody see this in the back, this little switch, just kidding, the I-Phone has a teeny tiny little switch probably 50% of you have them so teeny tiny little ring don’t ring switch and it’s an actual flip switch its physical, you can what position it’s in, when it’s in the vibra position your phone vibrates for a second so you know have got into that position.
It’s really kind of tiny and awesome and what they have done is they have taken away all those choices that didn’t matter. The outdoor and the meeting and I bet its more on the Nokia that weren’t on mine but they have taken all of these choices and what you are left with is just two choices and therefore it can be a dedicated switch even on the fairly simplistic “one button” I-Phone its just one switch because there not a lot of choices there and that’s a classic example of elegances getting rid of stuff that we don’t need any more. One thing that actually surprised people with the I-Pod definitely remember this was one of the first consumer electronic products that came out. The original I-Pod did not have a power button there was no way to turn it off, why not? Well there is a pause button I mean it’s not playing music how much more off do you want it to be? Of course you try to tell that to a flight attendant on US Airways, they can’t really get very far.
But that was the Apple idea, its not playing music that’s its function its now how, what kind of interesting actually the pause button that they have, I was looking for the stop button, why was I looking for the stop button, why do people even still have pause and stop? You can still buy a lot of MP3 players that have pause and stop there is a lot of online, like little widgets that you use there, media players like software media players and they will have stop and pause. Stop is the square right, and pause is the Twin Towers memorial, sorry, too soon, okay the difference why do all those things exist this is an emulation, all these buttons were introduced as a standard interface for real to real tape recorders. Now, on a real to real tape recorder you have a stop button and that turns off the motors and disengages the heads that’s stop.
But when you hit play it has to restart the motors and reengage the heads and there is a pause of about a quarter of a second before music comes out and anybody who is using a real to real tape recorder it needs to produce music on the spur of the moment maybe they are editing something together or maybe they just want something to start immediately, this is not good enough and so they added a functionality to real to real tape recorders called pause where the motor kept running and these little hands came out and grabbed the tape and held it in place. So, that they could let go of it and it could start playing immediately, the trouble with these little hands is that the hands are holding the tape and the motor is till running and so this tape right here is stretching. So, you can pause on a real to real tape recorder they have an option for that if you need that but you shouldn’t if you don’t need to because it’s slowly going to degrade your tape by stretching it.
Right, so this is an artifact of analog vinyl whatever this tuff was made out of real to real tape which nobody has used Apex shut down a couple of years ago you cant even buy this stuff –anymore and in an artifact of physical manifestation still perpetuates itself in all these user interfaces that still have stop and pause even though that doesn’t even make sense. So, I tell that story because a part of what’s interesting about creating elegant things that don’t make people choose between pause and stop is discovering why do we even have pause and stop and off and stand by and hibernate and whatever else we have. The okay button started disappearing from all kinds of places at some point people said hey maybe we don’t need an okay button and it just started kind of disappearing from those dialog boxes. The check out process, Amazon figured out that you don’t need a check out process I will go into that more and a lot of people realized that this isn’t this isn’t the kind of homepage that people want the ideal homepage would just be a box that you type in.
I want to talk a little about elegant code because this is software, that’s not actually, I put that up originally thinking that, this is not elegant code actually this is my personal I hate this thing, people that write this code instead of that because I guess they are still used to basic which is a programming like the original version of basic where a Bulian is sort of nothing other than the input to an if statement. So, that’s obviously like cleaner but that’s just normal its not elegant. Elegant is when you take the same a four mention basic programmer and you tell them to copy a string using the language a modern and cutting edge language like C this is how they might copy a string they will be like alright, I will copy each of the characters one at a time by making a fore-loop. So, what’s wrong with this, first of does anyone want shout out how fast this is?
Male Speaker: It’s slow.
Joel Spolsky: How slow.
Male Speaker: N Squared.
Interviewer: Right this is N Squared, if you don’t know what that means – that’s okay. Come ask me afterwards. This is the code that you are taught to use to do this elegantly in C these days and the reason, and when you look at that, you say wait a minute where is the body of the Y-Loop the body of Y-Loop is missing. Well that’s my definition of Boolean code, I’m not saying all codes should be elegant, just my definition of Boolean code is that if there appears to be less code there than you might need.
But actually its all there, in other words we have taken away a whole bunch of stuff and yet it still does everything that you expect it to do, that’s the definition of elegance, is removing stuff. This is 21 lines of code, 22 if you count that import statement, written by Peter Noveg who is a chief architect senior and technical scientist at Google. This is how, you know when you go to Google if you type something and you spell it wrong it says did you mean bluh? This is that code, its not the actual code on any Google server, that’s probably nine million lines but this does all that it actually has all that functionality built in and when you look at it you say, wait did you mean like you type something it’s a typo and then it uses the entire internet to find what you probably meant and what you must have typod and this is really all you have to do to do that and it doesn’t look like you should be able to do that in 21 lines of code and people start reading this and they see a whole bunch of little definitions and they say okay, I see you are setting some stuff up where is page two and its all that last line at the bottom there, check in the last line.
So, it is actually kind of amazing how this works and part of this is the statement to the conciseness of Python but its also just sort of my definition of elegance is hiding things. Now, what you care about is elegance and features, elegance and products, elegance in user interfaces and there you are going to do a lot of work behind the scenes and under the covers. You are going to struggle you are going to spend eight months instead of one week to eliminate one choice that the user used to have. So, lets go back to Amazon in one click, this is patented a lot of people were upset by this patter because they said this is obvious and actually I hate to tell them but it wasn’t obvious, nobody thought of it, really before Amazon did it, nobody else had this and it wasn’t that obvious and sort of my proof is that when Jeff Bezos told his team to go create one click where you just on the page, you click a button and you get the book that’s what he said.
One click he said that’s a great idea alright boss, and they went away and they came back with something that was I think four clicks and he said no, no I didn’t mean one click add to cart and then take you to the cart I meant one click and the book that you just clicked on is put into a box and sent to your house and they said okay, and they came back and they worked a lot harder and then they came back and they showed them something that had two clicks and he said which part of one don’t you understand and they said no you need a confirmation page, somebody might click by mistake, you just cant start shipping things to people based on they followed a URL in their web browser that’s absurd and he said go back and freaking make it one click and they did and what they realized is that the way they were imagining this was there is a decision tree and the decision tree is did you click or did you not click and then if you clicked did you click by mistake or did you click by not mistake and they have been thinking this as because you might click by mistake they have been thinking you click and then you confirm and the way they turned it around is you click and then you can undo but that part is option and since most people don’t click by mistake, like 99% of the people are not clicking by mistake just give them a nice undo on that page that you clicked through to.
Well make it so that only the people that make the mistake which is a tiny fraction have to use two clicks everybody else gets one click and that’s a really neat way of turning it around. There is of course the other problem which is, what if I want to buy three books, well alright click on each of them you get three separate packages in the way that the postal service works that costs three times as much to ship and so what you really want to do when somebody orders something is you want to kind of queue it up and hold on to that order, I think Amazon holds it for 30 minutes if I’m not mistaken and then if anything else comes in, in the next 30 minutes you reset the time at 30 again and till they stop and they go away and 30 minutes have passed without you ordering something and then they take all those things and put them in a box and send it to you. That is obviously way more work than just you click, it goes in the cart and you ship it, that’s a lot more work and the work behind the scenes to create that undo and to create that buffer where stuff is waiting for you for 30 minutes is a lot of extra work, that it takes to get this little tiny bit of simplicity.
So, it’s a game of inches you have to fight really, really hard for every inch of increased usability like the Amazon one click kind of thing. So, this is pretty much all we are going to talk about today, simplicity versus power, should you follow the sirens we were saying you should do one thing, do it well and make something really simple and really easy, versus should you do something really powerful the features, the options, the capability, what we saw is that the trouble with the power is that you cause people to make decisions and you make them unhappy. The trouble with simplicity is you don’t sell your software so there are those two problems. But there is one approach that you can choose to try to resolve this there is one thing that you can try to do to make life a little bit better which is to figure out what is the elegant solution and the way to figure that out is say make a model, what are my users care about what do they want, how am I going to make them awesome today, think of all Cathy is here and stuff.
They don’t care about the instruction manual, operating instruction for the counter time they want to know how to take a picture that you are in that’s why they are using a counter timer because they want you to be in. So, as soon as you think about teaching somebody how to make a picture that they are in then you want to teach them about where to put the camera and how to station it and how to hold it and how to get it and how much time and its usually about different things other than your menu. So, you are making them awesome and to do that you have to have a model for what they care about right now, what they really care about and that’s the area where you give them the features and when you do give them the features you fight for that elegance and that simplicity, you fight for hiding the complicated functionality under the surface sort of a viewer user interface, so you only give them one choice instead of six but they still have all the same options. Thank you very much.