WEBVTT

NOTE Sentence-level transcript of https://www.youtube.com/watch?v=s0hFne6EeOI

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/s0hFne6EeOI.html. A cue ends where the next begins, or 2 s after its last word.

s1
00:00:13.200 --> 00:00:19.680
So, a as some of you are uh heading out, um actually maybe we let's make this less awkward.

s2
00:00:19.680 --> 00:00:21.279
I don't want anybody feel awkward.

s3
00:00:21.279 --> 00:00:22.320
Uh let's move again.

s4
00:00:22.320 --> 00:00:24.160
Everybody stand up really quick.

s5
00:00:24.160 --> 00:00:26.240
Yeah, I I know you're all like, "Oh, I can't.

s6
00:00:26.240 --> 00:00:27.920
We just did this like 20 minutes ago."

s7
00:00:27.920 --> 00:00:28.240
Yep.

s8
00:00:28.240 --> 00:00:29.840
There you still got to move.

s9
00:00:29.840 --> 00:00:35.520
Um, we're not going to do the full uh stretch or uh air squat thing, but you can just stretch a little bit.

s10
00:00:35.520 --> 00:00:37.360
Make it less awkward for the people who want to leave.

s11
00:00:37.360 --> 00:00:38.000
It's okay.

s12
00:00:38.000 --> 00:00:39.920
We don't want them to feel bad.

s13
00:00:39.920 --> 00:00:40.320
Okay.

s14
00:00:40.320 --> 00:00:40.640
Yep.

s15
00:00:40.640 --> 00:00:42.640
You can stretch your legs, whatever you want to do.

s16
00:00:42.640 --> 00:00:43.600
Just don't hurt yourself.

s17
00:00:43.600 --> 00:00:46.640
Uh, and then go ahead and sit.

s18
00:00:50.079 --> 00:00:52.079
Okay.

s19
00:00:52.640 --> 00:00:56.320
So, we've got uh I think I've got 50 minutes.

s20
00:00:56.320 --> 00:00:56.879
5-0.

s21
00:00:56.879 --> 00:01:01.199
So that's what you're uh in for if you decide to stay.

s22
00:01:01.199 --> 00:01:07.360
So now we've got the just get in the workshop implemented and we're rapidly adding features based on user requests.

s23
00:01:07.360 --> 00:01:10.479
So we we've moved our uh business life cycle.

s24
00:01:10.479 --> 00:01:16.400
We're in this phase now and a request comes in example request which we will fill in here in just a second.

s25
00:01:16.400 --> 00:01:23.040
Um and and as we're going through this I want you to see if you can apply uh some of these principles to your own uh product as well.

s26
00:01:23.040 --> 00:01:24.400
Um, okay.

s27
00:01:24.400 --> 00:01:27.600
So, what should the live request be?

s28
00:01:27.600 --> 00:01:33.600
What did what did somebody ask us to add to just get in the workshop?

s29
00:01:33.600 --> 00:01:36.240
Just throw it out or raise your hand.

s30
00:01:36.240 --> 00:01:38.240
Yeah.

s31
00:01:42.240 --> 00:01:46.079
Oh, so like a way to know how long the queue is.

s32
00:01:46.079 --> 00:01:46.479
Okay.

s33
00:01:46.479 --> 00:01:48.479
Yeah.

s34
00:01:51.439 --> 00:01:52.399
Oh, okay.

s35
00:01:52.399 --> 00:01:54.320
A little bit like the Disney Fastpass thing then.

s36
00:01:54.320 --> 00:01:54.880
Yeah.

s37
00:01:54.880 --> 00:01:56.000
Like a remote weight list.

s38
00:01:56.000 --> 00:01:56.240
Yeah.

s39
00:01:56.240 --> 00:01:58.240
Okay.

s40
00:01:59.600 --> 00:02:00.399
Oh, yeah.

s41
00:02:00.399 --> 00:02:03.920
To to know how much uh CO2 you're going to be breathing when you get in there.

s42
00:02:03.920 --> 00:02:04.159
Yeah.

s43
00:02:04.159 --> 00:02:07.119
That's Yeah.

s44
00:02:08.560 --> 00:02:10.399
Oh, okay.

s45
00:02:10.399 --> 00:02:11.280
That that one.

s46
00:02:11.280 --> 00:02:14.160
So, that would really speed up the process of getting in the workshop.

s47
00:02:14.160 --> 00:02:14.480
Okay.

s48
00:02:14.480 --> 00:02:15.440
Facial recognition.

s49
00:02:15.440 --> 00:02:17.440
I think everybody good with that one?

s50
00:02:17.440 --> 00:02:18.400
Okay.

s51
00:02:18.400 --> 00:02:22.480
Um, facial recognition.

s52
00:02:23.840 --> 00:02:24.879
I think we all get that.

s53
00:02:24.879 --> 00:02:26.879
All right.

s54
00:02:26.879 --> 00:02:36.239
So, let's first start with what Jack Ryan says uh here to dig uh past the requested button or whatever it is that they're requesting.

s55
00:02:36.239 --> 00:02:39.760
So, uh ultimately this is just you keep asking why.

s56
00:02:39.760 --> 00:02:40.480
What does it matter?

s57
00:02:40.480 --> 00:02:41.120
Why does it matter?

s58
00:02:41.120 --> 00:02:44.720
So, why why do we care that there's facial recognition?

s59
00:02:44.720 --> 00:02:49.120
What what does that mean in the context of our app?

s60
00:02:49.840 --> 00:02:50.239
slow.

s61
00:02:50.239 --> 00:02:50.879
It's slow.

s62
00:02:50.879 --> 00:02:51.760
So, we're Okay.

s63
00:02:51.760 --> 00:02:55.519
So, the problem uh that we're we're thinking about is it's slow.

s64
00:02:55.519 --> 00:02:55.840
Okay.

s65
00:02:55.840 --> 00:02:57.840
What else?

s66
00:02:57.840 --> 00:03:00.000
Is that like the main thing or is there anything else?

s67
00:03:00.000 --> 00:03:06.560
Like maybe there are other side features to this too like um it will take your picture and post it to social media.

s68
00:03:06.560 --> 00:03:07.120
I don't know.

s69
00:03:07.120 --> 00:03:09.120
That could be awful.

s70
00:03:09.120 --> 00:03:11.120
Yeah.

s71
00:03:15.519 --> 00:03:20.400
Oh, the schedule could be the problem like the fact that Tis was speaking across the hall from me.

s72
00:03:20.400 --> 00:03:21.760
That really bugged me.

s73
00:03:21.760 --> 00:03:25.360
Um because I like TIS a lot and uh yeah.

s74
00:03:25.360 --> 00:03:28.640
Any other like Yeah.

s75
00:03:30.879 --> 00:03:32.879
Yeah.

s76
00:03:42.319 --> 00:03:42.560
Yeah.

s77
00:03:42.560 --> 00:03:42.879
Yep.

s78
00:03:42.879 --> 00:03:44.080
That's true.

s79
00:03:44.080 --> 00:03:49.360
The um the the core is just getting people into the room and knowing who came in, right?

s80
00:03:49.360 --> 00:03:50.239
Yeah.

s81
00:03:50.239 --> 00:03:53.760
Um and and why is that important?

s82
00:03:53.760 --> 00:03:56.400
Let's let's go one deep one level deeper.

s83
00:03:56.400 --> 00:03:58.400
Yeah.

s84
00:04:01.760 --> 00:04:02.560
Oh, good question.

s85
00:04:02.560 --> 00:04:06.159
So the question is in in this role playinging that we're doing here, who are we?

s86
00:04:06.159 --> 00:04:07.840
We are the product engineer.

s87
00:04:07.840 --> 00:04:16.320
And so we're trying to we're we're talking with the user who's making the request or maybe the PM is doing this and now we're talking to the PM and asking them these questions.

s88
00:04:16.320 --> 00:04:18.000
But yeah, so you have a followup.

s89
00:04:18.000 --> 00:04:18.959
What's my motivation?

s90
00:04:18.959 --> 00:04:21.919
Am I trying to get

s91
00:04:22.880 --> 00:04:24.880
Oh yeah.

s92
00:04:24.880 --> 00:04:25.040
Yeah.

s93
00:04:25.040 --> 00:04:26.800
So the question is what's the motivation?

s94
00:04:26.800 --> 00:04:30.080
Like why do I care that we're we're solving these problems?

s95
00:04:30.080 --> 00:04:34.160
the reason that you care is because the app that you're building is what pays your paycheck.

s96
00:04:34.160 --> 00:04:45.120
The like if we're talking about capitalistic reasons, um but maybe you have some sort of innate thing inside of you that you just hate the idea of somebody missing the first 20 minutes of a workshop

s97
00:04:45.120 --> 00:04:49.520
and so um that is motivating you.

s98
00:04:57.680 --> 00:04:58.000
Yeah.

s99
00:04:58.000 --> 00:04:58.320
Yeah.

s100
00:04:58.320 --> 00:05:00.880
Why is there not a that kind of goes back to this idea too?

s101
00:05:00.880 --> 00:05:10.320
Why is there a virtual queue in the first place that actually that's one of the uh things that we as software engineers need to ask ourselves frequently is like

s102
00:05:10.320 --> 00:05:13.520
okay I'm going to I'm going to go in here and I'm going to optimize the heck out of this thing.

s103
00:05:13.520 --> 00:05:18.240
It's going to be amazing when we really should step back and think why does this exist in the first place?

s104
00:05:18.240 --> 00:05:19.520
Oh, it's solving this problem.

s105
00:05:19.520 --> 00:05:24.080
Well, why does that problem or oh okay so that that's why this matters.

s106
00:05:24.080 --> 00:05:32.960
If we had known at the time that we created this solution um that it would cost this much because this other offshooting problem, then we never would have gone this direction anyway.

s107
00:05:32.960 --> 00:05:33.919
We would have gone a different direction.

s108
00:05:33.919 --> 00:05:35.280
I called that the problem tree.

s109
00:05:35.280 --> 00:05:36.400
You got a problem.

s110
00:05:36.400 --> 00:05:44.479
Oh, uh and then you solve that with this and then that has a bunch of problems off of those and each one of those span out and you go until the problems aren't big enough anymore.

s111
00:05:44.479 --> 00:05:52.560
Uh, and sometimes you can back up when when you get all the way down here, you're like, "Oh, um, that uh like that's really hard problem to solve.

s112
00:05:52.560 --> 00:05:56.240
If I'd known that all the way back here, then I would have gone this way instead."

s113
00:05:56.240 --> 00:05:57.759
And we often don't do that.

s114
00:05:57.759 --> 00:06:01.120
So, you do need to ask yourself, okay, why does this exist in the first place?

s115
00:06:01.120 --> 00:06:03.440
Okay, so we go down why a bunch of times.

s116
00:06:03.440 --> 00:06:08.160
This is um how you get down to what ultimately is called the job to be done.

s117
00:06:08.160 --> 00:06:17.360
So, jobs to be done theory uh is from Klay Christensen, amazing person um who uh wrote competing against luck among many other books.

s118
00:06:17.360 --> 00:06:21.280
How many people have listened or read to at least three of his books?

s119
00:06:21.280 --> 00:06:23.840
You have not listened or read to enough of his books.

s120
00:06:23.840 --> 00:06:26.639
He has like a bunch and they're all fabulous.

s121
00:06:26.639 --> 00:06:28.800
Competing against luck is very good.

s122
00:06:28.800 --> 00:06:36.560
Um but the idea of jobs to be done theory or jobs theory is people hire products to help them make progress in a specific situation.

s123
00:06:36.560 --> 00:06:39.680
And I have a a video on my YouTube channel.

s124
00:06:39.680 --> 00:06:45.759
By the way, I just started getting serious about YouTube and like caring about thumbnails and stuff, like all the stuff you're supposed to do.

s125
00:06:45.759 --> 00:06:47.600
So, go subscribe on YouTube.

s126
00:06:47.600 --> 00:06:52.319
I'm I'm like weekly u more than weekly videos and they're all really really great.

s127
00:06:52.319 --> 00:06:55.840
Uh or if they're not great, go watch it and tell me why and I'll make it better.

s128
00:06:55.840 --> 00:07:03.599
Um but uh yeah, so I go deep into uh jobs theory um on that uh deeper or Yeah, it's it's great.

s129
00:07:03.599 --> 00:07:04.400
You should go look.

s130
00:07:04.400 --> 00:07:05.280
Okay.

s131
00:07:05.280 --> 00:07:10.800
So, um first facial recognition that is the request that's not the job.

s132
00:07:10.800 --> 00:07:12.720
These are two different things.

s133
00:07:12.720 --> 00:07:18.400
Um so, Rita said people will say you guys should build this feature and then you ask them what are you trying to solve?

s134
00:07:18.400 --> 00:07:21.039
That's that is your first question back to them.

s135
00:07:21.039 --> 00:07:26.560
Uh and if you do say yes to every one of these features, you end up with a huge level of complexity.

s136
00:07:26.560 --> 00:07:30.400
So, you do not just turn feature requests into implementation.

s137
00:07:30.400 --> 00:07:41.360
I know some of you here in San Francisco are building an app right now that has like takes the user's request and sends it into an agent and just automatically implements it.

s138
00:07:41.360 --> 00:07:42.880
Stop.

s139
00:07:42.880 --> 00:07:43.199
Okay.

s140
00:07:43.199 --> 00:07:46.160
I actually don't know if anybody's actually doing that, but that would be a bad idea.

s141
00:07:46.160 --> 00:07:52.479
You would end up with a really terrible product with no vision whatsoever, no taste, all judgment out the window.

s142
00:07:52.479 --> 00:07:53.840
It would be awful.

s143
00:07:53.840 --> 00:07:58.960
Uh so, uh each feature request requires your product judgment.

s144
00:07:58.960 --> 00:08:02.319
So, we don't take the feature request and nail it onto the thing we've already got.

s145
00:08:02.319 --> 00:08:03.360
It wouldn't be a good product.

s146
00:08:03.360 --> 00:08:04.879
There's lots of judgment that happens here.

s147
00:08:04.879 --> 00:08:11.919
And some of that judgment is going to be on the the product manager, of course, like they they're often going to be the one who gets the request first.

s148
00:08:11.919 --> 00:08:12.720
Not necessarily.

s149
00:08:12.720 --> 00:08:14.000
We'll talk about that, too.

s150
00:08:14.000 --> 00:08:17.919
But, um, often that is going to be kind of where things are coming from.

s151
00:08:17.919 --> 00:08:25.520
And they should do a good job of um applying the vision of the product to the requests as they come in.

s152
00:08:25.520 --> 00:08:32.640
Uh, and so, uh, hopefully they are are kind of slowing things or or at least giving them a better shape for you.

s153
00:08:32.640 --> 00:08:40.000
But even still, you you still don't want to just take everything that they give to you because it is going to have an impact on the system that you design.

s154
00:08:40.000 --> 00:08:45.600
And now you have to maintain that long term and it's going to slow you down on other things that might be more important.

s155
00:08:45.600 --> 00:08:55.360
And so, you have to put everything through the lens of the job to be done to make sure you understand the problem and realize uh that it's actually a valuable problem to be solved.

s156
00:08:55.360 --> 00:09:00.320
So, here are the questions that we're uh you ask to reveal what the job is.

s157
00:09:00.320 --> 00:09:04.880
And we we're going to come down to a job statement uh here for our facial recognition thing.

s158
00:09:04.880 --> 00:09:06.080
So, who is this for?

s159
00:09:06.080 --> 00:09:08.240
What who's the facial recognition for?

s160
00:09:08.240 --> 00:09:15.519
If we're if we're the conference and we're building an app to get people in, who is the uh the app for?

s161
00:09:15.519 --> 00:09:17.120
Attendees.

s162
00:09:17.120 --> 00:09:18.959
It's actually partially for the attendees.

s163
00:09:18.959 --> 00:09:21.920
It's also for whoever's manning the the door, right?

s164
00:09:21.920 --> 00:09:25.360
But um yes, the attendees ultimately are the ones being served.

s165
00:09:25.360 --> 00:09:34.480
Um and then when does this problem happen right here when people are going getting into a workshop?

s166
00:09:34.480 --> 00:09:35.360
Okay.

s167
00:09:35.360 --> 00:09:37.680
And then what progress do they want?

s168
00:09:37.680 --> 00:09:41.519
What is the progress that the user is trying to do?

s169
00:09:41.519 --> 00:09:42.240
Get in.

s170
00:09:42.240 --> 00:09:46.959
That's why we named our our product this just get in to the workshop.

s171
00:09:46.959 --> 00:09:47.760
Um okay.

s172
00:09:47.760 --> 00:09:51.120
And then finally, what do they do currently?

s173
00:09:51.120 --> 00:09:53.200
Well, it's a QR code scan.

s174
00:09:53.200 --> 00:09:53.680
Yeah,

s175
00:09:53.680 --> 00:09:54.959
blocking request.

s176
00:09:54.959 --> 00:09:56.320
A blocking request.

s177
00:09:56.320 --> 00:09:57.200
That's right.

s178
00:09:57.200 --> 00:09:58.560
We could do parallelization.

s179
00:09:58.560 --> 00:10:00.480
That could also solve this problem, right?

s180
00:10:00.480 --> 00:10:02.399
And so that hang on to that.

s181
00:10:02.399 --> 00:10:03.279
Put a pin in that.

s182
00:10:03.279 --> 00:10:05.040
Um run MCP guy.

s183
00:10:05.040 --> 00:10:05.600
I like that.

s184
00:10:05.600 --> 00:10:06.720
That shirt is cool.

s185
00:10:06.720 --> 00:10:09.600
You you know U Michael uh G. Yeah.

s186
00:10:09.600 --> 00:10:10.320
Okay.

s187
00:10:10.320 --> 00:10:17.120
Um so let's let's try and write the job statement when situation help me make progress so I can get desired outcome.

s188
00:10:17.120 --> 00:10:19.680
And often you'll add without some other thing.

s189
00:10:19.680 --> 00:10:32.880
So when there's a workshop going on at 1010, help me get into the workshop quickly um so that I can learn about product engineering um without missing the first 20 minutes.

s190
00:10:32.880 --> 00:10:34.079
Okay, there you go.

s191
00:10:34.079 --> 00:10:35.200
That's the job statement.

s192
00:10:35.200 --> 00:10:39.200
That is not that has nothing to do with facial recognition, right?

s193
00:10:39.200 --> 00:10:48.480
And so now that we understand what the job statement is, it will inform the decision that we take to uh to go forward with this.

s194
00:10:48.480 --> 00:10:52.959
And again, some of you are thinking, well, that's the product manager's job is to like give me the job statement.

s195
00:10:52.959 --> 00:10:53.360
Yeah.

s196
00:10:53.360 --> 00:10:53.680
Okay.

s197
00:10:53.680 --> 00:10:55.920
Like, I'm not going to say that's that's wrong.

s198
00:10:55.920 --> 00:11:04.880
But if you get a request that doesn't have a job statement attached or you've never heard you don't know which job statement this request is coming from, then that's going to be

s199
00:11:04.880 --> 00:11:08.640
uh you are not understanding the the problem well enough.

s200
00:11:08.640 --> 00:11:19.360
Or maybe the PM just skip that part and you're going to spend three months building something that doesn't actually hit users because it's it's not solving a real problem for them.

s201
00:11:19.360 --> 00:11:26.079
Or maybe you're solving a problem that seemed like a good idea to one person but wasn't generally applicable to everybody else.

s202
00:11:26.079 --> 00:11:32.720
So getting down to the Y why and then turning that into a job statement uh helps a lot with making sure you're building the right thing.

s203
00:11:32.720 --> 00:11:37.519
So uh another thing that we do is to break that job once we have that into three dimensions.

s204
00:11:37.519 --> 00:11:40.000
functional, social, and emotional.

s205
00:11:40.000 --> 00:11:45.600
And uh yeah, we got uh Okay, so functional is like does it actually do the thing?

s206
00:11:45.600 --> 00:11:50.800
Social is who is involved when the user is using this product to do the thing?

s207
00:11:50.800 --> 00:11:52.800
And then how do they feel when they're using it?

s208
00:11:52.800 --> 00:11:57.920
Are they embarrassed or are they like shy or are they excited?

s209
00:11:57.920 --> 00:11:59.200
Are they what?

s210
00:11:59.200 --> 00:12:05.120
And and these things actually will have will map to technical decisions that you as a product engineer will make.

s211
00:12:05.120 --> 00:12:07.040
And so you actually need answers to these questions.

s212
00:12:07.040 --> 00:12:09.279
We'll talk about that here in just a sec.

s213
00:12:09.279 --> 00:12:14.959
Uh, oh, and I also mapped this to how React one um, by the way.

s214
00:12:14.959 --> 00:12:18.240
So, how many of you hate it when I say React one?

s215
00:12:18.240 --> 00:12:19.279
I'm just kidding.

s216
00:12:19.279 --> 00:12:21.040
Some of you probably don't like React.

s217
00:12:21.040 --> 00:12:22.720
I like React and React one.

s218
00:12:22.720 --> 00:12:23.200
It's over.

s219
00:12:23.200 --> 00:12:25.040
The the game is actually over.

s220
00:12:25.040 --> 00:12:28.079
Um, there will be something that comes after React, of course.

s221
00:12:28.079 --> 00:12:30.800
Like, it's it's not like it's going to last forever.

s222
00:12:30.800 --> 00:12:32.720
But will we need to learn that thing?

s223
00:12:32.720 --> 00:12:36.720
No. The answer is no. we will not be learning whatever it is that comes after React.

s224
00:12:36.720 --> 00:12:49.519
that it it has changed into like what is the toy that you give your pet agent to be happy like that that's all that really matters at this point as far as that's concerned and so react one

s225
00:12:49.519 --> 00:12:58.000
here's here's the reason this is what my video is about react one because it started with functional that was that was the thing at the time everybody was either backbone

s226
00:12:58.000 --> 00:13:10.480
maybe Ember uh AngularJS that's what I was using and uh React was just faster uh considerably faster despite all the like rerenders and everything we talk about now, but it was way faster

s227
00:13:10.480 --> 00:13:18.399
and uh it gave a much simpler mental model for state management and uh composition was just fabulous and it still is.

s228
00:13:18.399 --> 00:13:20.560
Uh React really solves composition.

s229
00:13:20.560 --> 00:13:29.600
Being able to create a thing, have it be like a total mess on the inside of that but have a very solid interface so that that mess inside doesn't really affect anything else.

s230
00:13:29.600 --> 00:13:33.040
That that level of encapsulation composition was really good.

s231
00:13:33.040 --> 00:13:42.160
So then um eventually React like totally dominated 2015 2016 now React is like the top and everybody's using it.

s232
00:13:42.160 --> 00:13:47.279
That's when React moved from winning because of functional reasons into social reasons.

s233
00:13:47.279 --> 00:13:48.880
Well everybody else is using it.

s234
00:13:48.880 --> 00:13:50.720
My boss uh wants me to use it.

s235
00:13:50.720 --> 00:13:55.120
My team uh if I want to get a job in this industry I've got to learn React.

s236
00:13:55.120 --> 00:13:57.040
And so everybody is learning React.

s237
00:13:57.040 --> 00:14:02.000
Now of course there are still others out there and Angular 2 came out and know people are using those.

s238
00:14:02.000 --> 00:14:04.079
But React was just so dominant.

s239
00:14:04.079 --> 00:14:05.519
The ecosystem was so big.

s240
00:14:05.519 --> 00:14:06.399
Yeah, I'm gonna use that.

s241
00:14:06.399 --> 00:14:07.839
And how do I feel when I'm using it?

s242
00:14:07.839 --> 00:14:10.959
Well, maybe now you feel like, "Oh, I hate this thing or whatever."

s243
00:14:10.959 --> 00:14:14.800
But like at the time it was um you know, everybody else is using this.

s244
00:14:14.800 --> 00:14:20.639
I feel pretty good like and it's kind of cool because there are all these conferences I can go to and feel really excited with everybody else.

s245
00:14:20.639 --> 00:14:22.560
That's why React totally won.

s246
00:14:22.560 --> 00:14:29.760
And that's why when React started stumbling a little bit on the functional aspects of things and okay, well now we got SolidJS.

s247
00:14:29.760 --> 00:14:34.399
we don't have rendering problems anymore or we got view and it's like easier to learn.

s248
00:14:34.399 --> 00:14:35.279
That's arguable.

s249
00:14:35.279 --> 00:14:46.480
But like whatever whatever it is, all these functional differences, it didn't matter anymore because it already had just nailed itself with the network externalities.

s250
00:14:46.480 --> 00:14:54.399
So anyway, Jobs theory applied to something that you might not think, but open source libraries definitely a product.

s251
00:14:54.399 --> 00:14:56.959
Um that's pretty interesting.

s252
00:14:56.959 --> 00:14:58.160
Okay.

s253
00:14:58.160 --> 00:15:07.120
So, um, one thing that Jack Ryan suggests is, uh, having a Slack channel or some some mechanism for you to just get all of the user feedback.

s254
00:15:07.120 --> 00:15:11.279
Some of you work on apps that have hundreds of thousands of users or millions of users.

s255
00:15:11.279 --> 00:15:12.320
I worked at PayPal.

s256
00:15:12.320 --> 00:15:17.839
I would ship something and instantly it was out to millions of users and that was pretty exciting and cool thing.

s257
00:15:17.839 --> 00:15:21.199
But getting feedback from those users is really, really difficult.

s258
00:15:21.199 --> 00:15:24.399
Um, and uh, and making sure that you're actually building the right things.

s259
00:15:24.399 --> 00:15:32.079
And at the time it was fine that I didn't really spend too much time doing that because the you know it's a big company and we're going to be successful no matter what I do I guess.

s260
00:15:32.079 --> 00:15:39.199
Um but uh uh what you can do in those situations or even others is to have a select channel.

s261
00:15:39.199 --> 00:15:56.160
Uh you can have a specific one with uh individuals that you really respect their decisions and and um they're like high value customers of yours or you can have one that's just like takes Reddit threads and and X and like all the social media brings it into one place and you just like you don't have to necessarily

s262
00:15:56.160 --> 00:15:57.440
answer everything or whatever.

s263
00:15:57.440 --> 00:15:59.360
That's not necessarily your job.

s264
00:15:59.360 --> 00:16:06.000
But seeing all of this you get a sense for where the rough edges, the paper cuts and all the problems are in your product.

s265
00:16:06.000 --> 00:16:16.560
And that can kind of help inform, okay, we're not actually uh solving the pro the job that we were hired to do uh in this product and give you a a sense for okay,

s266
00:16:16.560 --> 00:16:19.600
so I understand why they're complaining about that.

s267
00:16:19.600 --> 00:16:28.160
I don't believe in user error because Don Norman said it doesn't exist and so how can I change the system so it can support what they think it should be doing?

s268
00:16:28.160 --> 00:16:34.880
And sometimes it's going to be, oh well, we just need to put a button right here in instead of just having it right there and and now it will be a lot easier.

s269
00:16:34.880 --> 00:16:42.000
Other times it's going to be, oh yeah, there's no way we can do that right now and now now I'm doing my systems thinking of how can we make that

s270
00:16:42.000 --> 00:16:45.279
so that those two systems can talk to each other or something.

s271
00:16:45.279 --> 00:16:48.720
So um yeah, just let that context wash over you.

s272
00:16:48.720 --> 00:16:56.399
Um Michael says there's something very important in thinking about the storytelling of the thing you're building and how it situates in somebody's life.

s273
00:16:56.399 --> 00:16:59.600
How does somebody feel when they're using your product?

s274
00:16:59.600 --> 00:17:08.319
um is and and not just how do they feel when they're using your product, but uh how does it how do they feel when they know other people know that they're using your product?

s275
00:17:08.319 --> 00:17:23.679
So if you're making some really embarrassing things that people need to use like I don't know it depends or something I I don't know bad example but um then uh like you need to take that into account in the way that you uh package your implementation.

s276
00:17:23.679 --> 00:17:23.919
Okay.

s277
00:17:23.919 --> 00:17:27.839
So let's talk specifically uh about our um our idea.

s278
00:17:27.839 --> 00:17:28.559
Did I?

s279
00:17:28.559 --> 00:17:29.200
No, I didn't.

s280
00:17:29.200 --> 00:17:29.679
Dang it.

s281
00:17:29.679 --> 00:17:32.160
So, our uh idea was the facial recognition thing.

s282
00:17:32.160 --> 00:17:33.840
That was the original request.

s283
00:17:33.840 --> 00:17:39.120
Um and then we brought that into just getting people into uh the room faster.

s284
00:17:39.120 --> 00:17:42.480
So, what are the functional um aspects of that?

s285
00:17:42.480 --> 00:17:44.320
I need you to throw out these things.

s286
00:17:44.320 --> 00:17:50.720
So, like what is the state workflow integration sorts of things that we need to think about if we're building this app?

s287
00:17:50.720 --> 00:17:53.600
Uh just get in the workshop.

s288
00:17:53.600 --> 00:17:54.799
Start on time.

s289
00:17:54.799 --> 00:17:55.840
Start on time.

s290
00:17:55.840 --> 00:18:01.417
So, like the speaker always starts on time or Okay, so I messed that up is what you're saying.

s291
00:18:01.417 --> 00:18:03.120
[laughter]

s292
00:18:03.120 --> 00:18:08.720
Well, in my defense, uh, people weren't gone until, uh, 2 minutes after I should have started.

s293
00:18:08.720 --> 00:18:09.520
The solution,

s294
00:18:09.520 --> 00:18:10.000
you're right.

s295
00:18:10.000 --> 00:18:11.679
Yeah, the solution's not there.

s296
00:18:11.679 --> 00:18:12.000
Yeah.

s297
00:18:12.000 --> 00:18:21.679
So, actually, that's a really good um metric that we can track as well is like how much are we starting on time that will tell us whether the solution is actually solving the ultimate problem.

s298
00:18:21.679 --> 00:18:22.080
Great.

s299
00:18:22.080 --> 00:18:22.640
Thank you.

s300
00:18:22.640 --> 00:18:37.120
other what are the other functional like let's let's talk more systems things like what is this actual like database table that you would need to um to speed up this let's let's say that we do decide to do um to add

s301
00:18:37.120 --> 00:18:49.520
uh to help us solve this job we are going to add NFC no let's you know what let's stick with the face recognition idea um just because I think it'll be fun for something later um but uh yeah so we're going to add face facial recognition

s302
00:18:49.520 --> 00:18:54.640
what is some of the state uh that we're going to need to maintain for that.

s303
00:18:55.120 --> 00:18:55.360
Yeah.

s304
00:18:55.360 --> 00:18:56.720
Database of everybody's faces.

s305
00:18:56.720 --> 00:19:00.799
That's going to uh impact a lot of things.

s306
00:19:00.799 --> 00:19:01.120
Yeah.

s307
00:19:01.120 --> 00:19:03.039
What else?

s308
00:19:03.039 --> 00:19:04.160
A what?

s309
00:19:04.160 --> 00:19:04.720
Encryption.

s310
00:19:04.720 --> 00:19:04.960
Yeah.

s311
00:19:04.960 --> 00:19:05.200
Okay.

s312
00:19:05.200 --> 00:19:06.320
So, we're encrypting things now.

s313
00:19:06.320 --> 00:19:07.760
The government won't get mad.

s314
00:19:07.760 --> 00:19:09.120
Um just kidding.

s315
00:19:09.120 --> 00:19:11.760
No. Uh other other things we're going to need.

s316
00:19:11.760 --> 00:19:12.000
Yeah.

s317
00:19:12.000 --> 00:19:13.440
Number seats.

s318
00:19:13.440 --> 00:19:13.679
Yeah.

s319
00:19:13.679 --> 00:19:14.320
Number Yeah.

s320
00:19:14.320 --> 00:19:22.640
So like venue um capacity uh and and attendee uh capacity and and maybe well yeah we won't get into that.

s321
00:19:22.640 --> 00:19:23.600
Okay cool.

s322
00:19:23.600 --> 00:19:33.840
And then on the social side of things um who whe when this software is being used this particular feature of the software is being used um how does that affect

s323
00:19:33.840 --> 00:19:38.880
or the social aspects like who is using it and who are they interacting with when they're using it?

s324
00:19:38.880 --> 00:19:40.400
I'm going to have two lines.

s325
00:19:40.400 --> 00:19:41.840
You're going to have two lines.

s326
00:19:41.840 --> 00:19:50.640
Oh yeah, that I mean now we're talking about parallelization uh which also saw uh is another solution to that same job that we're trying to uh to accomplish.

s327
00:19:50.640 --> 00:19:51.440
Yeah.

s328
00:19:51.440 --> 00:19:58.480
Um I I would say that the person who's doing the checking in that would be uh one person uh that's involved there.

s329
00:19:58.480 --> 00:20:03.520
Um and pretty much just just the person there like other people who are around in line.

s330
00:20:03.520 --> 00:20:06.720
Maybe the speaker is involved as well um somehow.

s331
00:20:06.720 --> 00:20:10.000
So that can kind of inform some of the implementation as well.

s332
00:20:10.000 --> 00:20:12.799
And then our uh emotional side of this.

s333
00:20:12.799 --> 00:20:16.400
Hopefully after our solution's implemented, we're all feeling like good about that.

s334
00:20:16.400 --> 00:20:19.919
But maybe some people are feeling a little uncomfortable, right?

s335
00:20:19.919 --> 00:20:25.440
Like creeped out by the fact that the conference somehow has your facial recognition information.

s336
00:20:25.440 --> 00:20:30.759
Uh and that might be a good spot for you as a product engineer to be like, "How about not

s337
00:20:30.759 --> 00:20:32.640
[laughter]

s338
00:20:32.640 --> 00:20:37.280
let's come up with a different uh solution for this particular job."

s339
00:20:37.280 --> 00:20:39.280
Uh okay.

s340
00:20:39.280 --> 00:20:44.240
So, um, this kind of goes back to Oh, oh, sorry, let me back up.

s341
00:20:44.240 --> 00:20:51.440
Um, in jobs theory, there's actually, um, two times that your product is hired or two categories of hiring.

s342
00:20:51.440 --> 00:20:53.679
One is, uh, called the big hire.

s343
00:20:53.679 --> 00:20:56.799
That's when you actually sell the product and the person gives you the money.

s344
00:20:56.799 --> 00:21:05.039
And two is when they use the product and if they use it multiple times like, uh, I went to Smashburger or not, Super Duper, Super Burger, what, whatever.

s345
00:21:05.039 --> 00:21:06.960
It's really close and it's really delicious.

s346
00:21:06.960 --> 00:21:08.400
Uh, go mob them later.

s347
00:21:08.400 --> 00:21:09.200
They're really good.

s348
00:21:09.200 --> 00:21:11.679
Um, but uh and they were really nice to me.

s349
00:21:11.679 --> 00:21:13.280
So, seriously, go give them your money.

s350
00:21:13.280 --> 00:21:19.600
Um, but uh so the the big hire is when I uh paid my money for the burger and received that burger.

s351
00:21:19.600 --> 00:21:22.000
The little hire was every bite that I took out of that burger.

s352
00:21:22.000 --> 00:21:28.640
And if I stop early and throw it away, I'm not going to be standing on stage telling you all that it was delicious um because I didn't like it.

s353
00:21:28.640 --> 00:21:32.000
So, you actually care a lot about users actually using your software.

s354
00:21:32.000 --> 00:21:35.120
It's not just about getting them to pay for it in the first place.

s355
00:21:35.120 --> 00:21:39.120
So um you define your success by repeated progress.

s356
00:21:39.120 --> 00:21:46.880
Uh so you need to ask questions that will in influence the uh system but uh like how do you measure progress?

s357
00:21:46.880 --> 00:21:48.000
Do they do it more than once?

s358
00:21:48.000 --> 00:21:49.600
Sometimes they're not going to do this more than once.

s359
00:21:49.600 --> 00:21:53.840
Maybe this is the only workshop you come to and then you're going to leave and never go to another workshop ever.

s360
00:21:53.840 --> 00:21:54.720
Probably not, right?

s361
00:21:54.720 --> 00:21:57.360
So there's there's some potential to use it more than once.

s362
00:21:57.360 --> 00:22:01.200
And actually if we were actually building this app, our customer would be the the conference.

s363
00:22:01.200 --> 00:22:02.480
It wouldn't be all of you.

s364
00:22:02.480 --> 00:22:05.520
Um and so is the conference going to use it more than once?

s365
00:22:05.520 --> 00:22:09.440
Uh what should we build, change or instrument, defer or not build?

s366
00:22:09.440 --> 00:22:14.480
Uh and what does facial recognition become after we understand the job?

s367
00:22:14.480 --> 00:22:22.880
I think once we now that we understand the job, we probably don't need the complexity of facial recognition and maybe like NFC chips inside the badges could work.

s368
00:22:22.880 --> 00:22:28.159
Um but like then there's a whole other host of other problems that we now have to associate to that.

s369
00:22:28.159 --> 00:22:44.640
Um but by understanding the job to be done, it expands your horizons on what you could possib you're focused on the problem uh and less on the solution until like you've decided okay which direction do we want this problem tree to go.

s370
00:22:44.640 --> 00:22:46.400
Uh so why do you need to know this?

s371
00:22:46.400 --> 00:22:50.480
Uh it gives you uh language uh for systemshaped questions.

s372
00:22:50.480 --> 00:23:04.240
If if a task comes to you and it doesn't have uh some sort of job to be done on uh attached to it, then you go back to your PM and you say, I don't know enough about what this task is all about to design a good system for this.

s373
00:23:04.240 --> 00:23:15.200
Um and having the language like well what are the functional impacts and the social and the emotional progress points um that are going to impact um my implementation and architectural

s374
00:23:15.200 --> 00:23:15.840
needs.

s375
00:23:15.840 --> 00:23:19.919
Um that is going to help make sure that you end up building the right thing.

s376
00:23:19.919 --> 00:23:32.480
Um and without the job uh you can just build a requested feature totally missing um building the parts of the system or expanding the primitives that are available uh that users actually need.

s377
00:23:32.480 --> 00:23:41.919
So let's get back to some questions here really quick and then I have one more framework that we're going to talk about uh and then we will be done

s378
00:23:41.919 --> 00:23:47.120
which means we might actually be in a pretty good place as far as time is go.

s379
00:23:47.600 --> 00:23:48.640
Okay.

s380
00:23:48.640 --> 00:23:52.400
How do you decide what to build uh without metrics uh in this era?

s381
00:23:52.400 --> 00:23:56.559
So this era probably talking about like before you've shipped anything, you don't have any users.

s382
00:23:56.559 --> 00:23:59.600
So how do you decide what to build in that uh phase?

s383
00:23:59.600 --> 00:24:01.679
That's where the mom test comes in really handy.

s384
00:24:01.679 --> 00:24:07.840
Um because you're able to and actually because we have AI, we can prototype things really really quickly.

s385
00:24:07.840 --> 00:24:12.960
So you validate the problem exists and that it's an interesting enough problem.

s386
00:24:12.960 --> 00:24:20.480
Then you build a simple solution that has like all kinds of paper cuts and whatever, but see if uh people uh resonate with that.

s387
00:24:20.480 --> 00:24:26.720
Watch them use your software and just if you can't get anybody to try it out, then um that's a signal.

s388
00:24:26.720 --> 00:24:32.640
Um and so you want to find something that's um important enough for somebody to want to try it out.

s389
00:24:32.640 --> 00:24:46.799
Um if you are at an existing company and you're evaluating um adding a feature to a product uh same sort of thing except in that case you have customers that um are using your product you need to uh get in contact with those and hopefully your PM

s390
00:24:46.799 --> 00:24:48.880
has some mechanism for doing that.

s391
00:24:48.880 --> 00:24:53.600
Um and then um through those connections you do that same sort of thing.

s392
00:24:53.600 --> 00:24:55.200
Make sure you understand the problem really well.

s393
00:24:55.200 --> 00:24:58.240
Build a prototype and see how they feel about that.

s394
00:24:58.240 --> 00:25:01.120
Um hopefully that answers that question.

s395
00:25:01.120 --> 00:25:02.000
Okay.

s396
00:25:02.000 --> 00:25:07.360
So, three tips uh from going from a product role to a product engineering role.

s397
00:25:07.360 --> 00:25:07.919
Oh, wow.

s398
00:25:07.919 --> 00:25:08.240
Okay.

s399
00:25:08.240 --> 00:25:12.880
So, I'm assuming you mean by product role you're like product owner, product manager thing.

s400
00:25:12.880 --> 00:25:26.799
Um I would um I would talk to engineers about the system and just interrogate them and like if if I I'm a very open person so I would just literally say I want to get into engineering.

s401
00:25:26.799 --> 00:25:35.520
Uh so could you help me understand the system and like what I need to know about engineering at this company um and and just spend a lot of time

s402
00:25:35.520 --> 00:25:47.279
um trying to understand what the constraints of the infrastructure are uh how the system is uh designed and um I don't know have lunch with them like hang out with the engineering team

s403
00:25:47.279 --> 00:25:57.039
uh stop being so siloed uh okay sweet uh what do you do if your colleagues say there isn't a problem to solve uh but there is oh yeah Okay.

s404
00:25:57.039 --> 00:25:58.240
Is the user always right?

s405
00:25:58.240 --> 00:25:59.760
No, the user is not always right.

s406
00:25:59.760 --> 00:26:12.559
Uh or if they uh you you can have like let's say you your uh company you have 50 users um like that are businesses or something and you've got one who's like really harping on you about this.

s407
00:26:12.559 --> 00:26:18.400
Uh if if they're the one that's like covering 90% of your income, then yes, they are right.

s408
00:26:18.400 --> 00:26:18.960
Whatever.

s409
00:26:18.960 --> 00:26:19.760
Yes, sir.

s410
00:26:19.760 --> 00:26:22.240
Um but uh but often that's not the case.

s411
00:26:22.240 --> 00:26:27.600
you're going to you you definitely have situations where one user like really cares a lot about this particular thing.

s412
00:26:27.600 --> 00:26:30.159
Uh and it's not representative of other users.

s413
00:26:30.159 --> 00:26:36.640
So, how you sus that out is just by talking to other people like what was the last time when was the last time you had this problem?

s414
00:26:36.640 --> 00:26:38.640
Um and what what did you do about it?

s415
00:26:38.640 --> 00:26:41.600
Like mom test it to a bunch of your other users.

s416
00:26:41.600 --> 00:26:51.760
Um and it you know if you end up realizing oh yeah like there's not a lot of people who feel this way then yeah maybe the user was wrong in that case.

s417
00:26:51.760 --> 00:26:54.640
Um I do not think that the user is always right though.

s418
00:26:54.640 --> 00:26:58.960
Uh often they are directionally right like we really really want this.

s419
00:26:58.960 --> 00:27:01.679
Like often the user is going to come to you with a solution.

s420
00:27:01.679 --> 00:27:05.039
Um they're going to say I have this problem and then here's what would solve it.

s421
00:27:05.039 --> 00:27:07.760
Um or they they'll just skip the solution.

s422
00:27:07.760 --> 00:27:11.039
They'll just be like I need an export to PDF button right here.

s423
00:27:11.039 --> 00:27:13.120
And and that's as far as they'll go.

s424
00:27:13.120 --> 00:27:18.720
And um you need to be the one to ask questions and try to get at the heart of what they're trying to do.

s425
00:27:18.720 --> 00:27:26.480
Once you get to the heart of what they're trying to do in that job, then you can go around to the other customers and see like does this sound like

s426
00:27:26.480 --> 00:27:28.799
uh well, you don't ask is this a problem for you?

s427
00:27:28.799 --> 00:27:33.039
You just say when was the last time you experienced this pain and what did you do instead?

s428
00:27:33.039 --> 00:27:35.840
Oh, you're like clicking 50 menu items to get to that.

s429
00:27:35.840 --> 00:27:36.559
Great.

s430
00:27:36.559 --> 00:27:37.600
That is a good signal.

s431
00:27:37.600 --> 00:27:39.679
We are going to uh solve that for you.

s432
00:27:39.679 --> 00:27:41.120
Hopefully that answers your question.

s433
00:27:41.120 --> 00:27:43.279
Okay, we'll do like two or three more.

s434
00:27:43.279 --> 00:27:49.840
Um, do I really need to understand the code and architecture for incident response if I can mitigate issues without that knowledge?

s435
00:27:49.840 --> 00:27:50.559
Okay.

s436
00:27:50.559 --> 00:27:55.919
Um, so I mean it depends on how many millions of dollars you're losing a minute.

s437
00:27:55.919 --> 00:27:59.840
Um, I guess so like it kind of depends on the scale of your business.

s438
00:27:59.840 --> 00:28:07.360
Uh, if I when I was at PayPal, if I broke um the the the part of PayPal I worked on was uh crossber transactions.

s439
00:28:07.360 --> 00:28:13.840
Um, and if I broke that, like people couldn't send money, uh, to people, then yeah, we're losing millions of dollars rapidly.

s440
00:28:13.840 --> 00:28:27.520
Um, and so, uh, if we're talking about incident response, I mean, I actually, interestingly, I got attacked by, uh, some, um, bot on a digital ocean box, uh, recently on my my personal website,

s441
00:28:27.520 --> 00:28:31.279
and so I recorded a video of what I did to mitigate that problem.

s442
00:28:31.279 --> 00:28:33.279
Uh, so that's going up on my YouTube channel soon.

s443
00:28:33.279 --> 00:28:41.679
Go subscribe youtube.comkensyods-vids trying to get the just kydods and they are not doing that for me.

s444
00:28:41.679 --> 00:28:49.360
But um anyway uh so uh I literally just said went over to my agent and I like it knows what I mean when I say this.

s445
00:28:49.360 --> 00:28:50.640
I just said production is down.

s446
00:28:50.640 --> 00:28:51.760
Figure it out.

s447
00:28:51.760 --> 00:28:52.799
And it and it did.

s448
00:28:52.799 --> 00:28:54.559
And it like it pretty much did everything.

s449
00:28:54.559 --> 00:28:56.480
It it figured out and told me here's what's going on.

s450
00:28:56.480 --> 00:28:57.760
You're getting attacked by a bot.

s451
00:28:57.760 --> 00:28:59.919
And I said uh do you know how to fix it?

s452
00:28:59.919 --> 00:29:00.240
Fix it.

s453
00:29:00.240 --> 00:29:00.880
And it did.

s454
00:29:00.880 --> 00:29:16.640
So like there is an element of maybe our agents can kind of just handle things but again like this is my personal website which I I do get a lot of traffic to my website um and so it is important and it's actually a part of my business because it's the only way people can join my discord

s455
00:29:16.640 --> 00:29:26.960
server and like there it is important for my website to be up and it's not like a simple you know just hosted on Cloudflare uh pages sort of thing like it there is some complexity going on there

s456
00:29:26.960 --> 00:29:36.000
um but uh but it's not super important I'm not losing anything, however long the agent takes to fix it, like I' I'll let the agent do it and I'm going to go off and do something else.

s457
00:29:36.000 --> 00:29:49.760
Um, but uh but if it was really important, then yeah, you better understand how that system works and you better be able to very quickly diagnose what the problem is and guide the agent to like even if you're using the agent to debug and ultimately fix the issue,

s458
00:29:49.760 --> 00:29:55.120
um you're going to be a lot more uh successful if you really understand the code and architecture.

s459
00:29:55.120 --> 00:29:58.080
Uh okay, let's see.

s460
00:29:58.080 --> 00:30:00.240
Um, I'll answer this one really quick.

s461
00:30:00.240 --> 00:30:04.720
Do you feel systems these days are getting less secure, stable, and reliable due to the use of AI?

s462
00:30:04.720 --> 00:30:11.520
Uh, I think it it um I don't think AI has changed this necessarily.

s463
00:30:11.520 --> 00:30:20.880
Um, I think that it has made um security problems easier to um to what's the word I'm looking for?

s464
00:30:20.880 --> 00:30:22.880
Um,

s465
00:30:23.520 --> 00:30:24.080
exploit.

s466
00:30:24.080 --> 00:30:24.640
That's the word.

s467
00:30:24.640 --> 00:30:25.120
Thank you.

s468
00:30:25.120 --> 00:30:27.200
Uh, easier to exploit.

s469
00:30:27.200 --> 00:30:29.919
um and also like easier to identify.

s470
00:30:29.919 --> 00:30:40.159
Um and it's like the lazy developer who um who didn't really care too much about security before is able to have a bigger blaster radius now.

s471
00:30:40.159 --> 00:30:43.200
Um and so like in that way, yes.

s472
00:30:43.200 --> 00:30:46.080
Um but we always kind of had these problems.

s473
00:30:46.080 --> 00:30:49.200
It's just it is getting easier to exploit them though.

s474
00:30:49.200 --> 00:30:50.640
Okay, great.

s475
00:30:50.640 --> 00:30:51.600
And mythos.

s476
00:30:51.600 --> 00:30:53.200
Yeah, I just got to say that I guess.

s477
00:30:53.200 --> 00:30:56.000
Um sweet.

s478
00:30:56.000 --> 00:31:00.159
So, we just have one more and then I can um rest.

s479
00:31:00.159 --> 00:31:04.960
I will, by the way, I will be around all day the rest of this afternoon.

s480
00:31:04.960 --> 00:31:06.240
I'm leaving tomorrow morning.

s481
00:31:06.240 --> 00:31:11.360
So, if you do have questions or anything that you want to ask just oneonone later, uh you got to find me.

s482
00:31:11.360 --> 00:31:13.919
I'll be I'll just probably stay in the hall over here.

s483
00:31:13.919 --> 00:31:17.919
Uh you got to find me today because I I also have stickers that I brought as well.

s484
00:31:17.919 --> 00:31:21.919
So, I after this I'm just gonna run out there because they've got other people.

s485
00:31:21.919 --> 00:31:25.679
I think Kevin, do you have somebody else after this?

s486
00:31:25.679 --> 00:31:29.279
Yes, maybe if if nobody else is after this, then I'll just stay here.

s487
00:31:29.279 --> 00:31:31.760
But um if not, then I'll I'll just rush out.

s488
00:31:31.760 --> 00:31:37.600
Okay, so prioritizing software changes.

s489
00:31:37.600 --> 00:31:39.279
Uh now we've moved on.

s490
00:31:39.279 --> 00:31:44.720
We've gotten across the the chasm uh of uh early adopters and everything.

s491
00:31:44.720 --> 00:31:46.000
Now we're in the hands of the majority.

s492
00:31:46.000 --> 00:31:47.760
We are getting lots of requests.

s493
00:31:47.760 --> 00:31:54.000
So what are some requests that we could be getting in just get in the workshop?

s494
00:31:54.000 --> 00:31:55.840
Uh, actually we've kind of talked about this already.

s495
00:31:55.840 --> 00:31:56.080
You know what?

s496
00:31:56.080 --> 00:31:56.880
I'm going to skip that.

s497
00:31:56.880 --> 00:31:59.279
And we're actually going to write these down here in a little bit anyway.

s498
00:31:59.279 --> 00:32:02.880
So, um, we'll skip that really quick.

s499
00:32:02.880 --> 00:32:07.600
Um, not all feature requests, uh, create value in the same way.

s500
00:32:07.600 --> 00:32:16.720
So, um, Wayne and I were talking about Bun on the podcast and he said, uh, Bun had all these other ideas which are really exciting.

s501
00:32:16.720 --> 00:32:19.039
They've been shipping like nuts in the last year.

s502
00:32:19.039 --> 00:32:25.039
Um although it seems I don't know about you you all but I feel like it slowed down considerably after the acquisition.

s503
00:32:25.039 --> 00:32:25.919
Am I alone?

s504
00:32:25.919 --> 00:32:27.200
Anybody noticed that?

s505
00:32:27.200 --> 00:32:28.080
I'm alone.

s506
00:32:28.080 --> 00:32:30.320
Nobody who knows what bun is.

s507
00:32:30.320 --> 00:32:30.799
All right.

s508
00:32:30.799 --> 00:32:31.919
Okay.

s509
00:32:31.919 --> 00:32:32.640
Uh all right.

s510
00:32:32.640 --> 00:32:36.480
So anyway, they've been shipping like tons of really interesting useful features.

s511
00:32:36.480 --> 00:32:38.799
However, they missed some foundational ideas.

s512
00:32:38.799 --> 00:32:50.559
The reason that Wayne said this was because I'd mentioned that I'd used bun for some things, but I hadn't migrated some of my old node stuff over to bun because they were missing some pretty key features that I needed uh to be able to do that.

s513
00:32:50.559 --> 00:32:52.240
And so that's why he brought this up.

s514
00:32:52.240 --> 00:32:55.679
Uh and so there's this mental model for this called the Kano model.

s515
00:32:55.679 --> 00:32:58.399
And so that's what we're going to talk about for this last one.

s516
00:32:58.399 --> 00:33:04.240
Uh it is a 1984 paper about um attractive quality and must be quality.

s517
00:33:04.240 --> 00:33:06.720
Uh where not all features are created the same way.

s518
00:33:06.720 --> 00:33:11.600
Uh, and I wrote a I've got another YouTube video about this titled I hate sprint planning.

s519
00:33:11.600 --> 00:33:14.399
Uh, and this is how you fix sprint planning.

s520
00:33:14.399 --> 00:33:19.360
So, um, let's open up the demo.

s521
00:33:19.360 --> 00:33:21.760
So, this is the Kano model right here.

s522
00:33:21.760 --> 00:33:31.120
So, in the KO model, you have um these four quadrants that are on these two axes, the implemented and satisfied.

s523
00:33:31.120 --> 00:33:39.360
And um you have actually five categories but two of them don't appear on this graph because they should never appear in your codebase in your product at all.

s524
00:33:39.360 --> 00:33:44.399
We'll talk about them but these three are the delighters performance needs and the basic needs.

s525
00:33:44.399 --> 00:33:55.760
And um the interesting thing about basic needs is that no matter how much you've implemented it you can never get um nobody will be satisfied until it's at fully implemented.

s526
00:33:55.760 --> 00:33:59.679
And it is possible to overimplement those and we'll talk about that in a little bit.

s527
00:33:59.679 --> 00:34:00.480
performance things.

s528
00:34:00.480 --> 00:34:03.600
You hit like a a basic level and people are like, "Yeah, okay."

s529
00:34:03.600 --> 00:34:08.240
But if you keep on delivering on that, then people are going to be pretty jazzed about that.

s530
00:34:08.240 --> 00:34:11.200
Um and and it will make them happier and happier.

s531
00:34:11.200 --> 00:34:13.280
There's probably a limit to this as well.

s532
00:34:13.280 --> 00:34:16.960
Uh and then delighters, u people aren't even expecting these.

s533
00:34:16.960 --> 00:34:23.359
It's like if you have it even a little bit barely implemented, then yeah, okay, uh I'm film I like that a lot.

s534
00:34:23.359 --> 00:34:28.879
And then you can uh continue to add to lighters and eventually u crosses a performance needs.

s535
00:34:28.879 --> 00:34:30.879
um the specifics of where all this is.

s536
00:34:30.879 --> 00:34:32.960
You'll notice there are no units on this graph.

s537
00:34:32.960 --> 00:34:35.679
So like it's a little bit hand wavy on that.

s538
00:34:35.679 --> 00:34:38.720
Um but the this is the basic idea.

s539
00:34:38.720 --> 00:34:43.599
So let's uh remove the examples and we're going to add a couple requests.

s540
00:34:43.599 --> 00:34:46.560
So um uh let's see.

s541
00:34:46.560 --> 00:34:47.919
You know what?

s542
00:34:47.919 --> 00:34:50.639
Yeah, I don't I don't know that I have time for us to do those requests.

s543
00:34:50.639 --> 00:34:52.879
So we're going to use the pre pre-built ones.

s544
00:34:52.879 --> 00:34:54.000
And look away.

s545
00:34:54.000 --> 00:34:54.480
Don't look.

s546
00:34:54.480 --> 00:34:55.679
These are already categorized.

s547
00:34:55.679 --> 00:34:57.280
I I knew I I should have done this.

s548
00:34:57.280 --> 00:34:58.079
Dang it.

s549
00:34:58.079 --> 00:34:59.119
Okay, don't don't look.

s550
00:34:59.119 --> 00:34:59.680
Stop.

s551
00:34:59.680 --> 00:35:01.200
I see you looking.

s552
00:35:01.200 --> 00:35:03.040
Okay, here we are.

s553
00:35:03.040 --> 00:35:06.000
So, we've got these requests.

s554
00:35:06.000 --> 00:35:07.920
This is for a food delivery app.

s555
00:35:07.920 --> 00:35:09.520
So, we're changing shifting gears.

s556
00:35:09.520 --> 00:35:11.440
We're delivering food now.

s557
00:35:11.440 --> 00:35:13.119
We've expanded beyond just get in.

s558
00:35:13.119 --> 00:35:15.520
It's just get in the house to deliver them food.

s559
00:35:15.520 --> 00:35:18.000
That's what it is now.

s560
00:35:18.000 --> 00:35:19.359
It's getting weird.

s561
00:35:19.359 --> 00:35:20.640
Uh, all right.

s562
00:35:20.640 --> 00:35:23.280
So, uh, we've got these these items.

s563
00:35:23.280 --> 00:35:23.839
Email.

s564
00:35:23.839 --> 00:35:26.960
So, order confirmation emails are sometimes not sent.

s565
00:35:26.960 --> 00:35:32.480
Okay, real time driver GPS tracking as a feature seems like pretty useful for food delivery.

s566
00:35:32.480 --> 00:35:36.720
Estimated delivery time accuracy, like how accurate do we need to be?

s567
00:35:36.720 --> 00:35:38.079
Is it within two minutes?

s568
00:35:38.079 --> 00:35:40.640
Is it within like 10 minute accuracy?

s569
00:35:40.640 --> 00:35:47.280
Uh and then surprise discount on next order, like you finished your order and oh sweet, 25% discount next time.

s570
00:35:47.280 --> 00:35:48.000
Awesome.

s571
00:35:48.000 --> 00:35:49.040
And then shared cart.

s572
00:35:49.040 --> 00:35:51.760
So you're like a team ordering lunch together.

s573
00:35:51.760 --> 00:36:01.440
Um, maybe we can add some sort of shared card experience to make it so you don't have to do a 40 text message thread with and somebody has to awkwardly ask for money afterward.

s574
00:36:01.440 --> 00:36:04.800
So, um, based on my my mouse keeps on disappearing.

s575
00:36:04.800 --> 00:36:05.760
Is that happening for you all?

s576
00:36:05.760 --> 00:36:06.240
No, it's not.

s577
00:36:06.240 --> 00:36:07.839
I'll look at this screen instead.

s578
00:36:07.839 --> 00:36:09.280
Um, okay.

s579
00:36:09.280 --> 00:36:15.599
So, based on the Kano model, the basic things the the things that absolutely must be there.

s580
00:36:15.599 --> 00:36:20.640
Uh, raise your hand and say which of these things would you say are basic needs?

s581
00:36:20.960 --> 00:36:21.839
GPS.

s582
00:36:21.839 --> 00:36:23.040
GPS.

s583
00:36:23.040 --> 00:36:23.599
Okay.

s584
00:36:23.599 --> 00:36:25.280
GPS is a really interesting one.

s585
00:36:25.280 --> 00:36:27.760
U we're going to put it with basic, but I want to talk about that one.

s586
00:36:27.760 --> 00:36:30.000
What's next?

s587
00:36:30.240 --> 00:36:30.560
What?

s588
00:36:30.560 --> 00:36:31.680
ETA.

s589
00:36:31.680 --> 00:36:32.560
Okay.

s590
00:36:32.560 --> 00:36:33.920
ETA is an interesting one.

s591
00:36:33.920 --> 00:36:35.760
I'm not going to fill that one in uh just yet.

s592
00:36:35.760 --> 00:36:37.280
Um

s593
00:36:37.280 --> 00:36:40.720
I want to get the other There's one other basic that I'm looking for.

s594
00:36:40.720 --> 00:36:41.359
Email.

s595
00:36:41.359 --> 00:36:42.079
Yeah.

s596
00:36:42.079 --> 00:36:46.640
If if I'm not getting my email confirmation, then I'm like, who are you?

s597
00:36:46.640 --> 00:36:49.680
Like, what what have you done in in the last year?

s598
00:36:49.680 --> 00:36:56.079
So if we uh pop up just email right here anywhere down here I am not satisfied.

s599
00:36:56.079 --> 00:36:58.560
I'm getting like only some of the emails or something.

s600
00:36:58.560 --> 00:37:00.720
No, that's not going to do it for me.

s601
00:37:00.720 --> 00:37:06.000
Every other app, not just food delivery, but every other app has reliable email.

s602
00:37:06.000 --> 00:37:06.880
I'm expecting that.

s603
00:37:06.880 --> 00:37:09.680
That absolutely is required.

s604
00:37:13.280 --> 00:37:14.720
Like a notification.

s605
00:37:14.720 --> 00:37:14.960
Yeah.

s606
00:37:14.960 --> 00:37:15.280
Yeah.

s607
00:37:15.280 --> 00:37:16.079
Fair point.

s608
00:37:16.079 --> 00:37:17.760
um

s609
00:37:17.760 --> 00:37:22.800
notification and we'll go tada.

s610
00:37:22.800 --> 00:37:25.760
A notification with confetti.

s611
00:37:25.760 --> 00:37:26.160
Yeah.

s612
00:37:26.160 --> 00:37:28.079
Okay, that's very good point.

s613
00:37:28.079 --> 00:37:33.520
All right, so um I do want to talk about GPS, but I want I'm going to bring that one in last.

s614
00:37:33.520 --> 00:37:35.200
So, let's talk about performance.

s615
00:37:35.200 --> 00:37:38.480
Now, somebody mentioned ETA was a good basic.

s616
00:37:38.480 --> 00:37:40.880
I would actually put it as a performance.

s617
00:37:40.880 --> 00:37:50.480
And the reason is that as long as you're within like a reasonable range, like if you're within uh two minutes of people arriving on time, then like okay.

s618
00:37:50.480 --> 00:37:50.800
Yeah.

s619
00:37:50.800 --> 00:37:53.440
Like I realize that there are stop lights and whatnot.

s620
00:37:53.440 --> 00:37:55.440
Like that's that does happen.

s621
00:37:55.440 --> 00:38:01.200
But if you somehow manage to like get me Well, let's first start with u before.

s622
00:38:01.200 --> 00:38:05.680
If you say it's going to be 10 minutes and it's actually like 30, I'm pretty ticked.

s623
00:38:05.680 --> 00:38:11.760
If you say, even if you overd deliver and you underpromise, overd deliver and you say, "Well, it's going to be 30 minutes."

s624
00:38:11.760 --> 00:38:13.040
And then they're there in 10.

s625
00:38:13.040 --> 00:38:15.280
I'm like, "Bro, I'm not even home yet."

s626
00:38:15.280 --> 00:38:16.160
Like, gosh.

s627
00:38:16.160 --> 00:38:20.960
So, it's not necessarily overpromise, underdel or what?

s628
00:38:20.960 --> 00:38:22.880
The opposite of what I just said.

s629
00:38:22.880 --> 00:38:27.680
Uh, you need to hit some level of like satisfaction there or implementation.

s630
00:38:27.680 --> 00:38:35.920
But, you know, if it if I'm like looking at my phone and it's counting down with every step that he takes and then he drops it on my doorstep,

s631
00:38:35.920 --> 00:38:39.119
right when it hits zero, like, wow, that's pretty cool.

s632
00:38:39.119 --> 00:38:43.359
I don't know that I'm necessarily going to like be looking at my phone all the time, but I will be impressed.

s633
00:38:43.359 --> 00:38:53.200
Uh, so there is like a level where depending on what you're looking for, this is going to add a a certain amount of satisfaction for people and surprise and and

s634
00:38:53.200 --> 00:38:54.320
um they'll be excited about that.

s635
00:38:54.320 --> 00:38:56.960
Another good example of this, how many of you all are web developers?

s636
00:38:56.960 --> 00:38:59.200
You serve your app over HTTP.

s637
00:38:59.200 --> 00:39:00.800
Wow, a lot less than I expect.

s638
00:39:00.800 --> 00:39:02.240
Well, what did I expect?

s639
00:39:02.240 --> 00:39:12.640
Well, in in that world, I know some of you are native developers and you're like, "Yeah, people down my 30 gigabyte app and it takes them 20 minutes and nobody complains about that."

s640
00:39:12.640 --> 00:39:18.400
Well, us in the web world, if it takes less more than a second, then people leave.

s641
00:39:18.400 --> 00:39:20.000
Uh, so there you are.

s642
00:39:20.000 --> 00:39:24.160
So in the web world, it depends on what it is that you're building.

s643
00:39:24.160 --> 00:39:30.320
But you, one performance metric, literally performance need is how fast your website loads.

s644
00:39:30.320 --> 00:39:33.599
And in some situations being like uh 1 second.

s645
00:39:33.599 --> 00:39:34.400
All right, that's good.

s646
00:39:34.400 --> 00:39:36.160
That's going to put me at satisfactory.

s647
00:39:36.160 --> 00:39:37.280
I'm I'm happy.

s648
00:39:37.280 --> 00:39:39.200
But you can um push that further.

s649
00:39:39.200 --> 00:39:42.800
Okay, 250 milliseconds and 100 milliseconds now.

s650
00:39:42.800 --> 00:39:44.400
Like whoa, I'm really impressed by that.

s651
00:39:44.400 --> 00:39:46.000
So that's that's what we're talking about.

s652
00:39:46.000 --> 00:39:47.760
We're talking performance needs.

s653
00:39:47.760 --> 00:39:54.000
as long as for ETA as long as you're reasonably good then that's fine but you can push beyond that.

s654
00:39:54.000 --> 00:40:04.240
Uh whereas with a basic need if you go beyond the implemented then it gets to be a little bit much like all right so I received three notifications he's

s655
00:40:04.240 --> 00:40:10.560
uh he's just picked it up and now he's driving to you and he just passed the stop sign and then like it can be too much.

s656
00:40:10.560 --> 00:40:18.079
So that's kind of the difference between basic and performance is um whether or not it uh really matters if you get more and more of it.

s657
00:40:18.079 --> 00:40:18.560
Okay.

s658
00:40:18.560 --> 00:40:22.640
So now let's talk about uh discount and group order.

s659
00:40:22.640 --> 00:40:25.599
Where where should those be categorized?

s660
00:40:26.400 --> 00:40:28.000
Yeah, both of these are delighters.

s661
00:40:28.000 --> 00:40:34.880
Uh I would say uh the group order I think we're starting to get used to being able to like have more collaborative software.

s662
00:40:34.880 --> 00:40:38.720
So I would actually suggest that one's starting to move into the performance realm.

s663
00:40:38.720 --> 00:40:40.079
Um but uh yeah.

s664
00:40:40.079 --> 00:40:46.240
So, for delighters, these ones, like if you even have a little bit, um, I'm gonna be like, "Oh, yeah, sweet.

s665
00:40:46.240 --> 00:40:47.760
I'll take a 5% discount.

s666
00:40:47.760 --> 00:40:48.240
Oh, man.

s667
00:40:48.240 --> 00:40:50.079
I'll take a 90% discount.

s668
00:40:50.079 --> 00:40:50.800
Heck yeah."

s669
00:40:50.800 --> 00:40:52.240
Like, I'm I'm loving that.

s670
00:40:52.240 --> 00:40:57.280
Uh, or actually once you pass this, it's like, "Is there something wrong with this company?"

s671
00:40:57.280 --> 00:41:01.200
Like, so that like you could maybe go a little bit too far with that, too.

s672
00:41:01.200 --> 00:41:03.200
Um, and yeah, group ordering.

s673
00:41:03.200 --> 00:41:04.800
Oh, that's nice that they have that feature.

s674
00:41:04.800 --> 00:41:05.280
Oh, wow.

s675
00:41:05.280 --> 00:41:06.960
Like, it's really easy to use.

s676
00:41:06.960 --> 00:41:08.960
See, that's where we're going with that.

s677
00:41:08.960 --> 00:41:09.119
Okay.

s678
00:41:09.119 --> 00:41:10.960
Okay, I think we all pretty much get the delighters.

s679
00:41:10.960 --> 00:41:16.400
The uh the delighters are the interesting one because that's the one that's most exciting to work on, right?

s680
00:41:16.400 --> 00:41:18.480
Who wants to work on notifications?

s681
00:41:18.480 --> 00:41:21.280
Like zero people in this room want to work on that.

s682
00:41:21.280 --> 00:41:26.079
But like if you don't have that, then your users will also go down to zero.

s683
00:41:26.079 --> 00:41:27.599
Like they will not be happy with that.

s684
00:41:27.599 --> 00:41:30.880
So you have to have those delighters or those basic needs in place.

s685
00:41:30.880 --> 00:41:34.640
You cannot uh overdelight uh your basics.

s686
00:41:34.640 --> 00:41:37.599
Like if you don't have the basics, then it doesn't matter what your delighters are.

s687
00:41:37.599 --> 00:41:48.079
There's a little bit of an exception with the early adopters because they are willing to like experience all the paper cuts to get to that solution that you're you're doing for them.

s688
00:41:48.079 --> 00:41:58.480
Um but uh yeah at once you start getting to the level where you're trying to scale it out to majority uh you absolutely have to have those uh basics in or you will not be successful.

s689
00:41:58.480 --> 00:41:59.760
Now let's talk about GPS.

s690
00:41:59.760 --> 00:42:05.760
I agree that this is a basic need, but um back in 2015, this would have been a delighter.

s691
00:42:05.760 --> 00:42:20.000
Like I you mean I can watch my driver where they are right now and so yeah, you have an ETA and it's like right around here, but I can judge for myself and I know they're coming up to that uh train station and like there there's no way they're getting through that.

s692
00:42:20.000 --> 00:42:21.200
They stopped at train station.

s693
00:42:21.200 --> 00:42:36.800
So now like this is what was really really awesome in 2015 but uh it eventually moved down uh into performance and now like I'm expecting it's got to be there like it just has to exist and if you can make it more and more accurate like okay I'm feeling pretty good about that.

s694
00:42:36.800 --> 00:42:37.920
Yeah, that's pretty good.

s695
00:42:37.920 --> 00:42:42.319
Um but now I would agree I think it's a basic need if you don't have it at all.

s696
00:42:42.319 --> 00:42:44.720
Uh, and and at least at I don't know.

s697
00:42:44.720 --> 00:42:54.240
I I do think that maybe it's kind of sitting between performance and and basic need because like you can be more accurate, but honestly, am I going to really care that much that it's like that much more accurate than the next person?

s698
00:42:54.240 --> 00:43:00.319
As long as it's within a reasonable accuracy, which we could call fully implemented, then I'm fine with that.

s699
00:43:00.319 --> 00:43:16.560
So uh the the point there is that your um the the different items that you uh support from your application uh or your software solution, those pieces can move on the KO model, but they only move one direction.

s700
00:43:16.560 --> 00:43:21.440
It goes from delighter and it so if you implement a delighter, this is like a really nice feature.

s701
00:43:21.440 --> 00:43:22.240
Nobody else has it.

s702
00:43:22.240 --> 00:43:23.920
Your competitors don't have it yet.

s703
00:43:23.920 --> 00:43:29.359
Um it can either go from delighter down to performance or it can just pop off because nobody cared about it.

s704
00:43:29.359 --> 00:43:31.680
Uh, and so you're like, "Nope, we're we're going to remove that feature.

s705
00:43:31.680 --> 00:43:33.200
Nobody was using it anyway."

s706
00:43:33.200 --> 00:43:37.440
Um, but once it goes down to performance, then it's going to go down to basic need.

s707
00:43:37.440 --> 00:43:39.359
Uh, and now you have to do it.

s708
00:43:39.359 --> 00:43:47.200
Uh, so this does happen uh over time, which means you can't just be like, okay, we prioritized all of our tasks and we're going to just leave it there.

s709
00:43:47.200 --> 00:43:51.839
No, you have to regularly be looking at, okay, what have our competitors doing?

s710
00:43:51.839 --> 00:43:53.040
Oh, they added this delighter.

s711
00:43:53.040 --> 00:44:01.200
But we probably better start thinking about like looking into that and and seeing if we can solve the problem in our in our own take on that problem.

s712
00:44:01.200 --> 00:44:04.560
So that is uh the basics of the Kano model.

s713
00:44:04.560 --> 00:44:06.800
Here's a couple of things uh about that.

s714
00:44:06.800 --> 00:44:12.800
So uh Wayne was the one who introduced the Kano model to me and he gave one of my favorite analogies for this.

s715
00:44:12.800 --> 00:44:15.359
If there's no toilet paper in my hotel, that's a bad experience.

s716
00:44:15.359 --> 00:44:20.000
But if I have a hundred rolls of toilet paper, it doesn't increase my experience with the hotel.

s717
00:44:20.000 --> 00:44:27.599
Uh and actually he added I should have added it to this the thing but the next thing he said was and it might make me worry about the food.

s718
00:44:27.599 --> 00:44:41.440
So so um there is like if we were to take the the KO model and uh follow this line I would say continuing this the green line the basic needs would probably go down the more it's fully implemented

s719
00:44:41.440 --> 00:44:44.319
uh yeah it starts to become a deterrent for you.

s720
00:44:44.319 --> 00:44:48.400
Um, so but that that said, uh, slide.

s721
00:44:48.400 --> 00:44:49.359
There we go.

s722
00:44:49.359 --> 00:44:52.160
Uh, you have to have um the foundations.

s723
00:44:52.160 --> 00:44:58.800
So like don't bother wasting a bunch of time on the de delightful stuff before getting foundations right.

s724
00:44:58.800 --> 00:45:01.040
F focus on foundations and primitives.

s725
00:45:01.040 --> 00:45:07.920
Make sure you have good feedback systems so that you know that you're covering your bases as far as basics are concerned.

s726
00:45:07.920 --> 00:45:09.280
Uh, okay.

s727
00:45:09.280 --> 00:45:11.200
So uh, did I Yeah, there we go.

s728
00:45:11.200 --> 00:45:13.760
So why product engineers need the Kano model?

s729
00:45:13.760 --> 00:45:16.960
U product managers are responsible for identifying the value.

s730
00:45:16.960 --> 00:45:29.760
Um you also have some responsibility there as well but like in the perfect world product manager is going to find where that value is going to come from and they're going to deliver that to you and your job is to make sure you understand that

s731
00:45:29.760 --> 00:45:34.079
uh and then uh convert that into the technical requirements as the product engineer.

s732
00:45:34.079 --> 00:45:37.599
So you decide the reliability, reversibility, like how much does it matter?

s733
00:45:37.599 --> 00:45:39.440
What's the uh performance constraints?

s734
00:45:39.440 --> 00:45:44.240
Uh and so in in each one of these categories, it helps you make the right uh decision.

s735
00:45:44.240 --> 00:45:52.240
Not just which one should I do first, but how much technical um uh expertise or or uh effort do I put into it.

s736
00:45:52.240 --> 00:45:57.680
So um for basics, we're going to focus on reliability, completeness, ownership.

s737
00:45:57.680 --> 00:46:01.440
Like these things we absolutely have to nail and we have to do it right.

s738
00:46:01.440 --> 00:46:05.440
We don't want notifications not showing up for performance.

s739
00:46:05.440 --> 00:46:07.839
These are measurable quality gradients.

s740
00:46:07.839 --> 00:46:12.079
What that is is like how much does ETA actually matter?

s741
00:46:12.079 --> 00:46:15.440
Where is the level of satisfied do I need to get to?

s742
00:46:15.440 --> 00:46:22.000
Um because like if you have those performance metrics under the line, then that's going to be a problem as well.

s743
00:46:22.000 --> 00:46:25.839
So you need your basics up, you need your performance up at least to that line.

s744
00:46:25.839 --> 00:46:30.319
And once you have all of that, now you can start playing around with uh adding things to that.

s745
00:46:30.319 --> 00:46:39.599
So, you're going to need to measure things to make sure that you're hitting um those uh goals on the performance metrics to make sure that you're at least at the level you should be.

s746
00:46:39.599 --> 00:46:41.839
Uh and then delight uh delighters.

s747
00:46:41.839 --> 00:46:44.240
Um these are like kind of experiments.

s748
00:46:44.240 --> 00:46:54.560
Okay, so maybe you you do think that this is going to be kind of core to your identity and everything, but still a delighter is not a basic and you need to make sure that you're covering your bases on the basics.

s749
00:46:54.560 --> 00:47:06.319
So you're going to be thinking about okay with this experiment how much do I want to invest in making sure that this is solid reliable every I mean of course we want everything to be reliable right but there's only so much time there's only so many tokens

s750
00:47:06.319 --> 00:47:21.839
uh and so this is where you're going to um maybe have a little less commitment from an architectural standpoint maybe you kind of instead of integrating it into the existing system you have this other uh system where there you can do a lot of learning and then once you've learned and kind of gotten the shape of this

s751
00:47:21.839 --> 00:47:25.760
new thing you can find a way to bring it back into the full system.

s752
00:47:25.760 --> 00:47:26.000
All right.

s753
00:47:26.000 --> 00:47:29.440
Now there like I said there are other two other parts of the Kano model.

s754
00:47:29.440 --> 00:47:32.960
One is uh the indifference category.

s755
00:47:32.960 --> 00:47:38.880
So these are the things where the user like you decide that it doesn't really make a difference whether you have this or not.

s756
00:47:38.880 --> 00:47:39.359
I don't care.

s757
00:47:39.359 --> 00:47:40.720
I don't need that feature.

s758
00:47:40.720 --> 00:47:48.000
Uh so you don't want to make this like a a permanent part of your product and in fact you want it out of your product as quickly as possible.

s759
00:47:48.000 --> 00:47:51.359
It's just dead weight that you have to maintain as an engineer.

s760
00:47:51.359 --> 00:47:52.160
It's not useful.

s761
00:47:52.160 --> 00:48:02.960
And this is why it's important for you to understand the Kano model because you need to go to your your boss and say or your product manager say listen we spent two weeks maintaining this feature.

s762
00:48:02.960 --> 00:48:04.160
Is anybody using that?

s763
00:48:04.160 --> 00:48:06.240
Like does anybody even care about this thing?

s764
00:48:06.240 --> 00:48:13.359
Because if they don't maybe I should not spend two weeks working on figuring out how to get that migrated over to the new system.

s765
00:48:13.359 --> 00:48:16.240
So uh in different category you definitely want to know about.

s766
00:48:16.240 --> 00:48:17.680
And then uh reverse.

s767
00:48:17.680 --> 00:48:21.920
This is the sort of thing that you just really don't want in your product at all.

s768
00:48:21.920 --> 00:48:32.559
So, we were talking about the the facial recognition thing where like, oh yeah, maybe when you sign in, it could like automatically post to their social media saying, I'm going to this event.

s769
00:48:32.559 --> 00:48:34.400
Like, they would probably really hate that.

s770
00:48:34.400 --> 00:48:36.000
I I would hate that a lot.

s771
00:48:36.000 --> 00:48:42.720
Um, and so these are the sorts of thing that you as an engineer like, uh, let me ask you this.

s772
00:48:42.720 --> 00:48:47.200
There are products that do shady things that we don't like as users.

s773
00:48:47.200 --> 00:48:48.079
That that's a given.

s774
00:48:48.079 --> 00:48:50.079
I think we can all agree on that.

s775
00:48:50.079 --> 00:48:52.319
Who built that?

s776
00:48:52.319 --> 00:48:53.040
We did.

s777
00:48:53.040 --> 00:48:55.440
Software engineers are building that.

s778
00:48:55.440 --> 00:48:59.440
And and I'm not saying that the buck stops here necessarily, but it kind of does.

s779
00:48:59.440 --> 00:49:01.520
Like we're the ones who are building it.

s780
00:49:01.520 --> 00:49:08.800
So like, could you please push back on those stupid ideas that are like making our lives awful?

s781
00:49:08.800 --> 00:49:15.520
like software can be just this wonderful thing that can make the fulfill our lives so much better.

s782
00:49:15.520 --> 00:49:20.160
And it's software engineers just like us that that uh do the opposite as well.

s783
00:49:20.160 --> 00:49:26.319
And so um like take a stand and be like, "No, I'm not going to do that."

s784
00:49:26.319 --> 00:49:30.319
And yes, I realize that maybe you're Yeah, thank you.

s785
00:49:30.319 --> 00:49:34.640
Uh I realize like, okay, yeah, Ken, that's that's nice as a self-employed person.

s786
00:49:34.640 --> 00:49:38.720
Um, but uh I don't I don't know.

s787
00:49:38.720 --> 00:49:41.680
I feel like um have a little respect for yourself.

s788
00:49:41.680 --> 00:49:42.880
There you go.

s789
00:49:42.880 --> 00:49:45.200
So, uh I'm gonna answer a couple more questions.

s790
00:49:45.200 --> 00:49:48.559
We have four minutes, I think, until I'm I'm booted out of here.

s791
00:49:48.559 --> 00:49:52.400
And before I do this, uh I'm just going to look.

s792
00:49:52.400 --> 00:49:53.119
Ah, shoot.

s793
00:49:53.119 --> 00:49:53.760
You know what?

s794
00:49:53.760 --> 00:49:54.880
I don't have time for questions.

s795
00:49:54.880 --> 00:49:56.319
Here's what we're going to do.

s796
00:49:56.319 --> 00:49:59.520
Uh I I don't know if there's somebody in this room after me.

s797
00:49:59.520 --> 00:50:00.319
Is there anybody?

s798
00:50:00.319 --> 00:50:00.960
Is there

s799
00:50:00.960 --> 00:50:01.599
There is.

s800
00:50:01.599 --> 00:50:02.160
There is.

s801
00:50:02.160 --> 00:50:03.119
Thank you.

s802
00:50:03.119 --> 00:50:03.440
Sorry.

s803
00:50:03.440 --> 00:50:03.760
What?

s804
00:50:03.760 --> 00:50:04.400
It's PayPal.

s805
00:50:04.400 --> 00:50:05.440
It's PayPal.

s806
00:50:05.440 --> 00:50:06.480
I loved PayPal.

s807
00:50:06.480 --> 00:50:07.280
Loved working at PayPal.

s808
00:50:07.280 --> 00:50:09.119
So, we're not going to be a problem for PayPal.

s809
00:50:09.119 --> 00:50:10.079
I'm gonna run.

s810
00:50:10.079 --> 00:50:16.640
I'm not going to talk to any of you and I'm just going to run over to the hall over here and then if anybody who wants to talk can talk.

s811
00:50:16.640 --> 00:50:17.760
So, let me just wrap up.

s812
00:50:17.760 --> 00:50:18.800
I don't want you leaving yet.

s813
00:50:18.800 --> 00:50:19.680
You haven't clapped yet.

s814
00:50:19.680 --> 00:50:20.894
Gosh.

s815
00:50:20.894 --> 00:50:21.599
[laughter]

s816
00:50:21.599 --> 00:50:23.839
So, just really quick.

s817
00:50:23.839 --> 00:50:29.520
Um, the mom test helped us with idea early idea valuation or validation.

s818
00:50:29.520 --> 00:50:31.280
It's not just for startups.

s819
00:50:31.280 --> 00:50:35.040
It's also for any new product idea that you have in your company.

s820
00:50:35.040 --> 00:50:47.920
Um, framing user requests with jobs theory will help you make sure that you're not just building the solutions as the they come to you from the user, but that you can manage actually to solve many user requests with a single solution.

s821
00:50:47.920 --> 00:50:57.680
And the Kano model will help you prioritize all of the uh changes that are coming down the pipe and make sure that you're not shipping anything that's in the reverse category at least.

s822
00:50:57.680 --> 00:51:01.200
And with that, um, I want you to remember my original thesis.

s823
00:51:01.200 --> 00:51:07.520
When AI agents level the implementation playing field, the differentiator becomes building the right thing.

s824
00:51:07.520 --> 00:51:12.079
Um, and this is why I say this is the last skill you all need to learn.

s825
00:51:12.079 --> 00:51:22.480
uh once the AI agents figure out how to do this then who know like this AGI we I don't know what we do in this industry but this what's really cool about this is even if I am wrong

s826
00:51:22.480 --> 00:51:30.480
and agents stop right here they don't get any better than they are right now and we're still having to babysit them and all the stuff that we're doing now if I'm wrong

s827
00:51:30.480 --> 00:51:46.240
if you do this you are one of the most valuable members of your team at your company because this is where the actual value comes from when you can take your technical expertise and marry it to the actual problems your users are having, then you're the most valuable person at your company.

s828
00:51:46.240 --> 00:51:47.760
And that is it.

s829
00:51:47.760 --> 00:51:49.320
Thank you all so very much.

s830
00:51:49.320 --> 00:51:51.320
[applause]

s831
00:52:06.350 --> 00:52:08.350
[music]
