1 00:00:17,280 --> 00:00:18,840 JOHN ATHAYDE: All right. Thank you guys for coming. 2 00:00:18,840 --> 00:00:20,480 My name is John Athayde and 3 00:00:20,480 --> 00:00:23,419 I'm gonna talk today about working better together, 4 00:00:23,419 --> 00:00:25,570 mixing lean UX with Agile development 5 00:00:25,570 --> 00:00:27,380 and user-centered design. 6 00:00:27,380 --> 00:00:29,539 Last time I was in Chicago to do 7 00:00:29,539 --> 00:00:31,189 Rails stuff was in 2006. 8 00:00:31,189 --> 00:00:33,960 That guy right there. A little less scruffy. 9 00:00:33,960 --> 00:00:34,940 But somebody pointed out 10 00:00:34,940 --> 00:00:35,900 last night that this looks like 11 00:00:35,900 --> 00:00:40,519 it's the crew for Obi and Courtney's band hanging out. 12 00:00:40,519 --> 00:00:43,170 I come from an architecture background of the building 13 00:00:43,170 --> 00:00:46,190 variety, and a lot of the stuff I'm gonna 14 00:00:46,190 --> 00:00:48,789 show you today comes from a couple different places. 15 00:00:48,789 --> 00:00:50,989 One is from my freelance work over the last 16 00:00:50,989 --> 00:00:54,359 fifteen years, which is meticulous. A lot of this 17 00:00:54,359 --> 00:00:56,680 stuff is from the almost three years I spent 18 00:00:56,680 --> 00:00:59,829 at LivingSocial heading up the internal UI for all 19 00:00:59,829 --> 00:01:02,519 of our internal apps. And then recently I've been 20 00:01:02,519 --> 00:01:04,319 doing work at a new start up called Cargo 21 00:01:04,319 --> 00:01:07,320 Sense with Rich Kilmer and Bruce Williams. 22 00:01:07,320 --> 00:01:09,820 I also wrote this book. It's a little out 23 00:01:09,820 --> 00:01:12,170 of date, but there's some good stuff in it, 24 00:01:12,170 --> 00:01:15,369 and Prag Prog has a forty percent off ticket 25 00:01:15,369 --> 00:01:17,259 right now if you guys are interested in any 26 00:01:17,259 --> 00:01:20,250 Rails or Ruby ebooks. 27 00:01:20,250 --> 00:01:26,069 So. Experience matters. Experience is really anything that you, 28 00:01:26,069 --> 00:01:27,979 as a user, are going to see when you're 29 00:01:27,979 --> 00:01:31,200 working with a tool, a book, anything. I mean, 30 00:01:31,200 --> 00:01:33,700 go back to 1983, these were our two main 31 00:01:33,700 --> 00:01:37,020 experiences that we had. So it's changed a lot 32 00:01:37,020 --> 00:01:40,319 since then, but it's still something that you can 33 00:01:40,319 --> 00:01:42,110 think of. There's a very big difference in how 34 00:01:42,110 --> 00:01:45,229 I'm gonna work with these two different platforms. 35 00:01:45,229 --> 00:01:47,470 Experience is also something you see in everyday life. 36 00:01:47,470 --> 00:01:50,090 The one on the left, just not working as 37 00:01:50,090 --> 00:01:52,420 well as the two on the right. You're gonna 38 00:01:52,420 --> 00:01:55,569 turn it upside. What's going on? Think about this, 39 00:01:55,569 --> 00:01:57,259 too. You ever go to an ATM and you 40 00:01:57,259 --> 00:01:59,759 just cannot get the sun angle right, and you 41 00:01:59,759 --> 00:02:04,099 can't see the screen? That's a bad experience. Or 42 00:02:04,099 --> 00:02:08,190 doors. The handle would imply pull. Horizontal bar kind 43 00:02:08,190 --> 00:02:10,800 of implies push. But here, you have to put 44 00:02:10,800 --> 00:02:11,910 a label on it. 45 00:02:11,910 --> 00:02:13,580 Now, you can apply this to a lot of 46 00:02:13,580 --> 00:02:16,890 things you've probably worked on, where it's so unintelligible 47 00:02:16,890 --> 00:02:19,870 that it has to be overly labeled and overly 48 00:02:19,870 --> 00:02:22,790 documented. Because the experience is not clear. 49 00:02:22,790 --> 00:02:26,230 And this is always a fun one, you know. 50 00:02:26,230 --> 00:02:30,379 But why do exterior doors go out? Well, Chicago, 51 00:02:30,379 --> 00:02:36,000 Illinois, in fact, Iroquois Theater. 1903, 600 people died 52 00:02:36,000 --> 00:02:37,950 in a fire, because they tried to get out 53 00:02:37,950 --> 00:02:41,109 of a building. The doors opened in, and they 54 00:02:41,109 --> 00:02:43,390 crammed up against the doors and couldn't get out. 55 00:02:43,390 --> 00:02:45,959 We're gonna talk about that here in a little 56 00:02:45,959 --> 00:02:48,319 bit. But that's something to think about why those 57 00:02:48,319 --> 00:02:51,310 doors work that way. Why is that experience that 58 00:02:51,310 --> 00:02:52,209 way. 59 00:02:52,209 --> 00:02:55,349 So, when we talk about UX, what is UX? 60 00:02:55,349 --> 00:02:57,870 We're gonna define that real quick. It was created 61 00:02:57,870 --> 00:03:01,790 in the early 1980s usability broadly, to refer to 62 00:03:01,790 --> 00:03:04,909 what was a number of vague and subjective attributes 63 00:03:04,909 --> 00:03:09,129 of a product. And it's user-friendly characteristics is what 64 00:03:09,129 --> 00:03:11,249 they call them. 65 00:03:11,249 --> 00:03:13,840 And this marked the beginning of a shift, from 66 00:03:13,840 --> 00:03:16,629 a phase that we're focused on the features into 67 00:03:16,629 --> 00:03:18,760 a term that was becoming more concerned with the 68 00:03:18,760 --> 00:03:22,120 various facets of how people worked with those features. 69 00:03:22,120 --> 00:03:26,450 So the International Standards Organization, ISO, this is in 70 00:03:26,450 --> 00:03:30,439 ISO 9241, is that usability is the effectiveness, efficiency 71 00:03:30,439 --> 00:03:34,139 and satisfaction with which specified users achieve specified goals 72 00:03:34,139 --> 00:03:36,290 in particular environments. 73 00:03:36,290 --> 00:03:39,709 Pretty dry. Pretty generic. Jakob Nielsen gives us a 74 00:03:39,709 --> 00:03:41,879 nice little five point thing. You can love or 75 00:03:41,879 --> 00:03:44,189 hate Jakob Nielsen, but he is kind of one 76 00:03:44,189 --> 00:03:47,670 of the big human factors guys of software development. 77 00:03:47,670 --> 00:03:50,620 So he says that it is the promptness with 78 00:03:50,620 --> 00:03:54,219 which users learn something, the efficiency that they attain 79 00:03:54,219 --> 00:03:56,639 making use of it, how easy it is for 80 00:03:56,639 --> 00:04:00,200 them to remember how to use it, how error-prone 81 00:04:00,200 --> 00:04:03,269 that is, and then the level of satisfaction they 82 00:04:03,269 --> 00:04:06,150 attain from using the system. 83 00:04:06,150 --> 00:04:07,879 And so it comes back to, a lot of 84 00:04:07,879 --> 00:04:10,019 these things are applied because they're the experience of 85 00:04:10,019 --> 00:04:16,209 many years. And many mistakes. 86 00:04:16,209 --> 00:04:19,399 So going back to the Iroquois Theater fire, architectural 87 00:04:19,399 --> 00:04:22,540 building codes changed a lot in the early 1900s. 88 00:04:22,540 --> 00:04:25,500 They actually started to come into, really started to 89 00:04:25,500 --> 00:04:28,200 be happening between the San Francisco earthquake and events 90 00:04:28,200 --> 00:04:30,880 like this. You really started to see them say, 91 00:04:30,880 --> 00:04:32,880 you know, we should say that you legally have 92 00:04:32,880 --> 00:04:34,880 to build a building this way. So now you'll 93 00:04:34,880 --> 00:04:37,760 notice any commercial building, the exterior door will open 94 00:04:37,760 --> 00:04:40,410 out, or it will break away. 95 00:04:40,410 --> 00:04:43,500 So, you'll notice on revolving doors that you can 96 00:04:43,500 --> 00:04:45,190 actually kind of break away. Like, if you cram 97 00:04:45,190 --> 00:04:47,290 into a revolving door, those doors will give with 98 00:04:47,290 --> 00:04:49,100 enough force. 99 00:04:49,100 --> 00:04:51,510 So that's, you know, over time we've learned these 100 00:04:51,510 --> 00:04:53,640 things. We've applied them, and they make the experience 101 00:04:53,640 --> 00:04:56,430 better and safer for everybody. 102 00:04:56,430 --> 00:05:00,570 So, let's get into looking at designs specifically around 103 00:05:00,570 --> 00:05:03,540 software. So there's various processes and methods, and I 104 00:05:03,540 --> 00:05:05,060 want to kind of compare and contrast some stuff 105 00:05:05,060 --> 00:05:07,590 for you real quick. The first is waterfall, which 106 00:05:07,590 --> 00:05:09,890 I'm sure most of you have heard or experienced 107 00:05:09,890 --> 00:05:15,540 at some point. Large deliverable documents, excessive documentation. 108 00:05:15,540 --> 00:05:17,980 But this comes from projects in engineering, like, in 109 00:05:17,980 --> 00:05:21,220 traditional engineering and architecture, where the design is finished 110 00:05:21,220 --> 00:05:27,310 and approved before you start building it. And, this 111 00:05:27,310 --> 00:05:31,060 is something from a project management tool, like Microsoft 112 00:05:31,060 --> 00:05:33,710 Project or something like that. It's called a Gant 113 00:05:33,710 --> 00:05:36,310 chart. The red is the critical path. Things that 114 00:05:36,310 --> 00:05:38,560 have to happen in a certain order and have 115 00:05:38,560 --> 00:05:40,270 to be finished before the next step can be 116 00:05:40,270 --> 00:05:40,790 completed. 117 00:05:40,790 --> 00:05:43,440 Now, any delay in there can really mess up 118 00:05:43,440 --> 00:05:47,580 the whole timeline of a project. And, this is 119 00:05:47,580 --> 00:05:50,960 what typical waterfall processes look like. 120 00:05:50,960 --> 00:05:53,340 You define the problem, you come up with a 121 00:05:53,340 --> 00:05:55,680 design that solves that problem, then you build that 122 00:05:55,680 --> 00:05:58,590 design, you test that, and you deploy it. And 123 00:05:58,590 --> 00:06:01,120 this is usually the entire enchilada. We are not 124 00:06:01,120 --> 00:06:04,280 even gonna go into like, this is, you, shrink 125 00:06:04,280 --> 00:06:06,160 this down really small and it is kind of, 126 00:06:06,160 --> 00:06:08,360 in a way, agile, but we're gonna not even 127 00:06:08,360 --> 00:06:10,270 bother talking to engineers. We're going to go spend 128 00:06:10,270 --> 00:06:12,520 six months writing up requirements. 129 00:06:12,520 --> 00:06:14,460 Then the design engineer, the design guys are gonna 130 00:06:14,460 --> 00:06:16,250 go for three months and work up all these 131 00:06:16,250 --> 00:06:18,460 designs and have a 300 page document that they 132 00:06:18,460 --> 00:06:21,940 turn over to engineering, who then builds that. 133 00:06:21,940 --> 00:06:24,540 So, you know, that's just one of these little 134 00:06:24,540 --> 00:06:26,690 things here. And that can take a long time. 135 00:06:26,690 --> 00:06:29,230 And while you're doing this work, the business and 136 00:06:29,230 --> 00:06:32,930 the world is changing. So the likelihood of you 137 00:06:32,930 --> 00:06:36,210 building the wrong thing and being two years behind 138 00:06:36,210 --> 00:06:39,130 the power curve in this process is high. And 139 00:06:39,130 --> 00:06:40,920 it all comes down to, this was all about 140 00:06:40,920 --> 00:06:41,160 deliverables. 141 00:06:41,160 --> 00:06:42,290 So it has, if I was running a design 142 00:06:42,290 --> 00:06:45,220 agency, I want to maximize the deliverables, because that's 143 00:06:45,220 --> 00:06:47,050 maximizing the amount of time I'm gonna be spending 144 00:06:47,050 --> 00:06:52,300 working on building this stuff for people. Wire frames, 145 00:06:52,300 --> 00:06:54,560 big, you'll see these documents where they have the 146 00:06:54,560 --> 00:06:57,050 whole screen laid out and everything is specified by 147 00:06:57,050 --> 00:06:59,320 pixel, and instead they could have just made a 148 00:06:59,320 --> 00:07:01,990 prototype and, and had been testing it already. Instead 149 00:07:01,990 --> 00:07:03,750 of having to say, well, this is twenty-one pixel 150 00:07:03,750 --> 00:07:07,020 Verdana. No. Go. Just put in CSS. Build it. 151 00:07:07,020 --> 00:07:07,860 Go. 152 00:07:07,860 --> 00:07:11,730 You'll hear people fight against that they're not waterfall, 153 00:07:11,730 --> 00:07:14,570 and the developers will say, hey, we're agile. Well, 154 00:07:14,570 --> 00:07:17,500 the developers may be agile, but each cylo is 155 00:07:17,500 --> 00:07:19,440 still throwing things over the wall, or over the 156 00:07:19,440 --> 00:07:21,270 trenches as some people will call it. 157 00:07:21,270 --> 00:07:23,250 So, within product, they are kind of churning on 158 00:07:23,250 --> 00:07:25,750 their stuff. And then they go talk to design 159 00:07:25,750 --> 00:07:27,470 and they have a hand off. And then design 160 00:07:27,470 --> 00:07:29,840 works on their stuff in an iterative fashion. But 161 00:07:29,840 --> 00:07:35,110 they're not iterating together. So this is still waterfall. 162 00:07:35,110 --> 00:07:38,390 Product talks to customers, and the developers don't get 163 00:07:38,390 --> 00:07:40,180 to talk to customers. Now there's, when you start 164 00:07:40,180 --> 00:07:42,270 having all those separations, you know you've got a 165 00:07:42,270 --> 00:07:43,620 problem. 166 00:07:43,620 --> 00:07:47,430 So, instead of relying on this, like, mythical design 167 00:07:47,430 --> 00:07:49,120 hero to come in and say here is the 168 00:07:49,120 --> 00:07:52,360 solution that will solve all your ills, we're gonna 169 00:07:52,360 --> 00:07:57,600 start talking about the misappropriated but adequately named lean 170 00:07:57,600 --> 00:08:01,640 UX. So it's really about design facilitation as opposed 171 00:08:01,640 --> 00:08:04,920 to, here's my beautiful design that you will build. 172 00:08:04,920 --> 00:08:08,320 So, when we talk about lean UX, it's really 173 00:08:08,320 --> 00:08:11,440 a three part process. It involves design thinking. It 174 00:08:11,440 --> 00:08:15,970 involves agile, and in the traditional agile manifesto mentality, 175 00:08:15,970 --> 00:08:18,580 and it pulls heavily on the lean startup book 176 00:08:18,580 --> 00:08:21,380 from a couple years back. So design thinking came 177 00:08:21,380 --> 00:08:24,380 out of a idea, which is a big product 178 00:08:24,380 --> 00:08:26,760 ideation. I hate that word, but it's what they 179 00:08:26,760 --> 00:08:28,460 do. They come up, they create products. 180 00:08:28,460 --> 00:08:30,720 And the CEO came up with that. And it's 181 00:08:30,720 --> 00:08:34,828 innovating, based on direct observation, about what people want 182 00:08:34,828 --> 00:08:38,659 and need. So, instead of going in and actually, 183 00:08:38,659 --> 00:08:41,450 like, thinking and saying, what if, what if? They 184 00:08:41,450 --> 00:08:43,529 actually go and start talking to real people and 185 00:08:43,529 --> 00:08:45,540 finding out what they want, finding out what they 186 00:08:45,540 --> 00:08:47,670 need, and then coming up with solutions that fit 187 00:08:47,670 --> 00:08:51,300 those problems. And, they use sensibilities and methods to 188 00:08:51,300 --> 00:08:54,209 match these needs with something that's actually a viable 189 00:08:54,209 --> 00:08:56,930 market product. 190 00:08:56,930 --> 00:08:59,899 Part two of that's agile. Melissa Perry posted this 191 00:08:59,899 --> 00:09:02,680 a couple days ago. She's a big UX person. 192 00:09:02,680 --> 00:09:05,029 And I think this is probably, when every manager 193 00:09:05,029 --> 00:09:07,269 says agile, what every developer thinks is going to 194 00:09:07,269 --> 00:09:10,560 happen. And it's the, that was your training. And 195 00:09:10,560 --> 00:09:12,339 pretty much whenever I hear some manager say this 196 00:09:12,339 --> 00:09:13,709 and it's obvious that they don't really know what 197 00:09:13,709 --> 00:09:15,680 they're talking about, I kind of just feel like 198 00:09:15,680 --> 00:09:18,720 this, and it's just. No. We're not gonna do 199 00:09:18,720 --> 00:09:19,449 that. 200 00:09:19,449 --> 00:09:22,660 So agile should be. Everyone pretty familiar with this? 201 00:09:22,660 --> 00:09:25,540 Or at least have heard about it before? This 202 00:09:25,540 --> 00:09:28,129 is from 2001. And it really talks about these 203 00:09:28,129 --> 00:09:32,060 four principles. And it's really in response to the 204 00:09:32,060 --> 00:09:34,040 software development of the time and how things were 205 00:09:34,040 --> 00:09:37,199 being built. But I think it really applies a 206 00:09:37,199 --> 00:09:40,029 lot more to kind of orienteering. And I'm talking 207 00:09:40,029 --> 00:09:43,439 about map-reading and land navigation when I talk about 208 00:09:43,439 --> 00:09:43,839 orienteering. 209 00:09:43,839 --> 00:09:46,579 So, the good old boy scout method, you know, 210 00:09:46,579 --> 00:09:49,129 with sitting there and trying to figure out how 211 00:09:49,129 --> 00:09:50,540 you're gonna get from point a to point b. 212 00:09:50,540 --> 00:09:52,259 So, in orienteering, the first thing you need to 213 00:09:52,259 --> 00:09:54,170 do is find out where you are. Then you 214 00:09:54,170 --> 00:09:56,629 shoot an azimuth and choose your target. You say, 215 00:09:56,629 --> 00:09:58,389 this is the angle I'm gonna go to get 216 00:09:58,389 --> 00:09:59,670 there, and there's a target that I am going 217 00:09:59,670 --> 00:10:02,800 to walk to. You move to that target and 218 00:10:02,800 --> 00:10:04,459 you repeat. And you keep doing this. 219 00:10:04,459 --> 00:10:06,110 And it's not just about getting yourself from point 220 00:10:06,110 --> 00:10:08,079 a to point b, but it's about leading a 221 00:10:08,079 --> 00:10:11,050 group of people all in the same direction and 222 00:10:11,050 --> 00:10:14,259 sometimes doing complex things. So, when you talk about 223 00:10:14,259 --> 00:10:16,860 agile, Dave Thomas sums it up this way. You 224 00:10:16,860 --> 00:10:18,399 find out where you are. You take a small 225 00:10:18,399 --> 00:10:21,410 step towards your goal. You adjust your understanding based 226 00:10:21,410 --> 00:10:24,870 on what you learned, and you repeat. 227 00:10:24,870 --> 00:10:26,970 Which also comes down to the lean startup mentality 228 00:10:26,970 --> 00:10:30,370 of build, measure, learn. And you're gonna repeat that 229 00:10:30,370 --> 00:10:32,509 process. So it's not the measure in the sense 230 00:10:32,509 --> 00:10:34,790 of, which of these forty blue shades is the 231 00:10:34,790 --> 00:10:37,749 right button, but measure in the bigger sense of, 232 00:10:37,749 --> 00:10:40,180 is this, when we have a design idea, we're 233 00:10:40,180 --> 00:10:43,149 gonna try and solve this problem. Does this actually 234 00:10:43,149 --> 00:10:45,079 solve the problem or not? And we're gonna measure 235 00:10:45,079 --> 00:10:49,759 the efficacy with which it solves that problem. 236 00:10:49,759 --> 00:10:52,350 So this is kind of the UX process inside 237 00:10:52,350 --> 00:10:57,300 lean, and this can really be applied, it's, it's, 238 00:10:57,300 --> 00:10:59,730 to the whole thing, cause it's not that design 239 00:10:59,730 --> 00:11:05,740 is separate from development. Everybody's working together. Everybody's involved. 240 00:11:05,740 --> 00:11:07,740 So instead of having your designer go off and 241 00:11:07,740 --> 00:11:10,649 come up with something, designers, developers, product people are 242 00:11:10,649 --> 00:11:14,120 all working together through these steps. 243 00:11:14,120 --> 00:11:15,519 So we're gonna come up with a concept, we're 244 00:11:15,519 --> 00:11:17,149 gonna do a really quick prototype, just get the 245 00:11:17,149 --> 00:11:18,800 idea enough that we can work with it and 246 00:11:18,800 --> 00:11:21,149 show somebody, and we're gonna validate it, and then 247 00:11:21,149 --> 00:11:23,089 we're gonna learn from that and we're gonna repeat 248 00:11:23,089 --> 00:11:24,939 the process. 249 00:11:24,939 --> 00:11:27,689 So the formal definition of lean UX here is 250 00:11:27,689 --> 00:11:30,759 from the lean UX book, and you know it's 251 00:11:30,759 --> 00:11:32,430 trying to bring the true nature of a product 252 00:11:32,430 --> 00:11:35,680 to light faster. And there's a couple tools that 253 00:11:35,680 --> 00:11:37,759 really assist in this space to help us with 254 00:11:37,759 --> 00:11:39,399 that. One of them is personas. 255 00:11:39,399 --> 00:11:41,499 So you can have personas that are kind of 256 00:11:41,499 --> 00:11:43,319 formal, like on the left, or you really, really 257 00:11:43,319 --> 00:11:46,899 kind of laid back like on the right. And, 258 00:11:46,899 --> 00:11:49,439 this is really along the lines of BDD. So 259 00:11:49,439 --> 00:11:51,999 if you're doing, you know, as a user, the 260 00:11:51,999 --> 00:11:54,059 system admin, we'll give him a name. Give her 261 00:11:54,059 --> 00:11:54,589 a name. 262 00:11:54,589 --> 00:11:56,680 Go ahead and make that a person, pin them 263 00:11:56,680 --> 00:11:58,170 up on the wall, talk about them like a 264 00:11:58,170 --> 00:12:00,269 real person. It really takes it out of this 265 00:12:00,269 --> 00:12:04,369 theoretical, you know, well here's a, you know, Q&A 266 00:12:04,369 --> 00:12:07,189 admin that's doing blah blah blah. Give them a 267 00:12:07,189 --> 00:12:09,619 name, a personality, and it lets you care about 268 00:12:09,619 --> 00:12:12,860 them in a different way than this theoretical person. 269 00:12:12,860 --> 00:12:14,949 You can also have a little more, like, formal 270 00:12:14,949 --> 00:12:16,709 documents. These were things that we wrote up when 271 00:12:16,709 --> 00:12:19,730 we did customer support. We rebuilt their system at 272 00:12:19,730 --> 00:12:22,240 Living Social. So we didn't draw up something, but 273 00:12:22,240 --> 00:12:24,240 we came up with, kind of, like, here's the, 274 00:12:24,240 --> 00:12:25,459 the point. So we want to talk about, and, 275 00:12:25,459 --> 00:12:27,249 you know, it's the name, what's the name of 276 00:12:27,249 --> 00:12:31,029 the person. Like, the title. Cause there's a lot 277 00:12:31,029 --> 00:12:32,959 of, in, in bigger companies, a lot of titles 278 00:12:32,959 --> 00:12:36,670 start to really define roles effectively. 279 00:12:36,670 --> 00:12:40,990 The duties, the goals, the fears, the aspirations. You 280 00:12:40,990 --> 00:12:43,040 know, what are their computer skills. It really matters. 281 00:12:43,040 --> 00:12:45,389 Cause if you're dealing with experts, you're gonna build 282 00:12:45,389 --> 00:12:46,699 a different system than if you're dealing with a 283 00:12:46,699 --> 00:12:47,509 computer novice. 284 00:12:47,509 --> 00:12:50,600 Means of communication. How do they like to talk. 285 00:12:50,600 --> 00:12:52,220 Do they use IM. Are they are email? Would 286 00:12:52,220 --> 00:12:53,749 they rather pick up the phone and call you? 287 00:12:53,749 --> 00:12:56,389 Again, it's gonna effect the way you design the 288 00:12:56,389 --> 00:12:57,490 system. 289 00:12:57,490 --> 00:13:00,350 And instead of sitting there and making big documents, 290 00:13:00,350 --> 00:13:01,860 you break out paper or you break out the 291 00:13:01,860 --> 00:13:04,970 whiteboard. This is a flow diagram for a project 292 00:13:04,970 --> 00:13:07,009 I was working on at home. And, took me 293 00:13:07,009 --> 00:13:08,660 ten minutes to sketch it out and kind of 294 00:13:08,660 --> 00:13:10,389 figure out the flows of what I wanted to 295 00:13:10,389 --> 00:13:14,740 do. This was for reviewing creating materials. 296 00:13:14,740 --> 00:13:16,519 This is something we did for email. We were 297 00:13:16,519 --> 00:13:20,519 handling multi-city emails at Living Social. That is the 298 00:13:20,519 --> 00:13:22,800 design. We took that, we went right to code. 299 00:13:22,800 --> 00:13:26,149 You do a lot of sketching. I prefer to 300 00:13:26,149 --> 00:13:28,800 use architectural trace paper. This twelve inch roll of 301 00:13:28,800 --> 00:13:31,350 fifty yards long. You can lay it over another 302 00:13:31,350 --> 00:13:33,110 sheet, very easily, like you see here. That's one 303 00:13:33,110 --> 00:13:35,509 sheet laid over another. So I can get elements 304 00:13:35,509 --> 00:13:37,170 that are repeating very quickly. If I want a 305 00:13:37,170 --> 00:13:39,089 modal I just draw the modal and then, boom, 306 00:13:39,089 --> 00:13:40,569 there you go. You can talk about it. 307 00:13:40,569 --> 00:13:41,759 So, then I can pin these up on the 308 00:13:41,759 --> 00:13:43,569 wall or they can sit there on the table 309 00:13:43,569 --> 00:13:45,709 and just talk about what's going on. And it's 310 00:13:45,709 --> 00:13:48,529 not, I don't like this font. I really don't 311 00:13:48,529 --> 00:13:51,160 like that green or, you know, is this gonna 312 00:13:51,160 --> 00:13:53,179 be this big? No, it's just a sketch. And 313 00:13:53,179 --> 00:13:55,699 you can hand the pen to the person. Everybody 314 00:13:55,699 --> 00:13:57,550 can scribble. 315 00:13:57,550 --> 00:13:59,119 Ryan Singer, I think, has a lot of great 316 00:13:59,119 --> 00:14:01,610 examples of where they even do copy and it's 317 00:14:01,610 --> 00:14:05,129 little, just, lines. It's, there's no formality to it. 318 00:14:05,129 --> 00:14:06,679 It's, this is a block of copy. This is 319 00:14:06,679 --> 00:14:08,949 a headline and it's a squiggle. And that's great 320 00:14:08,949 --> 00:14:11,029 because you don't feel like, oh I need to 321 00:14:11,029 --> 00:14:13,230 be an artist. 322 00:14:13,230 --> 00:14:15,879 So, applying these things, I've done this a couple 323 00:14:15,879 --> 00:14:17,360 different ways and we didn't know what we were 324 00:14:17,360 --> 00:14:20,110 doing. One of these things that we did a 325 00:14:20,110 --> 00:14:21,809 lot with the info ether days is that we 326 00:14:21,809 --> 00:14:24,269 did working in parallel. So, our first client meeting 327 00:14:24,269 --> 00:14:26,319 would go something, you know, like this. We'd all 328 00:14:26,319 --> 00:14:28,809 be in the room together with the client, and 329 00:14:28,809 --> 00:14:31,160 I'd be sitting there working on flows while somebody 330 00:14:31,160 --> 00:14:33,839 like Rich or Chad were actually pulling out domain 331 00:14:33,839 --> 00:14:37,119 objects, and actually teaching the customer, you can say 332 00:14:37,119 --> 00:14:38,679 model. We actually wouldn't sit there and try and 333 00:14:38,679 --> 00:14:39,850 make up a new language for them. 334 00:14:39,850 --> 00:14:41,319 We'd teach them what a model was, we'd teach 335 00:14:41,319 --> 00:14:43,369 them what the domain meant. And we'd actually get 336 00:14:43,369 --> 00:14:45,449 them into our head space. And so we'd come 337 00:14:45,449 --> 00:14:48,809 out and build and we'd have usability and functionality. 338 00:14:48,809 --> 00:14:50,920 They already were committing to the Git repo, and 339 00:14:50,920 --> 00:14:52,100 we had a bunch of sketches either on a 340 00:14:52,100 --> 00:14:54,759 whiteboard or on paper about how that flow is 341 00:14:54,759 --> 00:14:56,990 gonna work. Sometimes we even had diagrams of page 342 00:14:56,990 --> 00:14:57,660 layout. 343 00:14:57,660 --> 00:15:02,179 So it's really about sketching and building simultaneously. These 344 00:15:02,179 --> 00:15:04,809 are some sharets I did for the State Decoded, 345 00:15:04,809 --> 00:15:08,689 which is a, a Night Foundation opening government project. 346 00:15:08,689 --> 00:15:09,939 These little things on the left are an inch 347 00:15:09,939 --> 00:15:11,749 square. I was trying to come up with some 348 00:15:11,749 --> 00:15:14,619 early ideas of how the, the main landing page 349 00:15:14,619 --> 00:15:17,369 would look, would lay out. And so just, there's 350 00:15:17,369 --> 00:15:20,110 very little detail there. It's like, maybe copy here. 351 00:15:20,110 --> 00:15:22,189 Maybe headline here. Here's a feature images. Here's some 352 00:15:22,189 --> 00:15:25,100 other images. And, you know, I'd like, I liked 353 00:15:25,100 --> 00:15:26,410 the third one I did, so then I developed 354 00:15:26,410 --> 00:15:27,629 that a little better. But you can see it's 355 00:15:27,629 --> 00:15:31,339 literally squiggles. There is nothing there of copy outside 356 00:15:31,339 --> 00:15:33,089 of the name. 357 00:15:33,089 --> 00:15:34,800 And then that goes, and I took that into 358 00:15:34,800 --> 00:15:36,740 photoshop to get something a little more formal, cause 359 00:15:36,740 --> 00:15:39,189 I didn't have any brand build around it yet. 360 00:15:39,189 --> 00:15:41,759 Any, any, you know, kind of vibe. And so 361 00:15:41,759 --> 00:15:43,149 we took that and did this and then this 362 00:15:43,149 --> 00:15:45,360 went to build out. While this was happening, while 363 00:15:45,360 --> 00:15:47,480 the Jquith who's now running the Open Data Institute 364 00:15:47,480 --> 00:15:50,679 was building this code in PHP, with no idea 365 00:15:50,679 --> 00:15:52,779 of how my frontend was gonna look. And we 366 00:15:52,779 --> 00:15:54,429 married them up later. But we knew the functionality. 367 00:15:54,429 --> 00:15:57,720 We had agreed upon how things were gonna work. 368 00:15:57,720 --> 00:16:01,929 And, so sometimes this comes down to prototyping, and 369 00:16:01,929 --> 00:16:04,769 looking at things from a big picture level. And 370 00:16:04,769 --> 00:16:06,319 a couple of things you can do. If you 371 00:16:06,319 --> 00:16:09,369 don't know your end users, one good way to 372 00:16:09,369 --> 00:16:11,579 learn really fast is to do what's called a 373 00:16:11,579 --> 00:16:14,889 mental model. Indie Young is a UX person. She 374 00:16:14,889 --> 00:16:18,540 was at Adaptive Path for a long time and 375 00:16:18,540 --> 00:16:22,019 now she's out consulting. And it's really about identifying, 376 00:16:22,019 --> 00:16:26,369 like, this would be somebody's morning mental model. Prototypical 377 00:16:26,369 --> 00:16:27,259 morning. 378 00:16:27,259 --> 00:16:29,050 Excuse me. 379 00:16:29,050 --> 00:16:33,319 So. It's, it's drawn organizing factor to figure out 380 00:16:33,319 --> 00:16:35,559 what the users are doing before you type any 381 00:16:35,559 --> 00:16:38,350 code. Or before you even draw on the design 382 00:16:38,350 --> 00:16:42,079 mock-up. And it's a visualization of your research data. 383 00:16:42,079 --> 00:16:43,600 So if you know what's going on, you don't 384 00:16:43,600 --> 00:16:45,559 need this. But if you have no idea what's 385 00:16:45,559 --> 00:16:48,239 going on and you really don't know your users, 386 00:16:48,239 --> 00:16:50,100 or you, you're on a system that's been around 387 00:16:50,100 --> 00:16:51,790 for awhile and people are complaining that it doesn't 388 00:16:51,790 --> 00:16:54,670 solve their needs anymore, this is a great exercise 389 00:16:54,670 --> 00:16:58,230 to find out what those needs are. 390 00:16:58,230 --> 00:17:00,519 You can also do stuff with, just kind of 391 00:17:00,519 --> 00:17:02,910 big picture ideas. When I first started doing the 392 00:17:02,910 --> 00:17:06,079 design at Living Social for our internal tools, they 393 00:17:06,079 --> 00:17:07,429 kind of said, just come up with, you know, 394 00:17:07,429 --> 00:17:09,199 combine all these things together, go talk to people. 395 00:17:09,199 --> 00:17:11,819 Come up with kind of like, an ideal world. 396 00:17:11,819 --> 00:17:13,559 And so I put together about six mock-ups that 397 00:17:13,559 --> 00:17:15,569 were about at this level, and I took them 398 00:17:15,569 --> 00:17:17,569 and we presented them to Aaron Batalion, who was 399 00:17:17,569 --> 00:17:21,640 the CTO. And engineering was already moving towards, we 400 00:17:21,640 --> 00:17:23,490 had already started breaking up our monolithic app at 401 00:17:23,490 --> 00:17:25,980 the time, and they were moving towards a service-based 402 00:17:25,980 --> 00:17:27,648 architecture. So we kind of had an idea of 403 00:17:27,648 --> 00:17:30,010 what we were doing, but we hadn't really finalized 404 00:17:30,010 --> 00:17:30,870 it yet. 405 00:17:30,870 --> 00:17:33,750 And Aaron Batalion just looked at me very seriously 406 00:17:33,750 --> 00:17:35,330 and said, you do realize that's eighteen months of 407 00:17:35,330 --> 00:17:38,190 work. Like, what I had put into six screens. 408 00:17:38,190 --> 00:17:40,940 And, so yeah. But what was great about this 409 00:17:40,940 --> 00:17:43,630 was we had an idea of what could happen. 410 00:17:43,630 --> 00:17:45,019 So then we were able to talk about that. 411 00:17:45,019 --> 00:17:47,340 Pull things out, break things apart, and things evolved 412 00:17:47,340 --> 00:17:49,330 from this. And over time we started working on 413 00:17:49,330 --> 00:17:52,649 different projects solving different problems. Like, this was our 414 00:17:52,649 --> 00:17:55,720 scheduler prototype that we built. 415 00:17:55,720 --> 00:17:57,169 And you start putting these in front of people. 416 00:17:57,169 --> 00:17:59,029 So we went down to our actual people that 417 00:17:59,029 --> 00:18:02,100 were scheduling deals and we did usability testing. Now, 418 00:18:02,100 --> 00:18:04,330 usability testing is hard, because you often can end 419 00:18:04,330 --> 00:18:06,450 up in this situation where you're trying to be 420 00:18:06,450 --> 00:18:08,299 all chipper about it and the person's just, like, 421 00:18:08,299 --> 00:18:10,690 this is awful. This is horrible. It's great. I 422 00:18:10,690 --> 00:18:12,440 love it. Yeah, that's wonderful. 423 00:18:12,440 --> 00:18:15,860 So we started recording things with Silverback. And with 424 00:18:15,860 --> 00:18:17,429 Silverback, what you do is you end up getting 425 00:18:17,429 --> 00:18:19,250 a screen like this. And so this is one 426 00:18:19,250 --> 00:18:21,549 of our live tests we did, with Jean O'Reilly 427 00:18:21,549 --> 00:18:25,000 who is one of our senior scheduling people. And 428 00:18:25,000 --> 00:18:27,460 basically, instead of all of engineering sitting, that was 429 00:18:27,460 --> 00:18:29,240 working on this project sitting around her, making her 430 00:18:29,240 --> 00:18:31,419 feel uncomfortable, we had one person talking through some 431 00:18:31,419 --> 00:18:34,289 stuff with her. Just getting first impressions. How would 432 00:18:34,289 --> 00:18:37,250 you do this? Very leading questions. You, you want 433 00:18:37,250 --> 00:18:38,370 the door wide open. 434 00:18:38,370 --> 00:18:40,929 But, you basically get all her clicks, and you 435 00:18:40,929 --> 00:18:43,860 can see how often she's doing select all and 436 00:18:43,860 --> 00:18:45,919 things like that. But it's really interesting to see 437 00:18:45,919 --> 00:18:48,320 how somebody starts interacting with something they haven't seen 438 00:18:48,320 --> 00:18:51,200 before. And this records her video down in the 439 00:18:51,200 --> 00:18:53,399 bottom with the, from just the camera on the 440 00:18:53,399 --> 00:18:55,140 mac, and you also get audio. 441 00:18:55,140 --> 00:18:57,059 So we could then sit there and review these. 442 00:18:57,059 --> 00:18:59,000 Each one was a twenty, thirty minute session, working 443 00:18:59,000 --> 00:19:02,620 through various questions. And we took those back and 444 00:19:02,620 --> 00:19:06,019 then iterated on things. 445 00:19:06,019 --> 00:19:09,010 Sometimes you're working in such a big problem that 446 00:19:09,010 --> 00:19:10,740 you have to kind of do the rewrite. So 447 00:19:10,740 --> 00:19:12,960 this was our customer support tool that we rebuilt. 448 00:19:12,960 --> 00:19:14,890 It was originally Sales Force. They were working in 449 00:19:14,890 --> 00:19:17,519 Sales Force. This is backed by Sales Force. But 450 00:19:17,519 --> 00:19:19,640 this is a backbone project on top of a 451 00:19:19,640 --> 00:19:22,929 Rails app, and it's super complex. And it's two 452 00:19:22,929 --> 00:19:25,140 screens. So they have two nineteen inch monitors, this 453 00:19:25,140 --> 00:19:27,330 is the left and this is the right. 454 00:19:27,330 --> 00:19:29,649 Now, all these things that we were doing, we 455 00:19:29,649 --> 00:19:31,429 had done so much shadowing. We knew all these 456 00:19:31,429 --> 00:19:34,750 pain points, all these things they hated, but building 457 00:19:34,750 --> 00:19:36,380 all this, again, this is one of those took 458 00:19:36,380 --> 00:19:38,440 a year to kind of get to this point. 459 00:19:38,440 --> 00:19:39,779 So what we started doing is that we went 460 00:19:39,779 --> 00:19:42,899 in and fixed the pain points when we could. 461 00:19:42,899 --> 00:19:45,090 Instead of waiting to build that perfect screen, we 462 00:19:45,090 --> 00:19:47,250 went on the production system and fixed that one 463 00:19:47,250 --> 00:19:50,169 little interaction that was driving them nuts, and then 464 00:19:50,169 --> 00:19:51,450 we'd go and do the next one and go 465 00:19:51,450 --> 00:19:53,140 and do the next one at the same time, 466 00:19:53,140 --> 00:19:55,010 while we're building. 467 00:19:55,010 --> 00:19:56,470 And so this is really comes down to kind 468 00:19:56,470 --> 00:19:58,850 of a, a better way of doing things is 469 00:19:58,850 --> 00:20:02,029 almost, I call just in time. So you start 470 00:20:02,029 --> 00:20:05,620 with a big-picture design process. Then you apply that 471 00:20:05,620 --> 00:20:09,019 design. You codify it into a living styleguide. So 472 00:20:09,019 --> 00:20:11,889 this is a code styleguide, not a print document. 473 00:20:11,889 --> 00:20:13,830 And you revise as you go. 474 00:20:13,830 --> 00:20:16,230 So, with the just in time kind of project, 475 00:20:16,230 --> 00:20:18,970 you know, UX joins at some point. It may 476 00:20:18,970 --> 00:20:21,190 be the very beginning, it may not be. And, 477 00:20:21,190 --> 00:20:22,409 you know, you're starting there. You just kind of 478 00:20:22,409 --> 00:20:24,240 get your legs, get a feel for where you 479 00:20:24,240 --> 00:20:26,409 are, and you do it in a really intense 480 00:20:26,409 --> 00:20:28,500 design push at the beginning. You do a big 481 00:20:28,500 --> 00:20:30,649 spike. You get your overall design stuff happening. You 482 00:20:30,649 --> 00:20:33,159 get your design language established. And you are right 483 00:20:33,159 --> 00:20:34,789 in on tickets. 484 00:20:34,789 --> 00:20:37,200 And, so some of that stuff we did, we 485 00:20:37,200 --> 00:20:39,330 built at Living Social for our internal lab, something 486 00:20:39,330 --> 00:20:41,960 called Wilde. If any of you say Ed Lang's 487 00:20:41,960 --> 00:20:45,139 lightning talk before lunch, they, he was talking about 488 00:20:45,139 --> 00:20:49,029 the system they used for the, the customer facing 489 00:20:49,029 --> 00:20:51,380 side. This is all the internal tool stuff. 490 00:20:51,380 --> 00:20:52,769 So we built this as a Ruby gem that 491 00:20:52,769 --> 00:20:55,309 people could pull down and install, and it immediately 492 00:20:55,309 --> 00:20:56,720 gave them all of the set up parts to 493 00:20:56,720 --> 00:20:58,590 build apps with. 494 00:20:58,590 --> 00:21:00,950 So instead of having to worry about, do I 495 00:21:00,950 --> 00:21:02,649 put this here, do I put that there? They 496 00:21:02,649 --> 00:21:05,330 immediately had kind of a framework for an interface 497 00:21:05,330 --> 00:21:09,510 to build their applications. It also had built-in documentation. 498 00:21:09,510 --> 00:21:10,600 So all of this stuff they could go in 499 00:21:10,600 --> 00:21:12,940 and find out how to use these different things. 500 00:21:12,940 --> 00:21:14,500 We took parts of Bootstrap, we took parts of 501 00:21:14,500 --> 00:21:16,429 Compass and Bourbon, and we kind of brought all 502 00:21:16,429 --> 00:21:18,559 of this together into a big scss framework with 503 00:21:18,559 --> 00:21:20,299 our own design elements. 504 00:21:20,299 --> 00:21:22,500 So, some of these, like, this is very much 505 00:21:22,500 --> 00:21:26,840 derivative of the Bootstrap styles for alerts. As well 506 00:21:26,840 --> 00:21:28,649 as some of the buttons. We would change up 507 00:21:28,649 --> 00:21:30,200 and make, we did some different things with buttons, 508 00:21:30,200 --> 00:21:32,419 but a lot of this stuff is very derivative, 509 00:21:32,419 --> 00:21:34,070 cause we were taking things and saying we like 510 00:21:34,070 --> 00:21:36,970 these pieces but we don't want the whole enchilada. 511 00:21:36,970 --> 00:21:40,070 And as you're going, new design elements come up. 512 00:21:40,070 --> 00:21:42,480 So about a year after we first built Wilde, 513 00:21:42,480 --> 00:21:45,510 we built this timeline element for our sales staff. 514 00:21:45,510 --> 00:21:47,100 And this is actually a UI built on top 515 00:21:47,100 --> 00:21:49,590 of Sales Force, believe it or not. This is 516 00:21:49,590 --> 00:21:51,470 completely backed by Sales Force. 517 00:21:51,470 --> 00:21:53,610 But this timeline element, we were able to extract 518 00:21:53,610 --> 00:21:55,500 out the CSS and html and make it available 519 00:21:55,500 --> 00:21:58,190 for people building other apps. So now if somebody 520 00:21:58,190 --> 00:22:00,370 in another app wanted a timeline, they could pull 521 00:22:00,370 --> 00:22:01,799 this code in and they didn't have to go 522 00:22:01,799 --> 00:22:03,169 and reinvent it. 523 00:22:03,169 --> 00:22:04,950 This also helps because users who are used to 524 00:22:04,950 --> 00:22:07,490 one style, if they switch to another app, it's 525 00:22:07,490 --> 00:22:08,980 not a whole different world. It's not a whole 526 00:22:08,980 --> 00:22:12,669 new interaction paradigm. 527 00:22:12,669 --> 00:22:14,190 I've done a lot of consulting, and so a 528 00:22:14,190 --> 00:22:17,549 lot of these clients are these kind of long-running 529 00:22:17,549 --> 00:22:21,029 projects. I've worked on one banking client, for example, 530 00:22:21,029 --> 00:22:25,429 since 2008. All on their internal tools. 531 00:22:25,429 --> 00:22:27,250 And what happens is, we've done a lot of 532 00:22:27,250 --> 00:22:29,620 these kind of big picture design things with them, 533 00:22:29,620 --> 00:22:32,250 but it always comes down to little interactions. So 534 00:22:32,250 --> 00:22:35,139 instead of sitting there and saying, let's go rebuild 535 00:22:35,139 --> 00:22:36,990 our document manager, we say we're just gonna sketch 536 00:22:36,990 --> 00:22:39,320 what documents look like. Here's two states of a 537 00:22:39,320 --> 00:22:41,450 document, and now we're gonna build that. 538 00:22:41,450 --> 00:22:43,039 And so this is the kind of deliverable that 539 00:22:43,039 --> 00:22:45,120 they get. It takes me five to ten minutes. 540 00:22:45,120 --> 00:22:47,960 I sketch it out. I send it over. They 541 00:22:47,960 --> 00:22:51,029 build it. I come back in and style it. 542 00:22:51,029 --> 00:22:52,909 And this helps, when you have that living style 543 00:22:52,909 --> 00:22:55,460 guide, we break everything up into scss files, and 544 00:22:55,460 --> 00:22:57,320 we do a big import and merge it all 545 00:22:57,320 --> 00:23:00,429 together. So we now have all these components. So 546 00:23:00,429 --> 00:23:02,690 things that are used everywhere become components. Things that 547 00:23:02,690 --> 00:23:05,809 are one-offs get placed in areas. 548 00:23:05,809 --> 00:23:07,260 And then you have variables and you have a 549 00:23:07,260 --> 00:23:08,559 whole bunch of stuff. So some of this stuff, 550 00:23:08,559 --> 00:23:10,990 again, is derivative from Bootstrap. Some of it's derivative 551 00:23:10,990 --> 00:23:13,630 from Compass. We kind of shifted now to being 552 00:23:13,630 --> 00:23:17,179 reliant upon Compass because we've realized we were including 553 00:23:17,179 --> 00:23:19,649 ninety-five percent of it. So we stopped, kind of, 554 00:23:19,649 --> 00:23:21,289 chicken and egg and just said, we'll take the 555 00:23:21,289 --> 00:23:24,760 whole thing. 556 00:23:24,760 --> 00:23:28,850 My current situation is Cargo Sense. And I'm working 557 00:23:28,850 --> 00:23:30,720 with Rich Kilmer and Bruce Williams, and I call 558 00:23:30,720 --> 00:23:34,750 this the mad dash. This is, Cargo Sense is 559 00:23:34,750 --> 00:23:38,159 a logistics company. We're taking off the shelf node 560 00:23:38,159 --> 00:23:40,990 variable tech sensors, which are bluetooth four, and we've 561 00:23:40,990 --> 00:23:43,779 got an iPad app written in Ruby Motion. And 562 00:23:43,779 --> 00:23:44,899 then we have a web application. 563 00:23:44,899 --> 00:23:47,779 And so we use the data in logistics shipping 564 00:23:47,779 --> 00:23:52,200 to detect takeoff and landing press, with pressure changes, 565 00:23:52,200 --> 00:23:54,070 and we use data to figure out temperature excursions. 566 00:23:54,070 --> 00:23:57,450 So, pharmaceutical needs to keep insulin within this temperature 567 00:23:57,450 --> 00:23:59,380 range, and then we can tell if it's been 568 00:23:59,380 --> 00:24:01,380 out for five minutes, we raise an alert. Things 569 00:24:01,380 --> 00:24:02,830 of that nature. 570 00:24:02,830 --> 00:24:05,220 So this is the story of a shipment. This 571 00:24:05,220 --> 00:24:07,250 is a timeline, again. You know, so it's a 572 00:24:07,250 --> 00:24:09,049 very, it's, some of these design elements, you've, you, 573 00:24:09,049 --> 00:24:11,120 you created ten years ago. You're gonna be like, 574 00:24:11,120 --> 00:24:12,509 yeah, I did this. So we can reuse that 575 00:24:12,509 --> 00:24:14,250 kind of concept. 576 00:24:14,250 --> 00:24:17,399 But it's these simple four parts again. Big picture 577 00:24:17,399 --> 00:24:19,710 design. We came up with an overall brand, look, 578 00:24:19,710 --> 00:24:22,389 and feel. We started applying it and we codified 579 00:24:22,389 --> 00:24:24,210 it into a living styleguide. In this case it's 580 00:24:24,210 --> 00:24:26,870 called Kevlar and not Wilde. And we revise as 581 00:24:26,870 --> 00:24:27,429 we go. 582 00:24:27,429 --> 00:24:29,330 Most of our things, this is a Bower package, 583 00:24:29,330 --> 00:24:31,809 instead of a Ruby gem, because we're working in 584 00:24:31,809 --> 00:24:33,960 Angular. But it supports, I mean, you could use 585 00:24:33,960 --> 00:24:36,370 it to support anything. 586 00:24:36,370 --> 00:24:38,070 And a lot of these things, these are designs 587 00:24:38,070 --> 00:24:41,570 that, these are relatively high-fidelity sketches. These go over 588 00:24:41,570 --> 00:24:44,409 to Bruce or Rich. They comment on them, and 589 00:24:44,409 --> 00:24:46,659 then, if we need to for marketing purposes or 590 00:24:46,659 --> 00:24:48,320 things before we have built that we're gonna go 591 00:24:48,320 --> 00:24:52,850 for sales purposes, I'll do these kind of mockups. 592 00:24:52,850 --> 00:24:54,320 So a lot of this stuff is coming down 593 00:24:54,320 --> 00:24:57,639 to really fast and really, just, kind of, seat 594 00:24:57,639 --> 00:25:00,250 of your pants pulling stuff off. But when you 595 00:25:00,250 --> 00:25:01,940 have a small team, you can do that. And 596 00:25:01,940 --> 00:25:03,470 a lot of these design elements, like some of 597 00:25:03,470 --> 00:25:05,009 these things, like the, the right hand side or 598 00:25:05,009 --> 00:25:07,779 the header were definitely, you know, Bruce at three 599 00:25:07,779 --> 00:25:09,809 in the morning saying, I'm making an executive decision. 600 00:25:09,809 --> 00:25:10,809 This is what it's gonna be. 601 00:25:10,809 --> 00:25:12,799 Now, Bruce happens to be a very talented designer 602 00:25:12,799 --> 00:25:15,330 as well as a full-stack developer, so that definitely 603 00:25:15,330 --> 00:25:18,500 helps the situation. But you can do a lot 604 00:25:18,500 --> 00:25:20,330 of these things where there's not this formal, well, 605 00:25:20,330 --> 00:25:22,720 we're following lean UX. It's just kind of, you're, 606 00:25:22,720 --> 00:25:24,750 this is, we're kind of using these principles to 607 00:25:24,750 --> 00:25:26,250 make a better process. 608 00:25:26,250 --> 00:25:30,759 So, what are the issues with all of this? 609 00:25:30,759 --> 00:25:33,529 One of the issues is called design drift. Design 610 00:25:33,529 --> 00:25:35,970 drift is something that happens over time with any 611 00:25:35,970 --> 00:25:38,480 kind of creative endeavor. You start off, this is 612 00:25:38,480 --> 00:25:40,409 one of our early designs we did at the 613 00:25:40,409 --> 00:25:42,320 top, and then here's the customer support tool at 614 00:25:42,320 --> 00:25:43,159 the bottom. 615 00:25:43,159 --> 00:25:46,830 So we started off with a fixed-width, with margins, 616 00:25:46,830 --> 00:25:50,450 you know, tall header, and we started realizing that 617 00:25:50,450 --> 00:25:53,029 people were maximizing their screens and having huge, wide 618 00:25:53,029 --> 00:25:55,519 columns, and we were not effectively using the space 619 00:25:55,519 --> 00:25:56,320 allotted. 620 00:25:56,320 --> 00:25:58,080 So we went to pushing everything out to the 621 00:25:58,080 --> 00:26:02,049 side, and filling the whole thing up. And we 622 00:26:02,049 --> 00:26:04,460 really shrunk the header down super small, and we 623 00:26:04,460 --> 00:26:06,840 collapsed a lot of things away. These are expert 624 00:26:06,840 --> 00:26:09,970 users. We can do training. We don't have to 625 00:26:09,970 --> 00:26:13,929 have them understand it right out the gate. 626 00:26:13,929 --> 00:26:15,440 Another problem you're gonna hit is if you're working 627 00:26:15,440 --> 00:26:17,889 with a traditional UX or design team, and they're 628 00:26:17,889 --> 00:26:20,340 used to having design deliverables and throwing things over 629 00:26:20,340 --> 00:26:23,460 the wall to you, you're gonna have frustration. Ladders 630 00:26:23,460 --> 00:26:27,929 dot com, when they rolled out this, the, the 631 00:26:27,929 --> 00:26:30,669 head showed up to this on his desk. His 632 00:26:30,669 --> 00:26:33,500 designers had had a meeting and wrote down what 633 00:26:33,500 --> 00:26:35,600 they were pissed off about, and this is it. 634 00:26:35,600 --> 00:26:38,570 And it's too many projects, devs making bad design 635 00:26:38,570 --> 00:26:41,200 decisions, no time to actually come up with concepts 636 00:26:41,200 --> 00:26:44,919 and ideas, and when we do nobody builds them. 637 00:26:44,919 --> 00:26:46,320 We come up with a great experience and then 638 00:26:46,320 --> 00:26:48,519 you don't build it or it never ships. All 639 00:26:48,519 --> 00:26:51,120 these things are problems that I've heard and sometimes 640 00:26:51,120 --> 00:26:52,389 I've said. 641 00:26:52,389 --> 00:26:54,279 And so some of the solutions are really, like, 642 00:26:54,279 --> 00:26:56,110 you know, celebrate releases. Like, if you do a 643 00:26:56,110 --> 00:26:58,899 release on Friday, get the designers involved, get them 644 00:26:58,899 --> 00:27:00,789 to push. Get them to go hit the enter 645 00:27:00,789 --> 00:27:03,929 key, you know. Do whatever. Have balloons. Whatever you 646 00:27:03,929 --> 00:27:05,299 want to do, you know, that, that works for 647 00:27:05,299 --> 00:27:07,590 your team. And make time to dream. 648 00:27:07,590 --> 00:27:10,370 I know this sounds really, like, fluffy and whatever, 649 00:27:10,370 --> 00:27:12,309 but really have time to go and be able 650 00:27:12,309 --> 00:27:15,389 to spitball and say what if and what happens 651 00:27:15,389 --> 00:27:17,269 when I say this, or what happens when a 652 00:27:17,269 --> 00:27:18,940 user does this or, you know, wouldn't it be 653 00:27:18,940 --> 00:27:21,419 cool if the whole system was, you know, purple 654 00:27:21,419 --> 00:27:24,500 instead of red. Whatever. 655 00:27:24,500 --> 00:27:26,590 Kind of figure that out. 656 00:27:26,590 --> 00:27:29,490 Another issue is, if your project management office or 657 00:27:29,490 --> 00:27:31,659 your product people aren't on board, it will fail. 658 00:27:31,659 --> 00:27:34,820 It will fail hard. It will fail in glorious 659 00:27:34,820 --> 00:27:37,919 fashion, because it's difficult to see in the dark. 660 00:27:37,919 --> 00:27:40,299 And what ends up happening is that PMO is 661 00:27:40,299 --> 00:27:42,070 thinking, we're agile, so we have to work in 662 00:27:42,070 --> 00:27:44,220 sprints and we're gonna do SCRUM, or we're gonna 663 00:27:44,220 --> 00:27:46,600 - and they get so focused on this process 664 00:27:46,600 --> 00:27:48,070 that they've created. 665 00:27:48,070 --> 00:27:50,200 So we're gonna build this complex thing, but we're 666 00:27:50,200 --> 00:27:52,480 just gonna wing it. Or, you know, I want 667 00:27:52,480 --> 00:27:53,850 you to focus so I'm only gonna tell you 668 00:27:53,850 --> 00:27:56,830 what we're working on this sprint. And then the 669 00:27:56,830 --> 00:27:59,299 biggest lie in software development, we're not gonna tackle 670 00:27:59,299 --> 00:28:01,080 that until phase two. 671 00:28:01,080 --> 00:28:04,269 And you end up with this. So you don't 672 00:28:04,269 --> 00:28:05,940 know where you're going. You end up wandering all 673 00:28:05,940 --> 00:28:07,710 over the place. it's like forty years in the 674 00:28:07,710 --> 00:28:11,279 desert. And instead of saying, hey, we're gonna try 675 00:28:11,279 --> 00:28:13,409 and go to this point and we might kind 676 00:28:13,409 --> 00:28:14,820 of do this on the way, but that's what 677 00:28:14,820 --> 00:28:16,570 we're trying to get to, they just say, no, 678 00:28:16,570 --> 00:28:18,330 no, we're just gonna make these, these few steps 679 00:28:18,330 --> 00:28:21,419 here. Without any big vision, it's really hard to 680 00:28:21,419 --> 00:28:25,370 get everybody rolling in the same direction. 681 00:28:25,370 --> 00:28:28,049 Another problem is forgetting the users. We said user-centered 682 00:28:28,049 --> 00:28:30,980 design. So how do you deal with, you know, 683 00:28:30,980 --> 00:28:32,330 your users. And how do you bring them in. 684 00:28:32,330 --> 00:28:34,330 And lots of times, when you first shadow somebody 685 00:28:34,330 --> 00:28:36,409 working on a system, you go ahead and you 686 00:28:36,409 --> 00:28:39,149 have that moment where, Cary Elwes in the Princess 687 00:28:39,149 --> 00:28:42,039 Bride says, Dear god, what is that thing? 688 00:28:42,039 --> 00:28:44,620 And it ends up being, you have to watch 689 00:28:44,620 --> 00:28:46,250 out for that great rewrite. Cause you're like, I 690 00:28:46,250 --> 00:28:48,070 can rebuild this whole system. The design's gonna be 691 00:28:48,070 --> 00:28:53,519 amazing. And you're, it's eighteen months of work. So, 692 00:28:53,519 --> 00:28:55,950 what we talked about earlier. This is the modification 693 00:28:55,950 --> 00:28:58,110 of the just in time project. 694 00:28:58,110 --> 00:29:00,480 So we do existing system fixes at the same 695 00:29:00,480 --> 00:29:03,409 time that we're doing big design fixes on the, 696 00:29:03,409 --> 00:29:04,870 the new system that we're gonna roll out to 697 00:29:04,870 --> 00:29:06,970 replace or things that are gonna roll out in 698 00:29:06,970 --> 00:29:09,080 time. We go in and just make code fixes, 699 00:29:09,080 --> 00:29:10,350 real time. 700 00:29:10,350 --> 00:29:11,779 Just pair up. Sit down with the, you've got 701 00:29:11,779 --> 00:29:13,570 a developer and a designer, and you sit down 702 00:29:13,570 --> 00:29:15,610 and you say, that's ugly. And the designer's literally 703 00:29:15,610 --> 00:29:18,549 typing in css and changing stuff, and the developer's 704 00:29:18,549 --> 00:29:20,720 doing support on Ruby methods or things of that 705 00:29:20,720 --> 00:29:22,350 nature that need to change in order to make 706 00:29:22,350 --> 00:29:24,580 something work better. 707 00:29:24,580 --> 00:29:27,440 Here's a good example of that. We took. This 708 00:29:27,440 --> 00:29:29,070 was a screen out of our admin system, the 709 00:29:29,070 --> 00:29:31,149 right hand part and it originally was a very 710 00:29:31,149 --> 00:29:33,940 complex system for turning on or off somebody's email 711 00:29:33,940 --> 00:29:37,200 subscriptions. And we stole some css from somewhere that 712 00:29:37,200 --> 00:29:38,899 basically made it look like an IE, like this 713 00:29:38,899 --> 00:29:42,740 little checkbox. Little toggle. And this was a mockup. 714 00:29:42,740 --> 00:29:44,679 But we took that little piece, built that in 715 00:29:44,679 --> 00:29:47,840 code, and deployed it into production. And it was, 716 00:29:47,840 --> 00:29:50,120 like, oh my gosh. It's great. We, we understand. 717 00:29:50,120 --> 00:29:53,330 We can see it, visually, what's happening now. 718 00:29:53,330 --> 00:29:55,809 So, this is something that's important that you need 719 00:29:55,809 --> 00:29:58,429 to involve subject matter experts. If you have these 720 00:29:58,429 --> 00:30:00,049 users, you need to go find them. If they're 721 00:30:00,049 --> 00:30:01,440 in, in your office, you just need to go 722 00:30:01,440 --> 00:30:03,919 sit next to them. What is the problem? Why 723 00:30:03,919 --> 00:30:06,220 are you upset? What's your pain point? What makes 724 00:30:06,220 --> 00:30:07,279 your life miserable? 725 00:30:07,279 --> 00:30:09,139 And if it's something where you're doing, like Living 726 00:30:09,139 --> 00:30:12,179 Social, we had customers outside and inside. So we 727 00:30:12,179 --> 00:30:13,629 would go to customer support, say what are your 728 00:30:13,629 --> 00:30:15,960 top ten complaints that you're receiving. What's the stuff 729 00:30:15,960 --> 00:30:17,580 you spend all the time on. 730 00:30:17,580 --> 00:30:19,309 Is it people can't find information? Are they having 731 00:30:19,309 --> 00:30:21,159 a hard time with their credit card? What's, what's 732 00:30:21,159 --> 00:30:23,919 going on. Take that back to engineering. Here's some 733 00:30:23,919 --> 00:30:25,519 quick wins. And people will go ahead and knock 734 00:30:25,519 --> 00:30:28,610 those things out. 735 00:30:28,610 --> 00:30:30,539 Another thing to talk about is that user testing 736 00:30:30,539 --> 00:30:32,940 is hard. In all of these systems, the one 737 00:30:32,940 --> 00:30:35,179 thing I've always failed with is that it's really 738 00:30:35,179 --> 00:30:37,490 hard to formalize user testing and make it part 739 00:30:37,490 --> 00:30:40,159 of your testing. So, often, I'll end up with 740 00:30:40,159 --> 00:30:41,950 this, you know, this great thing that we've run, 741 00:30:41,950 --> 00:30:43,080 and then we go and do a user test 742 00:30:43,080 --> 00:30:44,340 after two months. 743 00:30:44,340 --> 00:30:46,990 Ideally, you're doing a very small user test every 744 00:30:46,990 --> 00:30:49,690 week. One, two people. Not much. And the easiest 745 00:30:49,690 --> 00:30:51,710 way to do this is to go guerrilla. And 746 00:30:51,710 --> 00:30:53,129 you can do this anywhere. You can do this 747 00:30:53,129 --> 00:30:54,799 at a Starbucks. You can get somebody that, you're 748 00:30:54,799 --> 00:30:56,289 sitting there, if you're working on something and it's 749 00:30:56,289 --> 00:30:58,070 like, hey I wonder about this interaction. 750 00:30:58,070 --> 00:31:02,720 Hey, what do you think about this? And leading 751 00:31:02,720 --> 00:31:04,950 questions, again. What are your leading questions. What would 752 00:31:04,950 --> 00:31:07,460 you do here? How would you do that? 753 00:31:07,460 --> 00:31:11,120 Multiple devices, you always get issues with. Responsive design, 754 00:31:11,120 --> 00:31:13,340 right. You have to plan time for this, because 755 00:31:13,340 --> 00:31:17,080 now it's not just an iPhone. These are just 756 00:31:17,080 --> 00:31:20,659 this Samsung Galaxy sizes. Do you even have all 757 00:31:20,659 --> 00:31:25,590 of these? What, and this is, ten pixels here, 758 00:31:25,590 --> 00:31:27,940 ten pixels there, really can start to break designs. 759 00:31:27,940 --> 00:31:29,450 So you gotta determine your break points. You gotta, 760 00:31:29,450 --> 00:31:31,279 you have to make this part of your process. 761 00:31:31,279 --> 00:31:33,590 You have to say, OK, we're gonna handle responses, 762 00:31:33,590 --> 00:31:35,259 and we built this feature, and now we're gonna 763 00:31:35,259 --> 00:31:36,539 take two weeks and make sure it works on 764 00:31:36,539 --> 00:31:38,090 this, these devices. 765 00:31:38,090 --> 00:31:39,139 And you can emulate a lot of this in 766 00:31:39,139 --> 00:31:41,669 Chrome now, which is great, but, you still gotta 767 00:31:41,669 --> 00:31:44,259 plan for it. It just doesn't happen. 768 00:31:44,259 --> 00:31:47,149 So, what should we do? How do we take 769 00:31:47,149 --> 00:31:50,470 all these projects and these issues? And this is 770 00:31:50,470 --> 00:31:53,879 kind of my, my charge to you here. First, 771 00:31:53,879 --> 00:31:56,570 you need to gear up, and it's pretty simple. 772 00:31:56,570 --> 00:31:59,249 Raid the office supply stash, and that's about it. 773 00:31:59,249 --> 00:32:02,279 Get a whiteboard, get a table. You got your 774 00:32:02,279 --> 00:32:04,600 phone in your pocket. This is all you really 775 00:32:04,600 --> 00:32:07,039 need. 776 00:32:07,039 --> 00:32:10,210 Stop using agile. Start thinking about agility. Dave Thomas 777 00:32:10,210 --> 00:32:12,330 has a great, great article here that he just 778 00:32:12,330 --> 00:32:15,440 posted about a couple weeks ago. Agile is so 779 00:32:15,440 --> 00:32:19,409 abused and so buzz word-y now, that you say 780 00:32:19,409 --> 00:32:21,830 it, and managers who don't understand better are like, 781 00:32:21,830 --> 00:32:23,350 oh, that means we don't have to worry about 782 00:32:23,350 --> 00:32:23,970 documentation. Great. 783 00:32:23,970 --> 00:32:26,499 No, no, no. That's not. We, we're gonna work 784 00:32:26,499 --> 00:32:29,610 in an agile fashion. Oh, no, no, no, no. 785 00:32:29,610 --> 00:32:31,759 You gotta just say agility. Stop using agile. Just 786 00:32:31,759 --> 00:32:34,740 drop it from your vocabulary. 787 00:32:34,740 --> 00:32:36,909 Measure everything. If you don't even know what you're 788 00:32:36,909 --> 00:32:39,090 gonna measure, just put Google Analytics on it and 789 00:32:39,090 --> 00:32:41,389 turn all the switches on. Just get data in 790 00:32:41,389 --> 00:32:43,200 there. Because you're gonna go back and say, what 791 00:32:43,200 --> 00:32:44,879 were people clicking on? What were the paths they 792 00:32:44,879 --> 00:32:47,529 were taking through the system? And, especially if you're 793 00:32:47,529 --> 00:32:50,519 doing e-commerce, you can start seeing, checking, like, figure 794 00:32:50,519 --> 00:32:51,950 out your checkout flow and then you can document 795 00:32:51,950 --> 00:32:53,999 that. Cause then you can go through and say, 796 00:32:53,999 --> 00:32:56,499 hey, we get thirty percent abandonment on this step. 797 00:32:56,499 --> 00:32:57,940 Let's go back and look at that. What's going 798 00:32:57,940 --> 00:32:59,039 on? 799 00:32:59,039 --> 00:33:02,110 Love your users. Often, I know we get frustrated. 800 00:33:02,110 --> 00:33:03,860 Cause we're like, they just don't get it, blah, 801 00:33:03,860 --> 00:33:06,090 blah, blah. Oh my god. You know, my parents 802 00:33:06,090 --> 00:33:08,740 can't even do this. What's wrong with them? And 803 00:33:08,740 --> 00:33:10,429 it's really about you're, you know, we're trying to 804 00:33:10,429 --> 00:33:12,090 serve them. We're trying to make their lives better 805 00:33:12,090 --> 00:33:13,710 with the tools we build. 806 00:33:13,710 --> 00:33:16,389 So, in doing that, we want to secure quick 807 00:33:16,389 --> 00:33:18,090 wins. Whenever you can secure a quick win, you 808 00:33:18,090 --> 00:33:19,610 can build something fast, you can do it at 809 00:33:19,610 --> 00:33:20,830 night when you go home and you've got ten 810 00:33:20,830 --> 00:33:22,629 minutes and it's something you know you can ship, 811 00:33:22,629 --> 00:33:25,179 do it. Ship it. Get it out the door. 812 00:33:25,179 --> 00:33:27,769 No more silos. Get rid of design as a 813 00:33:27,769 --> 00:33:30,090 team. Get rid of engineering as a team. Everybody's 814 00:33:30,090 --> 00:33:34,389 on build. Project managers. Everybody is on one team. 815 00:33:34,389 --> 00:33:35,700 And if you have a product, get that, get 816 00:33:35,700 --> 00:33:37,600 a micro team. And it's made up of all 817 00:33:37,600 --> 00:33:40,539 these people. Sometimes these roles are not clearly defined. 818 00:33:40,539 --> 00:33:42,090 Sometimes an engineer is also your product and your 819 00:33:42,090 --> 00:33:43,620 project manager. 820 00:33:43,620 --> 00:33:46,649 I argue often that everybody should be QA, but 821 00:33:46,649 --> 00:33:48,789 sometimes you need a formal QA person who's really 822 00:33:48,789 --> 00:33:51,600 an expert at doing Selenium or something like that 823 00:33:51,600 --> 00:33:53,570 and can drive those automated tests. 824 00:33:53,570 --> 00:33:58,450 But design, frontend, engineers. Everybody sitting together, working together, 825 00:33:58,450 --> 00:34:02,080 even if you're remote. Collaborating every single day. Developers 826 00:34:02,080 --> 00:34:04,590 are not excluded from design meetings. Designers are part 827 00:34:04,590 --> 00:34:07,230 of retrospectives. 828 00:34:07,230 --> 00:34:09,879 Pull request workflow. Bruce and I do this at 829 00:34:09,879 --> 00:34:13,050 Cargo, since we start off empty pull requests, to 830 00:34:13,050 --> 00:34:16,480 discuss big ideas. And you start pushing against the 831 00:34:16,480 --> 00:34:18,649 pull request with that branch. And then if it's 832 00:34:18,649 --> 00:34:21,460 good, we pull it in. If it'd bad, we 833 00:34:21,460 --> 00:34:22,569 leave it out. 834 00:34:22,569 --> 00:34:26,179 Reusable design solutions. If you've got something that you're, 835 00:34:26,179 --> 00:34:30,079 you're generating, if you can reuse it, do so. 836 00:34:30,079 --> 00:34:33,918 Developers, learn UX. It's not scary. It's not this, 837 00:34:33,918 --> 00:34:35,859 like, I have to use photoshop. Go read some 838 00:34:35,859 --> 00:34:38,079 books on usability. Defensive Design for the Web by 839 00:34:38,079 --> 00:34:40,149 37Signals is over ten years old, and every single 840 00:34:40,149 --> 00:34:42,780 word of it is still very applicable. Most of 841 00:34:42,780 --> 00:34:46,619 Jakon Neilsen's stuff. Rock, It's Not Rocket Surgery, I 842 00:34:46,619 --> 00:34:48,619 think. Steve Krug is a great author. Just go 843 00:34:48,619 --> 00:34:50,020 read some of these books. 844 00:34:50,020 --> 00:34:53,309 You build things that work. You should know why 845 00:34:53,309 --> 00:34:54,929 they work, how they work, and how they work 846 00:34:54,929 --> 00:34:58,750 efficiently. Likewise, go get your designers to learn how 847 00:34:58,750 --> 00:35:01,960 to code. If your designer doesn't understand html and 848 00:35:01,960 --> 00:35:03,730 css, at least, how can they possibly design for 849 00:35:03,730 --> 00:35:06,470 that medium? It's like a print designer not understand 850 00:35:06,470 --> 00:35:09,020 what happens when the ink hits the paper. You 851 00:35:09,020 --> 00:35:10,780 would not, it would not happen. Designers need to. 852 00:35:10,780 --> 00:35:12,579 They don't have to do the code, they need 853 00:35:12,579 --> 00:35:16,680 to understand the code, though. 854 00:35:16,680 --> 00:35:18,339 And forgive. Ann Patchett has a book called the 855 00:35:18,339 --> 00:35:20,750 Get Away Car. It's a practical memoir about writing, 856 00:35:20,750 --> 00:35:22,410 which is funny. I didn't realize David was gonna 857 00:35:22,410 --> 00:35:23,700 do this whole thing on writing when I, I 858 00:35:23,700 --> 00:35:26,859 pulled this. My wife sent me this quote that 859 00:35:26,859 --> 00:35:30,410 Andrew Sullivan pulled out, but the real short of 860 00:35:30,410 --> 00:35:33,069 it is, I'm just gonna read this real quick. 861 00:35:33,069 --> 00:35:34,660 "Stop here for a few breaths and think about 862 00:35:34,660 --> 00:35:36,220 this, because it's the key to making art and 863 00:35:36,220 --> 00:35:38,950 very possibly the key to finding any semblance of 864 00:35:38,950 --> 00:35:41,210 happiness in life. Every time I have to set 865 00:35:41,210 --> 00:35:43,329 out to translate the book, or story, or hopelessly 866 00:35:43,329 --> 00:35:45,950 long essay that exists in such brilliant detail on 867 00:35:45,950 --> 00:35:47,730 the big screen of my limbic system onto a 868 00:35:47,730 --> 00:35:49,839 piece of paper, I grieve for my own lack 869 00:35:49,839 --> 00:35:53,359 of talent and intelligence. Every single time. Were I 870 00:35:53,359 --> 00:35:55,640 smarter, more gifted, I could pin down a closer 871 00:35:55,640 --> 00:35:57,970 facsimile of the wonders that I see. I believe 872 00:35:57,970 --> 00:36:00,250 that, more than anything else, the grief of constantly 873 00:36:00,250 --> 00:36:02,290 having to face down our own inadequacies is what 874 00:36:02,290 --> 00:36:05,740 keeps people from being writers. Forgiveness, therefore, is key. 875 00:36:05,740 --> 00:36:07,530 I can't write the book I want to write, 876 00:36:07,530 --> 00:36:08,940 but I can and will write the book I 877 00:36:08,940 --> 00:36:11,309 am capable of writing. Again and again, throughout the 878 00:36:11,309 --> 00:36:13,300 course of my life, I will forgive myself." 879 00:36:13,300 --> 00:36:14,900 This doesn't just apply to you. This applies to 880 00:36:14,900 --> 00:36:17,950 your coworkers. This applies to your interactions with everybody. 881 00:36:17,950 --> 00:36:21,510 So build the app you can build today. Because 882 00:36:21,510 --> 00:36:22,760 you can sit there and say, this process is 883 00:36:22,760 --> 00:36:24,700 too hard. This is too complex. We'll never get 884 00:36:24,700 --> 00:36:27,829 this done. It's gotta start from somewhere. 885 00:36:27,829 --> 00:36:30,460 And so, please try and climb the mountain. I 886 00:36:30,460 --> 00:36:32,190 know it's not easy, but you'll eventually get there, 887 00:36:32,190 --> 00:36:34,290 and it will be a better world for it. 888 00:36:34,290 --> 00:36:37,990 Thank you very much, and. Appreciate it.