WEBVTT

1
00:00:00.000 --> 00:00:00.780
Bang, boom.

2
00:00:03.660 --> 00:00:04.540
All righty.

3
00:00:05.640 --> 00:00:07.760
Bruce, I sent you a little reaction to the prep

4
00:00:07.760 --> 00:00:08.720
that you gave yesterday.

5
00:00:11.100 --> 00:00:15.560
And so let's just dive in with whatever you've got in mind

6
00:00:15.560 --> 00:00:16.340
and see where we go.

7
00:00:17.700 --> 00:00:17.780
Awesome.

8
00:00:18.300 --> 00:00:21.000
I replied with a link, but I'll paste it here

9
00:00:21.000 --> 00:00:22.220
in the chat as well.

10
00:00:23.680 --> 00:00:26.440
If you want to bring it up, or I can maybe talk through it

11
00:00:26.440 --> 00:00:28.140
or present it where it is at.

12
00:00:28.140 --> 00:00:32.460
And Lucian and Janata and I have gone really deep in on this,

13
00:00:32.920 --> 00:00:36.660
and the others are not as into it.

14
00:00:36.680 --> 00:00:39.800
So it'll be a good recap to kind of show where we're stuck.

15
00:00:40.900 --> 00:00:41.120
Yeah, sure.

16
00:00:43.020 --> 00:00:44.840
Yeah, feel free to open that up.

17
00:00:48.320 --> 00:00:51.520
And I'm especially curious to hear this kind of from

18
00:00:51.520 --> 00:00:54.280
a framing perspective of sort of like, why is this happening

19
00:00:54.300 --> 00:00:57.060
now, and what, you know what I mean?

20
00:00:57.060 --> 00:00:59.400
Like, what's the win?

21
00:01:01.580 --> 00:01:03.260
Yeah, that's good.

22
00:01:05.220 --> 00:01:07.540
So yeah, so we've got the frame doc.

23
00:01:08.040 --> 00:01:10.640
We have a little monster map task grid,

24
00:01:11.200 --> 00:01:13.920
which we've called it a task grid in our team.

25
00:01:15.260 --> 00:01:18.540
And the process is, I mean, so just to step out,

26
00:01:19.000 --> 00:01:21.500
like generally, I feel like the process is working.

27
00:01:21.680 --> 00:01:23.600
It'd be interesting if anyone has other feedback.

28
00:01:23.800 --> 00:01:25.820
But from my standpoint, I feel like we're really

29
00:01:25.820 --> 00:01:27.680
being consistent between projects.

30
00:01:28.540 --> 00:01:30.060
We've changed our Notion template.

31
00:01:30.260 --> 00:01:32.340
So there's like, we have the breadboard, Figma,

32
00:01:33.060 --> 00:01:33.760
BigJam file there.

33
00:01:33.860 --> 00:01:35.960
You have the task grid link out.

34
00:01:36.000 --> 00:01:37.920
And then we just have our framed doc,

35
00:01:37.940 --> 00:01:41.380
what we used to call shaped doc, which was like problem,

36
00:01:41.800 --> 00:01:42.280
solution, out.

37
00:01:44.040 --> 00:01:46.120
It was a different set of things.

38
00:01:46.560 --> 00:01:49.880
Now we just have the problem outcome, what we're not doing,

39
00:01:49.980 --> 00:01:51.440
and then an appetite.

40
00:01:51.700 --> 00:01:52.660
So this is kind of four sections.

41
00:01:52.780 --> 00:01:55.280
So that feels pretty standardized.

42
00:01:55.280 --> 00:02:01.920
We had some cases where we accidentally left a bullet in

43
00:02:01.920 --> 00:02:04.520
or put a very unclear bullet in the frame doc.

44
00:02:04.580 --> 00:02:05.900
And we've used our framing doc when

45
00:02:05.900 --> 00:02:07.800
we're working with clients kind of as our contract.

46
00:02:08.020 --> 00:02:11.000
So that becomes the thing we default back to.

47
00:02:11.960 --> 00:02:13.880
So that's caused us to be extremely precise

48
00:02:13.880 --> 00:02:16.440
and kind of treat it like using the words

49
00:02:16.440 --> 00:02:21.380
to be kind of a lot sharper to either include something

50
00:02:21.380 --> 00:02:23.160
or to exclude something very clearly

51
00:02:23.160 --> 00:02:26.820
and not have vague bullets in there as much as possible.

52
00:02:28.340 --> 00:02:29.860
So in other projects, it's working great.

53
00:02:30.420 --> 00:02:35.500
I feel like, I think overall, we're implementing it.

54
00:02:35.640 --> 00:02:36.100
We're doing it.

55
00:02:36.320 --> 00:02:37.760
I feel like we're implementing each piece.

56
00:02:38.180 --> 00:02:41.180
This one was interesting because it's our project.

57
00:02:41.200 --> 00:02:44.020
So we can kind of dictate how we want to work on it.

58
00:02:44.160 --> 00:02:46.540
And part of the reason why we've kind of procrastinated on it

59
00:02:46.540 --> 00:02:48.140
is because it's just been, we've just

60
00:02:48.140 --> 00:02:51.600
done other things that were more interesting or more

61
00:02:51.600 --> 00:02:52.620
useful at the time.

62
00:02:53.360 --> 00:02:56.200
But we keep kind of like kicking the can down the road.

63
00:02:56.420 --> 00:02:58.420
So eventually, we're just like, we got to eventually talk

64
00:02:58.520 --> 00:02:59.880
about this piece.

65
00:03:02.700 --> 00:03:06.140
And so this is interesting because it was too big

66
00:03:06.140 --> 00:03:08.140
and we couldn't quite wrap our heads around it.

67
00:03:08.200 --> 00:03:11.420
We just kept, it was just this kind of blob out there

68
00:03:11.540 --> 00:03:13.540
of things we didn't really know what to do with it.

69
00:03:13.580 --> 00:03:15.900
So we had started a project, Lucha and I,

70
00:03:16.220 --> 00:03:20.080
and Gennady did a three hour or so deep dive shaping session

71
00:03:20.080 --> 00:03:22.020
where we like pulled all the pieces out

72
00:03:22.020 --> 00:03:23.360
and started to pull the whole thing apart.

73
00:03:23.460 --> 00:03:26.420
So we have a FigJam file there.

74
00:03:26.480 --> 00:03:28.440
And I can, if you want, I can walk through some of it

75
00:03:28.440 --> 00:03:31.260
as I talk, or I can let you, if you have questions, jump in.

76
00:03:32.160 --> 00:03:34.660
Yeah, I'll just ask, because I pulled up the notion

77
00:03:35.680 --> 00:03:42.700
and I see here, yeah, so I see all these issues,

78
00:03:43.020 --> 00:03:45.080
like there's like performance issues,

79
00:03:45.380 --> 00:03:46.620
there's different domains,

80
00:03:46.760 --> 00:03:48.960
like you've got unnecessary redirects,

81
00:03:48.960 --> 00:03:52.680
like, and I get how these things are bad.

82
00:03:54.680 --> 00:03:57.520
The thing I'm curious about is like,

83
00:03:57.940 --> 00:03:59.440
just for me to wrap my head around

84
00:03:59.440 --> 00:04:00.740
what this project is really about,

85
00:04:02.080 --> 00:04:03.780
like these things are kind of,

86
00:04:03.980 --> 00:04:08.000
these things were probably all true for how long?

87
00:04:08.340 --> 00:04:10.180
Like for like a year plus?

88
00:04:13.620 --> 00:04:15.160
Oh, they've been true, yeah.

89
00:04:15.420 --> 00:04:17.279
You mean like-

90
00:04:17.279 --> 00:04:19.459
How long have these problems been kind of existing

91
00:04:19.459 --> 00:04:20.120
as problems?

92
00:04:20.500 --> 00:04:22.760
At least two, a year and a half, two years, maybe?

93
00:04:22.900 --> 00:04:23.080
Yeah.

94
00:04:23.080 --> 00:04:26.120
The two domain thing has been around since we started.

95
00:04:27.480 --> 00:04:31.020
And it was like, instead of building on top of the app,

96
00:04:31.040 --> 00:04:32.660
we just kind of built next to the app

97
00:04:32.660 --> 00:04:34.260
on a totally different tech stack.

98
00:04:34.720 --> 00:04:36.640
And so it's just caused issues.

99
00:04:38.480 --> 00:04:43.300
So what, did something change where like,

100
00:04:43.300 --> 00:04:44.580
we can't live with this anymore?

101
00:04:45.140 --> 00:04:49.400
Or did the criticality change?

102
00:04:49.940 --> 00:04:51.640
Is there something you're trying to do now

103
00:04:51.640 --> 00:04:53.300
that you can't do because of this?

104
00:04:53.560 --> 00:04:54.060
Or, you know what I mean?

105
00:04:54.120 --> 00:04:56.860
Is it like, actually we finished everything else

106
00:04:56.860 --> 00:04:58.020
and now we just have an opening

107
00:04:58.020 --> 00:04:59.980
and we don't have anything else that's kind of more?

108
00:05:00.000 --> 00:05:03.020
or important to do, therefore we're going to finally do this

109
00:05:03.020 --> 00:05:04.720
because we have the capacity for it.

110
00:05:04.720 --> 00:05:07.540
Like what's, what, what changed in terms of, in terms of the

111
00:05:07.540 --> 00:05:10.160
context that you're like finally doing something about this now.

112
00:05:11.940 --> 00:05:16.580
I think as we're like, um, so we were, it was very much like

113
00:05:16.580 --> 00:05:19.300
an enterprise sale, so we were, we would go and set everything

114
00:05:19.300 --> 00:05:20.420
up manually for people.

115
00:05:20.420 --> 00:05:23.680
It was very, like, it didn't, the main thing didn't matter.

116
00:05:23.740 --> 00:05:25.640
Like some of the redirects that didn't matter too much.

117
00:05:25.780 --> 00:05:29.700
It's that we're trying to like streamline onboarding

118
00:05:29.700 --> 00:05:31.080
or simplifying the workflow.

119
00:05:31.760 --> 00:05:35.120
The underlying stuff is really around, like, it's confusing.

120
00:05:35.380 --> 00:05:36.380
We have the two domains.

121
00:05:36.700 --> 00:05:43.720
Technically, that's not a problem, but, um, the, uh, it's as we're

122
00:05:43.720 --> 00:05:46.500
trying to like, think of like, how do we do a streamlined

123
00:05:46.660 --> 00:05:48.900
onboarding process for a new client?

124
00:05:49.360 --> 00:05:52.740
Now we have, it's just, we have this sort of underlying big problem.

125
00:05:52.780 --> 00:05:54.900
It's like, well, we have two homes next to each other.

126
00:05:54.900 --> 00:05:57.820
So we're trying to figure out how to like get someone a nice,

127
00:05:57.820 --> 00:06:01.960
you know, tour of the house, except there's two houses next to each other.

128
00:06:02.380 --> 00:06:04.880
And so it's already confusing, like, well, clients, you know,

129
00:06:05.000 --> 00:06:06.400
admins and stuff don't know.

130
00:06:06.460 --> 00:06:09.160
Am I supposed to be in this house for this thing or this other house

131
00:06:09.160 --> 00:06:10.340
over here for this other thing?

132
00:06:11.420 --> 00:06:15.840
Um, and so we can keep like putting hacks in, but to me, I feel like

133
00:06:15.840 --> 00:06:21.460
there's a fundamental piece there, uh, needing to move to maybe one, one thing.

134
00:06:23.080 --> 00:06:27.840
Um, um, did, how did it happen that, um, uh, streamlining

135
00:06:27.860 --> 00:06:30.800
your onboarding became a topic?

136
00:06:32.120 --> 00:06:35.160
Did something change with the number of clients you have or the way that

137
00:06:35.160 --> 00:06:37.860
you're servicing clients or the mix of things you're doing?

138
00:06:39.840 --> 00:06:44.520
It, so it was more of an issue, more of an issue where we, uh, we kind

139
00:06:44.520 --> 00:06:47.560
of had this enterprise thing and then we started, we were going to

140
00:06:47.720 --> 00:06:50.300
restructure it to have like an, basically we have a white labeled

141
00:06:50.300 --> 00:06:53.460
version of tribe, and now we were thinking of having a non-white

142
00:06:53.460 --> 00:06:56.800
labeled version, so something that would just be a tribe social group

143
00:06:56.940 --> 00:07:00.560
that would be a massively reduced price.

144
00:07:00.900 --> 00:07:04.120
So instead of, you know, 30,000 for the year, it's like 3000 for the year.

145
00:07:04.600 --> 00:07:09.040
Um, so you, if you didn't want the white label piece, um, we were going to

146
00:07:09.040 --> 00:07:13.940
make a much more streamlined version that coincidentally, since the, because

147
00:07:13.940 --> 00:07:17.700
it's taken so long to talk about this has like shifted to not be quite as

148
00:07:17.700 --> 00:07:23.080
big of a thing, um, but still, even if we have enterprise clients, it's

149
00:07:23.080 --> 00:07:26.160
confusing to train their teams on where everything is and jumping between

150
00:07:26.160 --> 00:07:28.620
these two platforms is still complicated.

151
00:07:29.320 --> 00:07:35.280
Um, so it's, it's just, uh, it's difficult for new users to get, to

152
00:07:35.280 --> 00:07:36.680
feel like they're in control of it.

153
00:07:37.020 --> 00:07:41.300
And that's really important that our clients, the teams like who are

154
00:07:41.300 --> 00:07:46.300
supporting the app feel like they're in control of it because, um, that

155
00:07:46.300 --> 00:07:50.100
makes them successful and, you know, it means that they keep on with the platform.

156
00:07:51.380 --> 00:07:51.380


157
00:07:52.080 --> 00:07:53.700
do I understand, right.

158
00:07:53.700 --> 00:07:59.880
That there is a kind of a concern that if you don't, is it, does this, does

159
00:07:59.880 --> 00:08:04.000
this concern you that like, if we don't do this project and we don't change

160
00:08:04.760 --> 00:08:10.640
this, um, that like this, this, this confusion, this onboarding, that this

161
00:08:10.640 --> 00:08:13.920
is like kind of like a bad experience thing that, that somehow hurts us.

162
00:08:20.720 --> 00:08:29.080
Um, yeah, I think it, uh, I think the thing that we felt, so maybe it's

163
00:08:29.080 --> 00:08:32.620
like to zoom out, like the, the, the blocker that we identified when

164
00:08:32.620 --> 00:08:40.419
Lucha and I talked was like, um, and, and this, we, um, we feel like we're

165
00:08:40.419 --> 00:08:44.360
being held back right now on creativity because there's this, it's kind of

166
00:08:44.360 --> 00:08:45.680
like we're building between these two houses.

167
00:08:45.720 --> 00:08:46.280
We don't know where we're going.

168
00:08:46.280 --> 00:08:47.260
to put a new feature.

169
00:08:48.400 --> 00:08:51.260
Um, so it feels like it's a blocker, not so much this kind of going down a

170
00:08:51.260 --> 00:08:53.380
rabbit hole in the smaller new users.

171
00:08:53.380 --> 00:08:56.160
I mean, we definitely want the new users, but maybe a more important thing would

172
00:08:57.340 --> 00:09:04.140
be, um, like if we feel stuck with the, with users, uh, with, um, like putting

173
00:09:04.140 --> 00:09:09.340
a new feature in, like we have a, a go live, uh, a meeting because, uh, Google

174
00:09:09.340 --> 00:09:13.060
meets type experience, which we have kind of working in the app.

175
00:09:13.100 --> 00:09:14.040
It's not great.

176
00:09:14.040 --> 00:09:17.460
But if we wanted to go and improve it, it's like, do we really want to spend a

177
00:09:17.460 --> 00:09:21.700
lot of time working on this, this other platform or do we want to build it

178
00:09:21.700 --> 00:09:23.240
back in the core part of the app?

179
00:09:25.660 --> 00:09:30.700
Um, so one win that we had out of this, which I could, um, better

180
00:09:30.840 --> 00:09:33.600
illustrated in the task grid in monster.

181
00:09:34.260 --> 00:09:36.880
Um, cause you can see how we sort of chopped up the project.

182
00:09:37.180 --> 00:09:42.300
Um, I don't know if you want to go that deep yet, but, um, we essentially

183
00:09:42.300 --> 00:09:46.600
did this first square here where we figured out we could like, we actually

184
00:09:46.800 --> 00:09:52.240
one big clarity moment of clarity that the shaping process brought out was.

185
00:09:52.720 --> 00:09:56.660
We felt very constrained by these, like one set of clients that what

186
00:09:56.660 --> 00:09:59.980
we called like legacy or V1, and then we had these new.

187
00:10:00.000 --> 00:10:04.360
clients that are what we're calling like V2, they're actually two different types of apps.

188
00:10:05.660 --> 00:10:08.460
And we kind of are all built on top of each other right now.

189
00:10:09.040 --> 00:10:15.380
And so one way that we, we kind of found this very small thing that we could like split

190
00:10:15.580 --> 00:10:22.920
the code in like a V1, V2 inside the, you know, app.js script file.

191
00:10:22.920 --> 00:10:27.400
So we could actually split the experience to two different sides of the app.

192
00:10:27.400 --> 00:10:33.060
And so it let us like build in the JavaScript app, one of those two versions without, because

193
00:10:33.060 --> 00:10:37.640
we couldn't change stuff for the V2 clients without breaking stuff for V1.

194
00:10:37.860 --> 00:10:40.000
And we couldn't fix things for V1 without V2.

195
00:10:41.060 --> 00:10:43.700
And so there was a huge moment of clarity.

196
00:10:44.940 --> 00:10:48.380
And Lucha and I, or we've already implemented this.

197
00:10:48.400 --> 00:10:49.440
So that part's done.

198
00:10:49.520 --> 00:10:52.500
And I really feel like we've got some value from the project.

199
00:10:53.100 --> 00:10:57.080
Because now we've suddenly felt like, okay, if we did want to add a feature, we could

200
00:10:57.080 --> 00:10:57.800
put it over here.

201
00:10:57.900 --> 00:11:03.880
Like we now have a place for it without running the risk of breaking.

202
00:11:05.060 --> 00:11:05.060


203
00:11:07.120 --> 00:11:07.120


204
00:11:07.400 --> 00:11:07.520
Yep.

205
00:11:07.700 --> 00:11:08.660
Okay, good.

206
00:11:13.800 --> 00:11:15.000
I'm, okay, good.

207
00:11:15.200 --> 00:11:16.200
So I, so I'm caught up.

208
00:11:16.460 --> 00:11:20.680
So, so what this, this is actually about, so there, there are, there are some things

209
00:11:20.760 --> 00:11:25.380
from the customer side, but really what's driving this is like, there's things we want

210
00:11:25.380 --> 00:11:25.800
to do.

211
00:11:26.160 --> 00:11:29.920
And we feel held back from doing the new things we want to do because of the gnarliness of

212
00:11:29.920 --> 00:11:32.220
how the V1 and the V2 were kind of tangled together.

213
00:11:32.580 --> 00:11:36.780
So if we can kind of clean this up so that we have like this better thing to build on

214
00:11:36.780 --> 00:11:40.600
top of, it's, it's not so much that like, we're going to get an outcome specifically

215
00:11:40.860 --> 00:11:41.840
from this work.

216
00:11:41.840 --> 00:11:45.760
It's more like, we're going to be able to unblock this other work that we want to do,

217
00:11:45.840 --> 00:11:47.540
which is like the new features and stuff like that.

218
00:11:47.560 --> 00:11:48.100
Is that right?

219
00:11:49.300 --> 00:11:49.820
That's good.

220
00:11:49.900 --> 00:11:50.040
Yeah.

221
00:11:50.040 --> 00:11:57.020
I don't know if Lucian or Jonathan has any other feedback I didn't include, but this

222
00:11:57.020 --> 00:12:01.260
is sort of the summary of three hours of conversation.

223
00:12:02.820 --> 00:12:09.460
And there is a, if you go to the, back to Notion, there's like a fig jam board.

224
00:12:10.140 --> 00:12:12.740
If you go, yeah, this, this one, a thread board.

225
00:12:13.780 --> 00:12:18.880
So we, this is very all over the place, but this is sort of the raw, now it's just kind

226
00:12:18.880 --> 00:12:20.960
of has the framed piece we started.

227
00:12:23.480 --> 00:12:27.640
And I think I shared it with your Hey email, but I can, if it's email, but you can keep

228
00:12:27.640 --> 00:12:31.040
going in your, I don't want to take you away from your teal draw.

229
00:12:33.180 --> 00:12:38.780
So, but if you kind of scroll to the right, we, we, we we summarized exactly like you

230
00:12:38.780 --> 00:12:43.160
said here, step one, set up for fixing stuff and then step two, fix stuff.

231
00:12:43.600 --> 00:12:48.760
So we just said, there's this piece we need to like figure out how to like, and that's

232
00:12:48.760 --> 00:12:52.740
where you can see like the 1.0 was this like more of a streaming platform.

233
00:12:52.740 --> 00:12:56.760
And then two was very much more like a, we kind of call it like there's a Netflix type

234
00:12:56.940 --> 00:12:57.380
experience.

235
00:12:57.380 --> 00:12:59.320
And then there's a Facebook type experience.

236
00:12:59.620 --> 00:13:01.580
They're all under the same app.

237
00:13:01.580 --> 00:13:02.680
And that's what was confusing.

238
00:13:02.780 --> 00:13:07.420
We've only been selling really the, the 2.0 version, but we're kind of constrained with

239
00:13:07.420 --> 00:13:09.880
like 1.0 sort of infrastructure.

240
00:13:09.880 --> 00:13:14.820
And they, they started to compete with each other in some places like, yes, they both

241
00:13:14.820 --> 00:13:15.340
have video.

242
00:13:15.480 --> 00:13:15.600
Yes.

243
00:13:15.600 --> 00:13:16.420
They both have users.

244
00:13:16.420 --> 00:13:16.660
Yes.

245
00:13:16.660 --> 00:13:21.100
They both have analytics, but they start to get different the deeper you go into it.

246
00:13:22.100 --> 00:13:25.360
So that's where just splitting it out was, was helpful.

247
00:13:26.260 --> 00:13:31.240
So at least now they're like on the, in the code space, there's a directory called V2

248
00:13:31.240 --> 00:13:34.180
components and we can start to throw V2 stuff into that.

249
00:13:36.060 --> 00:13:38.940
So it's just, there's nothing much more useful there.

250
00:13:38.960 --> 00:13:44.680
I just illustrating that we kind of use the process to sort of get that point of clarity.

251
00:13:44.680 --> 00:13:46.680
And then now we can kind of move on.

252
00:13:46.840 --> 00:13:51.280
And so the rest of the project so far was just like chopping up each of the different

253
00:13:51.280 --> 00:13:52.880
pieces that I would have to move over.

254
00:13:54.300 --> 00:13:57.060
We've also considered like, Hey, work has been done.

255
00:13:57.240 --> 00:13:58.140
A thing has been done.

256
00:13:58.280 --> 00:14:03.700
Like, could we call this the project and move on and then just turn these other things into

257
00:14:03.700 --> 00:14:04.020
projects?

258
00:14:04.040 --> 00:14:09.040
So that's where we thought it would be helpful to, and this is very common when we have a

259
00:14:09.040 --> 00:14:09.280
client.

260
00:14:09.320 --> 00:14:13.380
So we had a client come in and they had built an app for two years.

261
00:14:13.380 --> 00:14:16.380
They came to us now we're kind of building the next feature.

262
00:14:16.380 --> 00:14:20.500
So we had like, and they had like, you know, eight things they want to change with the

263
00:14:20.500 --> 00:14:20.720
app.

264
00:14:20.720 --> 00:14:24.200
So this is a very common thing where we have a lot of things, different things we need

265
00:14:24.200 --> 00:14:24.480
to change.

266
00:14:24.500 --> 00:14:29.940
We need to sort of figure out how to chop them up into meaningful pieces of work and

267
00:14:29.940 --> 00:14:32.660
try to identify or surface like what's really the underlying issue.

268
00:14:32.660 --> 00:14:36.300
And then can we get a lot of value, which we kind of started to do that here.

269
00:14:36.300 --> 00:14:41.220
We figured out like, Oh, it's this idea that we have two different things going on and

270
00:14:41.220 --> 00:14:44.520
we need to split it out in the code very clearly, like one and two.

271
00:14:45.160 --> 00:14:49.040
And we could push that into production and keep moving forward.

272
00:14:49.580 --> 00:14:50.540
So we did ship that.

273
00:14:50.760 --> 00:14:53.560
That's kind of in use already today.

274
00:14:54.340 --> 00:14:57.600
So this slice, you could, you could call that done.

275
00:14:57.840 --> 00:14:57.840


276
00:14:57.840 --> 00:14:58.360
Yeah.

277
00:14:58.360 --> 00:14:58.880
Uh huh.

278
00:14:58.880 --> 00:14:59.200
Okay.

279
00:15:00.000 --> 00:15:08.360
And so where do you, like, I can comment on things,

280
00:15:08.660 --> 00:15:12.440
but like, where do you start to feel

281
00:15:14.520 --> 00:15:16.100
like there's something that you're not,

282
00:15:17.700 --> 00:15:19.560
you're looking at here that feels like,

283
00:15:20.740 --> 00:15:22.540
either like, I kind of feel like we're stuck

284
00:15:22.540 --> 00:15:27.360
on where to go next, or I feel like we have a path

285
00:15:27.360 --> 00:15:29.140
for where to go next, but there's something

286
00:15:29.140 --> 00:15:32.640
that I don't like about it, or I'm not sure about it.

287
00:15:33.000 --> 00:15:33.440
You know what I mean?

288
00:15:33.740 --> 00:15:37.360
Like, where would you wanna kind of put my attention

289
00:15:37.360 --> 00:15:38.720
in terms of like, here's the place

290
00:15:38.720 --> 00:15:39.900
where I'm not sure about?

291
00:15:41.360 --> 00:15:43.860
Yeah, I think, so the first piece is done.

292
00:15:44.020 --> 00:15:46.200
We've now got, you know, six or seven other

293
00:15:46.580 --> 00:15:49.620
sort of scopes, you know, to kind of work through.

294
00:15:50.840 --> 00:15:55.940
I just wonder, so we can't just do groups by itself.

295
00:15:56.000 --> 00:15:58.220
We can't just do the notification center by itself.

296
00:15:58.220 --> 00:16:00.400
We'd have to do each of these to get it

297
00:16:00.400 --> 00:16:02.220
to a usable point to where we could actually

298
00:16:02.220 --> 00:16:05.300
put a client into, to start using it.

299
00:16:05.940 --> 00:16:08.940
The cool thing is we do, you know, have this way

300
00:16:08.940 --> 00:16:12.820
where we can, like, release different pieces of it

301
00:16:13.400 --> 00:16:16.380
and turn specific platforms to V1 or V2.

302
00:16:16.460 --> 00:16:18.860
Like, we can control which experience they have.

303
00:16:19.820 --> 00:16:24.000
But I can't just, like, I can't turn groups here

304
00:16:24.000 --> 00:16:29.100
into NJS, this first scope, can't turn that really

305
00:16:29.100 --> 00:16:31.120
into a one or two week project and then ship it

306
00:16:31.120 --> 00:16:33.880
because there's nothing usable at the end of it.

307
00:16:34.980 --> 00:16:37.640
So maybe the question is, like, do we sort of keep

308
00:16:37.640 --> 00:16:40.580
all these under the surface in like a, you know,

309
00:16:40.580 --> 00:16:42.500
and then kind of put the whole thing out there together

310
00:16:42.500 --> 00:16:44.160
as one bigger release?

311
00:16:44.560 --> 00:16:49.680
Or is there, like, do we need to kind of,

312
00:16:50.000 --> 00:16:52.380
are we thinking of it too much, too modularly?

313
00:16:52.380 --> 00:16:54.380
And, like, maybe there's a vertical slice of this

314
00:16:54.380 --> 00:16:56.920
where we get, like, something can go shipped

315
00:16:56.940 --> 00:17:00.800
in production quickly in two weeks

316
00:17:00.800 --> 00:17:02.860
and we get instant value from that.

317
00:17:03.260 --> 00:17:04.839
And then we kind of do that, then we add to it

318
00:17:04.839 --> 00:17:06.060
and add to it and so forth.

319
00:17:08.440 --> 00:17:11.940
Help me out with something that's not tracking for me.

320
00:17:12.380 --> 00:17:14.640
When I look at this, I see two to three days,

321
00:17:14.700 --> 00:17:17.480
one day, one to two days, and it kind of feels,

322
00:17:18.099 --> 00:17:20.540
it gives the impression that this is all kind of trivial.

323
00:17:20.540 --> 00:17:26.500
Like, so what, help me, help me with that.

324
00:17:27.560 --> 00:17:29.600
So there's this new thing called AI

325
00:17:29.600 --> 00:17:31.940
that we've been leveraging as well.

326
00:17:32.820 --> 00:17:36.560
And we, so part of what we've done is,

327
00:17:37.040 --> 00:17:39.640
and I think we're doing this in a kind of a unique way

328
00:17:39.640 --> 00:17:41.980
is we've like, we've taken the two extremes

329
00:17:41.980 --> 00:17:43.420
of this product process.

330
00:17:43.620 --> 00:17:46.020
So like this part that you've been teaching us

331
00:17:46.020 --> 00:17:47.080
is the human piece.

332
00:17:47.100 --> 00:17:49.820
It's like, we nicknamed it the founder therapy.

333
00:17:49.820 --> 00:17:53.100
Like you even did it now to me,

334
00:17:53.220 --> 00:17:55.020
and you're like, what's really bothering you, Bruce?

335
00:17:55.360 --> 00:17:56.780
Like, tell me more about that.

336
00:17:57.680 --> 00:17:59.560
And I just like sit on the couch

337
00:17:59.560 --> 00:18:01.880
and you tell, you know, that's kind of the mode.

338
00:18:02.160 --> 00:18:03.620
We do this with clients all the time

339
00:18:03.620 --> 00:18:05.500
because they get frustrated with something.

340
00:18:05.620 --> 00:18:07.080
We go like, okay, well, what's really bothering you?

341
00:18:07.120 --> 00:18:08.300
Like, can you tell us more about that?

342
00:18:08.620 --> 00:18:08.920
Why?

343
00:18:09.840 --> 00:18:12.080
So that's sort of, there's this human piece of it,

344
00:18:12.100 --> 00:18:15.620
which is very real and we have to untangle this chaos

345
00:18:15.820 --> 00:18:17.080
and bring it into some clarity.

346
00:18:17.160 --> 00:18:19.260
And this whole shaping, framing process

347
00:18:19.260 --> 00:18:20.680
we've been doing with you has been phenomenal

348
00:18:20.980 --> 00:18:22.960
to get things concrete.

349
00:18:23.020 --> 00:18:25.100
Cause then it turns it into kind of translate it.

350
00:18:25.100 --> 00:18:26.120
Once we've got it concrete,

351
00:18:26.120 --> 00:18:28.120
we can get a really clear plan.

352
00:18:28.120 --> 00:18:30.420
And then we've been built working to build

353
00:18:30.860 --> 00:18:33.720
like a project requirement doc that is AI friendly.

354
00:18:34.100 --> 00:18:37.060
And then using something like cloud code to like-

355
00:18:37.060 --> 00:18:37.060


356
00:18:37.680 --> 00:18:38.260
Move these things.

357
00:18:38.320 --> 00:18:40.700
And one thing cloud is phenomenal at,

358
00:18:41.480 --> 00:18:44.420
but refactoring code from one thing to another,

359
00:18:44.480 --> 00:18:45.580
very, very reliable.

360
00:18:45.780 --> 00:18:48.100
So we kind of had this challenge like,

361
00:18:48.100 --> 00:18:51.300
this massive project's been looming above us,

362
00:18:51.360 --> 00:18:55.340
which like this could be a four to six month endeavor

363
00:18:55.360 --> 00:18:57.480
to go and like redo this entire thing.

364
00:18:57.840 --> 00:18:59.900
So yeah, but what if it was like two weeks?

365
00:18:59.980 --> 00:19:01.260
Like what if we just did it in two weeks

366
00:19:01.260 --> 00:19:04.060
and we got a version of it

367
00:19:04.180 --> 00:19:05.940
where we got super clear on the requirements

368
00:19:05.940 --> 00:19:06.980
like we're doing here.

369
00:19:06.980 --> 00:19:10.100
And then we did the super precise,

370
00:19:10.180 --> 00:19:12.460
like refactoring with AI and then cleaned some pieces up.

371
00:19:12.460 --> 00:19:13.720
We probably could get like a,

372
00:19:14.360 --> 00:19:17.900
at least a early release version that's maybe not bug free,

373
00:19:17.900 --> 00:19:22.200
but it's a working version we can start to build on top of.

374
00:19:22.220 --> 00:19:22.560
Totally.

375
00:19:22.800 --> 00:19:24.680
In two weeks, kind of as a challenge to us.

376
00:19:24.680 --> 00:19:28.560
So that's why the estimates are ridiculously small.

377
00:19:28.820 --> 00:19:33.040
And we do have a functional production code in Flutter,

378
00:19:33.260 --> 00:19:34.480
which we can use as a reference.

379
00:19:34.700 --> 00:19:35.900
So we're just, we would be moving,

380
00:19:36.700 --> 00:19:39.240
like instead of the Flutter UI to read out of the database,

381
00:19:39.420 --> 00:19:41.120
we would be using JavaScript to read out

382
00:19:41.120 --> 00:19:42.040
of the same database.

383
00:19:42.280 --> 00:19:45.200
It's very, very much the same

384
00:19:45.200 --> 00:19:48.080
that we could pull from one feature to the other.

385
00:19:49.580 --> 00:19:52.640
We're not having to think through UIs and experience.

386
00:19:52.800 --> 00:19:53.740
And one of the requirements,

387
00:19:53.900 --> 00:19:55.680
one of the things we're not doing, we listed out,

388
00:19:55.740 --> 00:19:57.260
was we're not changing the UI.

389
00:19:57.980 --> 00:19:58.920
No behavior change.

390
00:20:00.000 --> 00:20:07.040
Yeah, just keep it as, you know, so that's kind of where we got stuck.

391
00:20:09.040 --> 00:20:11.460
And Lucha and Jonathan and I were the ones working on it.

392
00:20:11.480 --> 00:20:13.680
I don't know if you guys want to weigh in on your thoughts.

393
00:20:14.120 --> 00:20:17.920
I know we talked about just making this a project and calling it done and then chopping

394
00:20:17.920 --> 00:20:18.860
it into something else.

395
00:20:21.180 --> 00:20:27.580
And part of it is because it wasn't super clear, we kind of have a scale, like people

396
00:20:27.580 --> 00:20:29.520
were like, we start to think like, oh, we're finished this step.

397
00:20:29.560 --> 00:20:33.720
And then even internally, we'll say, you know, this feels about 40% shaped.

398
00:20:33.860 --> 00:20:38.000
This feels about 30 is like, actually not, we're not in the 80 90% mode here.

399
00:20:38.180 --> 00:20:40.880
This is maybe 60% clear.

400
00:20:41.200 --> 00:20:45.040
And so because it wasn't super clear, it just got put on the back burner and we've done

401
00:20:45.040 --> 00:20:46.260
other client projects.

402
00:20:46.980 --> 00:20:51.500
So this, this, we opened it up, like maybe six weeks ago, did a week of work on it.

403
00:20:51.500 --> 00:20:55.520
And then it kind of just sat there and we just sort of came back to coming back to it

404
00:20:55.520 --> 00:20:55.820
now.

405
00:20:56.740 --> 00:20:56.960
Yeah.

406
00:20:57.920 --> 00:20:58.740
But yeah, so.

407
00:20:59.840 --> 00:21:03.320
OK, let me ask you a question here.

408
00:21:03.900 --> 00:21:05.960
So what is what is plan A?

409
00:21:07.040 --> 00:21:12.980
In terms of if you don't, if we didn't have this session today, what's your what is

410
00:21:12.980 --> 00:21:14.200
here and what's your approach?

411
00:21:20.820 --> 00:21:21.940
We could start.

412
00:21:23.340 --> 00:21:23.860
So.

413
00:21:24.940 --> 00:21:30.220
Well, the plan A is we kind of we've been doing plan A, which is avoid the problem and

414
00:21:30.220 --> 00:21:33.160
just do other work instead, which is what we've been doing.

415
00:21:34.020 --> 00:21:39.160
OK, so OK, but let's say let's say we've we've we've at least cracked the seal of

416
00:21:39.160 --> 00:21:39.960
like, you know what I mean?

417
00:21:39.960 --> 00:21:44.080
Like we've we've we've broken the seal and we are like in this in this refactoring.

418
00:21:44.520 --> 00:21:44.840
Yeah.

419
00:21:50.160 --> 00:21:54.640
OK, I got I got to ask you one other thing, actually, because I'm still not totally

420
00:21:54.640 --> 00:21:55.780
clear on the framing piece.

421
00:21:56.260 --> 00:22:04.760
So what I'm trying to do, I'm I read this, but this this isn't really helping me to

422
00:22:05.820 --> 00:22:07.840
understand why anything needs to change.

423
00:22:09.120 --> 00:22:12.860
This to me is a little bit more around these are things we don't like and these are

424
00:22:12.860 --> 00:22:13.480
things that we want.

425
00:22:15.420 --> 00:22:21.260
When when when when I started to question you about this and I started to get this

426
00:22:21.260 --> 00:22:25.100
story of like we don't know where to put the new feature, we've got stuff we want to

427
00:22:25.100 --> 00:22:29.580
do, like we could put it into V2, but then it breaks V1 and it's like it's holding us

428
00:22:29.580 --> 00:22:31.200
back from this other stuff we want to do.

429
00:22:31.420 --> 00:22:35.340
So we're going to split the experience into these two different camps and then we're

430
00:22:35.340 --> 00:22:38.240
going to have a clear place to build new features without breaking the other stuff.

431
00:22:38.900 --> 00:22:42.100
Like this is a frame for me.

432
00:22:42.100 --> 00:22:48.380
This is something where I can understand why you're choosing to spend time on this.

433
00:22:48.520 --> 00:22:53.760
Do you know what I mean? Because like not having an answer for the for the new things

434
00:22:53.760 --> 00:22:57.800
you want to do and like every time feeling like, oh, you know, like that's something

435
00:22:57.800 --> 00:22:59.600
that at least kind of resonates with me.

436
00:22:59.840 --> 00:23:05.240
What I don't understand is when when you kind of explained how that was sort of the

437
00:23:05.240 --> 00:23:09.980
step one of like, first, we're going to have two separate camps, right?

438
00:23:09.980 --> 00:23:12.080
We're going to have a separate V1 and V2.

439
00:23:12.780 --> 00:23:14.240
We're going to do the code split.

440
00:23:16.920 --> 00:23:21.720
How does what happens if you don't fix these things?

441
00:23:21.820 --> 00:23:23.760
Is that some other problem?

442
00:23:25.220 --> 00:23:29.880
Are you already out of the woods that like now that we've done the code split, if if

443
00:23:29.880 --> 00:23:34.500
we wanted to build the new feature, now we know where it goes and everything is fine,

444
00:23:34.500 --> 00:23:36.780
like what so like what is this stuff about?

445
00:23:36.780 --> 00:23:43.880
I again, back to the house analogy, like we have like built on this separate house on

446
00:23:43.880 --> 00:23:44.640
the same property.

447
00:23:45.120 --> 00:23:48.740
Now we've kind of said, cool, we kind of have a big open.

448
00:23:49.060 --> 00:23:52.180
Let's say we're going to add a second story to the house and that's where this new

449
00:23:52.180 --> 00:23:55.480
thing's going to go. Only if we at this point, there's no rooms that are finished.

450
00:23:55.580 --> 00:23:57.220
We couldn't send anybody into that yet.

451
00:23:57.440 --> 00:24:03.900
So we couldn't add a new feature to this group's piece because right now the entire

452
00:24:03.900 --> 00:24:08.100
application is still sitting on a Flutter app.

453
00:24:08.260 --> 00:24:13.380
And so the V2 piece doesn't V1, V2 doesn't actually affect the current app that's out

454
00:24:14.700 --> 00:24:19.400
there. I don't know if that makes sense, but there's there's kind of there's two

455
00:24:19.580 --> 00:24:26.580
different actually two different apps running, like say two different houses and only in

456
00:24:26.580 --> 00:24:31.120
the one app, the JavaScript side, did we add the V1 and V2 split?

457
00:24:31.120 --> 00:24:34.380
So it's great if we want to add new stuff, but we have to get it to a point that's

458
00:24:34.680 --> 00:24:37.860
that has enough of the features to where we could start to use that.

459
00:24:38.660 --> 00:24:39.560
OK, OK, hold on.

460
00:24:39.720 --> 00:24:43.540
So let's let's I need the concreteness in order to to to.

461
00:24:43.960 --> 00:24:44.800
So let's spell this out.

462
00:24:44.940 --> 00:24:47.040
So this is this is the current world.

463
00:24:49.340 --> 00:24:53.960
And this is going to be we'll do this as quick as possible because this is review for

464
00:24:53.960 --> 00:24:59.880
the rest of you guys, but this is to catch me up, can you describe to me in more detail?

465
00:25:00.000 --> 00:25:03.200
The architecture of what you actually have in terms of different apps.

466
00:25:03.800 --> 00:25:09.180
So there's, there's, there's the V1 V2 is about us is about a, is, is only

467
00:25:09.180 --> 00:25:11.400
about one app and there's multiple apps.

468
00:25:14.140 --> 00:25:18.440
Yeah, there's, um, I'd like, I know we've drew, I thought we drew this

469
00:25:18.440 --> 00:25:19.740
somewhere and I'm trying to find it.

470
00:25:19.820 --> 00:25:24.140
So you don't have to do it again, but, uh, yeah, so there's basically like,

471
00:25:24.140 --> 00:25:29.540
um, you can go, there's a JavaScript CMS app here.

472
00:25:30.220 --> 00:25:34.760
Um, that is, um, so we use it as a, do you call that something?

473
00:25:34.880 --> 00:25:35.700
Do you have a name for that?

474
00:25:35.780 --> 00:25:38.240
We have, I think that's, I mean, let me just call it that.

475
00:25:39.180 --> 00:25:40.060
Um, okay.

476
00:25:40.500 --> 00:25:43.060
So we just, it's one's JavaScript, the other is Flutter.

477
00:25:43.260 --> 00:25:44.600
So that's how we've split it.

478
00:25:45.080 --> 00:25:50.620
Um, this, the, what is the, what is, okay.

479
00:25:50.620 --> 00:25:53.300
So you said you have a JavaScript CMS app.

480
00:25:54.300 --> 00:25:56.840
Um, this is a content management system.

481
00:25:57.780 --> 00:26:00.760
Uh, yeah, it, it, it, the legacy though.

482
00:26:00.860 --> 00:26:04.240
So the 1.0 clients would use the front end of this to be more

483
00:26:04.240 --> 00:26:05.400
like a Netflix experience.

484
00:26:05.780 --> 00:26:10.020
And we started to build groups and other experiences into this.

485
00:26:10.300 --> 00:26:15.240
Um, the backstory is that we then figured out that, um, we

486
00:26:15.560 --> 00:26:17.640
needed iOS and Android apps.

487
00:26:17.640 --> 00:26:21.500
So we switched to Flutter for Android and iOS, and then we realized

488
00:26:21.500 --> 00:26:23.140
we could just build the web app.

489
00:26:23.700 --> 00:26:28.220
When we were very resource, um, like we're tight on resources.

490
00:26:28.220 --> 00:26:31.920
We just said, let's just make the Flutter web app, the web

491
00:26:31.920 --> 00:26:33.460
domain that the clients see.

492
00:26:33.860 --> 00:26:37.600
So they have like a web Android and iOS apps that come off

493
00:26:37.600 --> 00:26:38.800
of this Flutter code base.

494
00:26:39.760 --> 00:26:41.480
Um, uh, okay.

495
00:26:43.100 --> 00:26:45.760
Um, so this is a single code base.

496
00:26:45.780 --> 00:26:47.320
That's giving you all three apps.

497
00:26:47.640 --> 00:26:48.040
Yeah.

498
00:26:49.200 --> 00:26:53.440
And, um, so do you, do you, do you, in your mind, is this one Flutter app?

499
00:26:53.440 --> 00:26:56.200
It just happens to compile in these three different ways.

500
00:26:56.200 --> 00:26:56.720
Yes.

501
00:26:56.720 --> 00:26:57.900
That's the same code base.

502
00:26:58.080 --> 00:26:58.340
Yeah.

503
00:26:58.340 --> 00:26:58.860
Got it.

504
00:26:58.940 --> 00:26:59.460
Okay.

505
00:27:00.020 --> 00:27:02.320
And you built groups here.

506
00:27:03.700 --> 00:27:09.420
Um, we built like a, yeah, we built groups in sort of like a, call it V1 groups

507
00:27:09.460 --> 00:27:16.920
there, and then we built V2 groups on the other one and the app is really.

508
00:27:17.560 --> 00:27:19.160
Uh, the entire thing is a group.

509
00:27:19.240 --> 00:27:21.220
So that's kind of the main thing.

510
00:27:21.460 --> 00:27:27.520
It is, uh, uh, this is, this is a, this is a, this is like a key feature.

511
00:27:27.520 --> 00:27:29.940
This is like, it's the feature.

512
00:27:30.560 --> 00:27:34.880
So like you would, it's kind of like if Basecamp had projects, like

513
00:27:34.880 --> 00:27:38.200
it's, it's, you just, it's the whole thing is sort of contained in a project.

514
00:27:38.860 --> 00:27:42.640
Um, so this is like architecturally architecturally, many other things

515
00:27:42.640 --> 00:27:43.880
are dependent on this thing.

516
00:27:45.220 --> 00:27:45.660
Yes.

517
00:27:45.660 --> 00:27:49.020
And all features kind of are enclosed inside of a group.

518
00:27:51.500 --> 00:27:51.600
Yeah.

519
00:27:52.880 --> 00:27:58.780
Um, and so because of this, we basically started adding pieces in the

520
00:27:58.780 --> 00:28:03.820
JavaScript CMS that would then control the V2 groups, like, uh, would

521
00:28:03.820 --> 00:28:05.560
update things, would, would change.

522
00:28:05.980 --> 00:28:10.300
So we have basically, so that's why you're kind of in, because we needed

523
00:28:10.300 --> 00:28:14.280
to have one place that the clients go to upload content and, um,

524
00:28:15.660 --> 00:28:19.760
at the core of it, like it might be helpful for clarity, like in the

525
00:28:19.760 --> 00:28:24.240
JavaScript CMS side, there's like the backend, like the admin side and

526
00:28:24.240 --> 00:28:30.960
the V1, like end users, we're seeing this just because for us, it's

527
00:28:30.960 --> 00:28:32.440
clear, it may be like helpful.

528
00:28:33.120 --> 00:28:34.400
So, so I say that again.

529
00:28:34.400 --> 00:28:40.980
Um, uh, so in the, so, so in the, um, uh, JavaScript CMS app, there is a backend

530
00:28:40.980 --> 00:28:46.780
admin, and that's, that's not part of the Flutter code base.

531
00:28:46.980 --> 00:28:49.320
Flutter is relying on the JS CMS app for the,

532
00:28:49.820 --> 00:28:52.540
it's like that thing that you wrote pieces that control V2 groups,

533
00:28:52.560 --> 00:28:54.260
part of like the, the backend admin.

534
00:28:55.060 --> 00:28:57.500
Ah, this is, this is part of the backend admin.

535
00:28:58.420 --> 00:28:58.740
Yeah.

536
00:28:58.940 --> 00:28:59.180
Yeah.

537
00:28:59.560 --> 00:29:00.000
Got it.

538
00:29:00.000 --> 00:29:02.920
And then there's like the front end there's V1 and V2.

539
00:29:04.380 --> 00:29:04.940
Yeah.

540
00:29:05.060 --> 00:29:08.940
Like the actual end users, they, they would go to V1 or V2.

541
00:29:09.660 --> 00:29:15.680
Um, and so, um, JS CMS app has a front end.

542
00:29:16.580 --> 00:29:17.060
Yeah.

543
00:29:17.480 --> 00:29:17.860
Yeah.

544
00:29:18.420 --> 00:29:21.860
And, um, uh, thanks for being patient with me.

545
00:29:21.900 --> 00:29:27.400
Front end, what you said, V1 and V2, like what is, what, what, what is this,

546
00:29:27.580 --> 00:29:29.380
what, this is, what does it mean?

547
00:29:29.460 --> 00:29:31.420
V1 or V2 in relation to this front end?

548
00:29:33.300 --> 00:29:37.000
That, so the, this is what the new piece here is that we split this to where

549
00:29:37.000 --> 00:29:41.940
there is now a V1 and a V2 front end before there was just kind of V1 front end.

550
00:29:43.000 --> 00:29:43.140
Okay.

551
00:29:43.880 --> 00:29:48.720
Um, so let's just say, um, uh, so I'm actually going to draw

552
00:29:48.960 --> 00:29:52.080
this as world before code split.

553
00:29:52.620 --> 00:29:53.160
Okay.

554
00:29:53.640 --> 00:29:54.180
Okay.

555
00:29:56.340 --> 00:29:59.980
Um, there was a V I'm.

556
00:30:00.000 --> 00:30:04.240
to recognize the pattern. We're unpacking a bunch of stuff that's in your guys' heads, I think.

557
00:30:07.480 --> 00:30:14.020
So there was a v1 of the frontend that was already there in the world before the code split, yes?

558
00:30:15.420 --> 00:30:20.840
Yes. It was just called frontend, though. It obviously didn't, it was just, yeah.

559
00:30:21.100 --> 00:30:26.620
Okay. And this frontend, was this not used because you were actually pointing customers

560
00:30:26.620 --> 00:30:29.860
to this, or were people using both?

561
00:30:32.800 --> 00:30:39.480
Clients were one or the other, they were never both. So some clients were only using the left

562
00:30:39.480 --> 00:30:46.320
side of that column, and all new clients really were on the right side, so the new thing we were

563
00:30:51.200 --> 00:30:52.400
selling. Okay.

564
00:30:52.600 --> 00:30:55.280
Don't worry, this is the simplified version still.

565
00:30:55.280 --> 00:30:59.920
I'm with you, we're doing all right. Yeah, but we're at least getting closer

566
00:30:59.920 --> 00:31:09.260
to the point where we can start to talk about it. So in this, okay,

567
00:31:11.140 --> 00:31:21.480
in this world, before you did the, okay, so can you just describe to me in more concreteness

568
00:31:21.480 --> 00:31:26.740
what motivated, what did splitting the v1 and the v2, what was that supposed to allow you to do in

569
00:31:26.740 --> 00:31:32.320
terms of the frontend here? So we have this groups v1, which is,

570
00:31:32.580 --> 00:31:39.900
in all sense, on the left side, depreciate, like we don't use that, we don't have active users using

571
00:31:40.700 --> 00:31:49.560
it. So because it was so, it hasn't been touched for years, so in fact, pretty much everything on

572
00:31:50.180 --> 00:31:56.680
JavaScript CMS, we hadn't touched for probably over a year until end of last year. So once we

573
00:31:57.480 --> 00:32:01.240
started adding pieces, and we kind of committed to like, okay, we are actually going to keep this

574
00:32:01.240 --> 00:32:07.080
JavaScript thing, this is, we kind of, we didn't know getting into, when we got touched Flutter,

575
00:32:07.580 --> 00:32:14.600
that Flutter on web still leaves a lot to be desired, and is not as robust as a JavaScript,

576
00:32:14.600 --> 00:32:20.480
as far as like, we happen to be dealing with a lot of large video files, and that by itself is

577
00:32:20.480 --> 00:32:26.500
just a pain to work with in Flutter. Whereas JavaScript, putting stuff in S3, putting, you

578
00:32:26.500 --> 00:32:30.900
know, there's just, it's doing a lot of things to it, it's transcoding videos, it's, there's a lot

579
00:32:30.900 --> 00:32:37.700
of heavy lifting that has to be done. So that really, we basically realized we can't, we don't

580
00:32:37.700 --> 00:32:44.200
want to get away from that. So then we thought like, we could have it to where, you know, the

581
00:32:44.200 --> 00:32:50.520
JavaScript CMS and the JavaScript front end for that was all one app, and then you had these two

582
00:32:50.520 --> 00:32:58.000
other things for Android and iOS on Flutter, that seemed fine. So you, do I understand, was the idea

583
00:32:58.000 --> 00:33:03.120
to migrate the web away from the Flutter code base? Yeah.

584
00:33:05.560 --> 00:33:12.700
Entirely. Okay. And there's all sorts of like, if you want to go down, like the things we had is,

585
00:33:12.900 --> 00:33:18.920
because we, because we didn't have this, this connection, we were starting to add like a

586
00:33:18.920 --> 00:33:23.380
settings page in the groups of the Flutter app to try to let people manage certain features.

587
00:33:23.380 --> 00:33:29.060
So it just, it kind of went, you know, a little bit,

588
00:33:32.140 --> 00:33:35.780
we were, we were basically building around it instead of just dealing with the real

589
00:33:35.820 --> 00:33:40.720
problem. Okay. More precisely, Jonathan was dealing with it.

590
00:33:40.720 --> 00:33:49.540
I, let me, let me capture one thing. So, so in this, in this world,

591
00:33:51.040 --> 00:33:56.780
the, the web, the web version of Flutter is breaking down in different ways.

592
00:33:56.860 --> 00:34:08.960
One I heard was it had something to do with video? Yeah, it's, yes, you could say that.

593
00:34:10.000 --> 00:34:16.199
It's not bad. It's more just the processing and the management of something like a course or

594
00:34:17.560 --> 00:34:22.580
uploading large, you know, five to 10 gigabyte video files and having it process.

595
00:34:24.880 --> 00:34:29.920
It's not that we couldn't do it, you know, anything's possible. Yes. If you put enough

596
00:34:29.920 --> 00:34:35.780
time and energy into it, it's just, we already have it working and it's working well at scale.

597
00:34:36.520 --> 00:34:41.760
Here's an important detail is like, it's already working. The processing of the large video files

598
00:34:41.760 --> 00:34:50.100
is already working over on the JS CMS app. Okay. So let me capture one other data points. That's

599
00:34:50.100 --> 00:34:55.320
interesting here. And why, like, why even keep this silly thing on the left? We have close to

600
00:34:55.320 --> 00:34:59.980
like half a million active users on the left side and closer to 20,000.

601
00:35:00.000 --> 00:35:01.800
I was in monthly active users on the right.

602
00:35:04.300 --> 00:35:07.800
So these are all the new paying clients on the right, but our legacy

603
00:35:07.800 --> 00:35:09.400
clients have been using it for so long.

604
00:35:09.520 --> 00:35:14.180
It's kind of got, it's, it's got the credibility of that thing at scale.

605
00:35:16.420 --> 00:35:17.700
So this is great.

606
00:35:17.700 --> 00:35:20.940
It's a different experience because the video is important on the flutter side.

607
00:35:20.960 --> 00:35:22.420
It's just not the main thing.

608
00:35:22.520 --> 00:35:25.320
Whereas on the left side, it's it think of it like Netflix.

609
00:35:25.380 --> 00:35:28.340
It's like the video is the thing, like this, what we're trying to deliver.

610
00:35:28.340 --> 00:35:30.940
Uh, content that way.

611
00:35:31.140 --> 00:35:32.140
There's still courses.

612
00:35:32.300 --> 00:35:35.980
There's still video on the right side, but it's much more like a Facebook

613
00:35:35.980 --> 00:35:40.620
group or something where it's more social, uh, driven, um, so there's

614
00:35:40.620 --> 00:35:41.960
shorter clips, shorter updates.

615
00:35:42.400 --> 00:35:46.980
You know, it's not, uh, me sitting on the couch watching TV, which

616
00:35:46.980 --> 00:35:48.080
is what the other ones are.

617
00:35:48.480 --> 00:35:49.000
Okay.

618
00:35:49.220 --> 00:35:50.420
They're kind of a different experience.

619
00:35:51.000 --> 00:35:54.620
So I'm, um, maybe I'm slow.

620
00:35:55.020 --> 00:35:57.160
What I'm, I'm going to play this back.

621
00:35:57.160 --> 00:36:01.020
I'm hearing we have this, we have this legacy app.

622
00:36:01.480 --> 00:36:04.300
It's as this old groups V1 code.

623
00:36:04.300 --> 00:36:05.080
That's deprecated.

624
00:36:05.260 --> 00:36:06.960
We haven't touched it in more than a year.

625
00:36:07.060 --> 00:36:08.460
So it's gross in different ways.

626
00:36:09.700 --> 00:36:12.560
Um, at the same time, you've got like 500 K active users.

627
00:36:12.860 --> 00:36:15.280
At some point you made a decision.

628
00:36:15.960 --> 00:36:18.740
We are, we, we want to be selling this new thing.

629
00:36:20.340 --> 00:36:22.040
So you do the new thing.

630
00:36:22.080 --> 00:36:24.360
You will now have 20 K active users.

631
00:36:24.360 --> 00:36:29.280
Are you still onboarding new people over here or is this only old customers?

632
00:36:29.800 --> 00:36:29.800


633
00:36:29.820 --> 00:36:33.140
It's just, it's two customers doing all of that.

634
00:36:33.140 --> 00:36:33.900
It's yeah.

635
00:36:33.900 --> 00:36:34.440
Okay.

636
00:36:35.920 --> 00:36:45.980
Um, uh, has something changed in your strategy that like, uh, are you still

637
00:36:46.080 --> 00:36:51.540
intending, is this still the thing you want to grow it's but, but, but, but,

638
00:36:51.540 --> 00:36:54.600
but the problem is the, um, flutter on the web isn't, isn't

639
00:36:54.600 --> 00:36:56.200
doing what you needed to do.

640
00:36:56.920 --> 00:36:57.400
Yeah.

641
00:36:57.980 --> 00:37:02.780
I think if I had to draw, like, this was always the, the goal was this like

642
00:37:03.900 --> 00:37:09.480
Facebook groups, clone the vision from 2020 when we started this, this was,

643
00:37:09.680 --> 00:37:15.580
this was the vision, um, we started building over here and it was taking so

644
00:37:15.580 --> 00:37:18.900
long and then we realized if we're going to do this right, like we got to get.

645
00:37:18.900 --> 00:37:21.180
Uh, it has to be on mobile.

646
00:37:21.420 --> 00:37:25.340
So that immediately, you know, we could, then we kind of explored react and we

647
00:37:25.340 --> 00:37:29.340
also had graph native and we explored some things that could be closer to it.

648
00:37:30.080 --> 00:37:33.760
Um, we took a worst detour is we actually went to like flutter flow,

649
00:37:34.480 --> 00:37:36.140
which was a low code builder.

650
00:37:36.880 --> 00:37:39.560
Um, and part of it is like, we had some clients that were like, Hey, can you

651
00:37:39.560 --> 00:37:40.800
build this for us in two months?

652
00:37:41.100 --> 00:37:42.620
And of course we said yes.

653
00:37:42.780 --> 00:37:44.480
And then we just dove into it.

654
00:37:44.480 --> 00:37:50.020
Um, and so, uh, that created a number, a bunch of technical debts.

655
00:37:50.160 --> 00:37:54.560
So we kind of were able to get to sort of the experience here a lot sooner.

656
00:37:55.480 --> 00:37:59.640
Uh, but now we're like, now we're looking back and we're like, okay, this is great.

657
00:38:00.000 --> 00:38:04.640
Think it is almost like we, we did like this very elaborate prototype.

658
00:38:05.120 --> 00:38:09.620
Um, if we're going to keep building this, uh, you know, the tribe social by

659
00:38:09.620 --> 00:38:12.420
itself is like a profitable product.

660
00:38:12.420 --> 00:38:18.820
And so now there's no, um, it's not like we have to go close 10 new clients next

661
00:38:18.820 --> 00:38:20.560
month to, to keep everything moving.

662
00:38:20.560 --> 00:38:22.780
It's just like, okay, let's just get this.

663
00:38:23.080 --> 00:38:27.580
If, if, if this is an investment we've put years into our, uh, of our lives into

664
00:38:27.580 --> 00:38:30.640
it, like let's make it, let's keep building it for the, for the next 10 years.

665
00:38:30.640 --> 00:38:33.540
Like we're not gonna, we're four or five years into it.

666
00:38:33.540 --> 00:38:35.540
We're probably going to be here again in five years.

667
00:38:35.860 --> 00:38:37.660
So thinking a little bit more long-term.

668
00:38:38.380 --> 00:38:41.800
Um, so we'd made some like short-term decisions, which had consequences.

669
00:38:41.800 --> 00:38:45.080
Now we're sort of dealing with that and going back and cleaning it up.

670
00:38:46.140 --> 00:38:49.660
Um, and we really wanted to sell.

671
00:38:50.740 --> 00:38:55.020
And for me, I'll say like the vision was to have more of the Facebook connection,

672
00:38:55.100 --> 00:38:58.060
building community, building, learning and stuff happening.

673
00:38:58.600 --> 00:39:03.700
Um, because the, this thing on the left is very much the old school

674
00:39:03.760 --> 00:39:11.120
version of e-learning, you know, courses and, um, uh, you know, more of a

675
00:39:11.120 --> 00:39:15.660
Flix type, Kajabi, Thinkific, it's kind of the old model, whereas there's

676
00:39:15.660 --> 00:39:19.960
kind of a new thing, think more like school or like these communities that

677
00:39:19.960 --> 00:39:23.740
are coming up where it's more about connection and being on live calls

678
00:39:23.740 --> 00:39:28.260
like this and learning and mentorship and stuff, so that's where we

679
00:39:28.260 --> 00:39:31.220
started to, um, get the vision for that.

680
00:39:31.280 --> 00:39:36.520
So it was able to kind of do this on a relatively low quote, I'll put

681
00:39:36.520 --> 00:39:38.100
in air quotes, low cost, right.

682
00:39:38.100 --> 00:39:39.900
Because we're literally having to do it again.

683
00:39:39.900 --> 00:39:43.160
So it's not, it wasn't low cost going, going the Flutter flow route.

684
00:39:43.280 --> 00:39:47.220
We did make the, at least moved ourselves off of Flutter flow earlier this year.

685
00:39:47.320 --> 00:39:51.040
And we got ourselves just into a nice cleaner Flutter project where you can

686
00:39:51.040 --> 00:39:52.460
have a lot more control over stuff.

687
00:39:53.700 --> 00:39:56.540
And, um, so we can still build on it.

688
00:39:56.600 --> 00:39:57.860
We can still sell in this mode.

689
00:39:57.880 --> 00:39:59.320
It's not, it's not bad.

690
00:39:59.320 --> 00:39:59.880
It's not bad.

691
00:40:00.440 --> 00:40:05.940
It's just like, now we're not the same people we were when, Bruce is not the same person

692
00:40:05.940 --> 00:40:07.960
he was when we started this process.

693
00:40:08.120 --> 00:40:10.020
And now we're thinking a little more deeply about it.

694
00:40:10.200 --> 00:40:11.660
We have these tools like we're talking about here.

695
00:40:11.700 --> 00:40:14.760
So we thought, let's take these new tools and our new approach and kind of deal with

696
00:40:14.920 --> 00:40:22.160
an old problem where we made bad decisions in 2022 and 2023 on architectural.

697
00:40:24.940 --> 00:40:29.320
And there was a lot of discussion of like, which way do we go with this stuff back then?

698
00:40:29.320 --> 00:40:32.240
But we at some point, we just had this, these deadlines we have to hit.

699
00:40:32.360 --> 00:40:34.720
So we just had to make stuff work at the time.

700
00:40:36.100 --> 00:40:40.320
So if we were taking a step back, let's build it right, kind of set it up now, not trying

701
00:40:40.320 --> 00:40:45.540
to just, you know, I would say like, when we had to make these decisions, we were not

702
00:40:45.540 --> 00:40:46.740
profitable at that point.

703
00:40:47.260 --> 00:40:49.120
So this helped us get to profitability.

704
00:40:49.340 --> 00:40:51.160
And now we have a little bit more money.

705
00:40:51.700 --> 00:40:51.900
So.

706
00:40:52.800 --> 00:40:53.160
Totally.

707
00:40:53.160 --> 00:40:53.160


708
00:40:55.640 --> 00:40:56.120
Okay.

709
00:40:57.540 --> 00:41:00.480
I feel like I got the real frame around this now.

710
00:41:00.640 --> 00:41:02.620
You know, the framing isn't around the code split.

711
00:41:04.520 --> 00:41:11.600
No, this is the work of getting clear around like, what are we trying to do and what's

712
00:41:11.600 --> 00:41:13.560
the business value and how do we know when we're done?

713
00:41:14.160 --> 00:41:18.740
Because I just don't know how to interpret these things without a frame, you know?

714
00:41:18.740 --> 00:41:31.540
So, so, so what I'm getting, what I, and I see these things are more about the solution.

715
00:41:35.860 --> 00:41:36.820
I mean, this is all fine.

716
00:41:36.900 --> 00:41:38.240
It's not that this isn't right.

717
00:41:38.240 --> 00:41:51.380
It's just that like, the big picture was still implicit, which is like, yeah, got it.

718
00:41:51.620 --> 00:41:51.620


719
00:41:52.200 --> 00:41:52.200


720
00:41:53.700 --> 00:41:55.380
So, okay.

721
00:41:57.080 --> 00:42:00.700
There is, there is, groups is here.

722
00:42:04.020 --> 00:42:08.240
These are main feature areas in the existing Flutter app.

723
00:42:08.300 --> 00:42:08.920
Is that right?

724
00:42:12.360 --> 00:42:12.360


725
00:42:12.640 --> 00:42:25.900
They're kind of, I would say, yeah, it doesn't feel maybe, I'd say they're most, most of

726
00:42:25.900 --> 00:42:26.660
the features, yeah.

727
00:42:26.700 --> 00:42:27.160
That are in there.

728
00:42:27.160 --> 00:42:30.840
I think if we did another pass, we'd probably come up with another two or three pieces.

729
00:42:32.460 --> 00:42:36.560
But one thing we tried to do was like with this one, the whole direct messaging thing,

730
00:42:36.560 --> 00:42:39.400
we only have one client that uses this.

731
00:42:39.820 --> 00:42:44.480
And so in this new model, we can just leave them on V1, like, or they can just be, they

732
00:42:44.480 --> 00:42:45.000
can just stay there.

733
00:42:45.100 --> 00:42:47.180
They don't need to, we need to switch their domain or anything.

734
00:42:48.000 --> 00:42:48.220
Got it.

735
00:42:48.340 --> 00:42:48.720
Okay.

736
00:42:48.720 --> 00:42:50.880
So we, we kind of carved where we could.

737
00:42:51.120 --> 00:42:52.480
That's the only really big feature.

738
00:42:52.520 --> 00:42:55.360
And this is kind of a hairy thing to deal with.

739
00:42:55.360 --> 00:43:00.660
But the other things are pretty, pretty essential.

740
00:43:01.620 --> 00:43:02.900
Just getting people in.

741
00:43:07.220 --> 00:43:07.600
Yeah.

742
00:43:07.680 --> 00:43:08.000
Okay.

743
00:43:13.460 --> 00:43:24.660
How, so the other thing that I'm not fully clear on, we're getting close, is, okay.

744
00:43:25.340 --> 00:43:32.880
So is there, what is the dependency between these two?

745
00:43:33.100 --> 00:43:34.340
Are these truly standalone?

746
00:43:37.020 --> 00:43:43.600
Because there's something here that's a little weird to me that suggests that these are not

747
00:43:43.600 --> 00:43:44.420
truly standalone.

748
00:43:45.720 --> 00:43:46.060
They're not.

749
00:43:46.440 --> 00:43:47.040
Yeah.

750
00:43:47.060 --> 00:43:51.080
So what's the, what's the relationship, what are the dependencies between them?

751
00:43:51.800 --> 00:43:52.880
There's a database here.

752
00:43:52.900 --> 00:43:54.780
That's like our main SQL database.

753
00:43:55.920 --> 00:43:58.260
And then that's where everything lives.

754
00:43:58.300 --> 00:44:00.200
All users live in here.

755
00:44:01.200 --> 00:44:02.220
Groups live in here.

756
00:44:02.340 --> 00:44:03.240
All stuff lives in here.

757
00:44:03.780 --> 00:44:06.240
To make it, no, wait, it's not going to be that easy.

758
00:44:06.480 --> 00:44:10.660
There's also, cause we, you know, it's good when things come in pairs, it's like, there's

759
00:44:10.660 --> 00:44:15.960
also another database here, which is hosted in like Firebase for a wholly, totally different

760
00:44:15.960 --> 00:44:16.640
set of reasons.

761
00:44:16.640 --> 00:44:23.680
And so our goal ultimately would be to kill this two, the two database thing is an absolute

762
00:44:23.720 --> 00:44:24.240
nightmare.

763
00:44:24.600 --> 00:44:26.740
And we've, it is functional right now.

764
00:44:26.840 --> 00:44:28.200
It's not great, but it's functional.

765
00:44:30.300 --> 00:44:36.360
I think that, so, so there's, yeah, so this is where everything sort of lives on the left

766
00:44:36.360 --> 00:44:36.820
side.

767
00:44:40.100 --> 00:44:46.620
There's still some, so we have, for example, like when people create a piece of paper,

768
00:44:46.620 --> 00:44:51.960
a video, the content gets created on the SQL database and then a copy of it gets made in

769
00:44:51.960 --> 00:44:52.600
the other database.

770
00:44:52.760 --> 00:44:56.340
So there's a whole bunch of like extra effort to keep these things in sync.

771
00:44:57.400 --> 00:44:57.800
Oof.

772
00:44:58.800 --> 00:44:59.120
Um, okay.

773
00:44:59.580 --> 00:44:59.980
And that's it.

774
00:45:00.000 --> 00:45:01.800
Just like that's, that's the easy stuff.

775
00:45:01.860 --> 00:45:05.000
The user management and all kinds of stuff is, is rough.

776
00:45:05.580 --> 00:45:09.480
So it, yeah, you can kind of see, feel the pain of, of it a bit.

777
00:45:10.640 --> 00:45:15.160
That's the, that's, that's the first thing I, that's the first thing that, that, um,

778
00:45:15.980 --> 00:45:22.200
that I could definitely flag now as like a real clear, clearly a real problem

779
00:45:22.280 --> 00:45:25.220
is that there's, there's like between

780
00:45:25.280 --> 00:45:26.080
Ryan agrees.

781
00:45:26.180 --> 00:45:28.360
We should not have done the things we know we should have not.

782
00:45:30.820 --> 00:45:32.020
We are aware.

783
00:45:32.680 --> 00:45:32.680


784
00:45:32.680 --> 00:45:34.160
So this is an issue.

785
00:45:35.600 --> 00:45:39.160
Um, uh, uh, I mean, do you want more examples like that?

786
00:45:39.160 --> 00:45:44.240
Cause there's, I want to know, I want to know where, cause here's the thing is,

787
00:45:44.740 --> 00:45:49.560
um, um, the, the questions you, you, you raise some questions around, like,

788
00:45:49.560 --> 00:45:51.060
should we be doing all of this?

789
00:45:51.060 --> 00:45:52.940
Like all, and then releasing it at once.

790
00:45:52.940 --> 00:45:56.620
And can we just do parts of this and are they separate projects or is it one

791
00:45:56.620 --> 00:45:57.100
project?

792
00:45:57.600 --> 00:46:02.540
And, um, I, I can't react to that until we have more information on the table.

793
00:46:02.760 --> 00:46:06.500
And this is the kind of information that starts to get onto the table where we

794
00:46:06.500 --> 00:46:10.020
can really start to talk about the, so what we're doing here is we're, we're

795
00:46:10.020 --> 00:46:13.340
building up all of the knowledge on the, we're, we're putting all the problem

796
00:46:13.340 --> 00:46:14.300
knowledge onto the table.

797
00:46:14.300 --> 00:46:17.480
Cause you see, we're still drawing the old world here, you know?

798
00:46:18.300 --> 00:46:23.080
Um, um, and then the more that we have a very clear picture of the problem, uh,

799
00:46:23.080 --> 00:46:27.220
then we can have some very simple conversations or, oh, we could do this

800
00:46:27.220 --> 00:46:29.400
or we could do that, or we could split this and not do that.

801
00:46:29.480 --> 00:46:30.540
And you know, that kind of a thing.

802
00:46:31.460 --> 00:46:38.260
So, um, I've got, um, uh, um, um, okay.

803
00:46:38.260 --> 00:46:39.640
So I'm going to ask you a stupid question.

804
00:46:40.880 --> 00:46:46.600
What's bad about having these things in, like, how is this biting you?

805
00:46:48.420 --> 00:46:51.440
What's breaking because of this, um, sync issue.

806
00:46:53.620 --> 00:46:58.560
Our efficiency, like, I don't know our speed to put new features out.

807
00:46:58.840 --> 00:47:02.660
It seems overly complicated to always be considering these.

808
00:47:02.980 --> 00:47:05.840
So this is, is, is this adding a bunch of scope every time you want to make

809
00:47:05.840 --> 00:47:07.180
a change or add a new feature?

810
00:47:08.180 --> 00:47:12.940
Um, another example is like, there's two databases, but they're not, they're

811
00:47:12.940 --> 00:47:17.120
not actually like, um, they don't, they don't, um, match.

812
00:47:18.720 --> 00:47:23.480
So, uh, for example, we needed a feed in the Flutter app on the right side.

813
00:47:23.560 --> 00:47:26.980
So there's a, there's a kind of like a community feed, which has a bunch of

814
00:47:27.000 --> 00:47:28.480
requirements and of how that's built.

815
00:47:29.200 --> 00:47:33.560
Um, because we never needed it on the left, we don't even have any of these

816
00:47:33.560 --> 00:47:37.280
posts that have been created on the right side there in Firebase, those

817
00:47:37.280 --> 00:47:38.520
don't even exist on the left.

818
00:47:38.620 --> 00:47:43.860
So when, when you start to say like, well, we really want, um, you know, new

819
00:47:43.860 --> 00:47:46.960
features, we want to improve the feed experience or whatever.

820
00:47:47.200 --> 00:47:50.200
We don't even have the, that data here on the left side.

821
00:47:50.340 --> 00:47:54.500
Now we could like access it, of course, you know, from one to the other, if we

822
00:47:54.500 --> 00:47:58.740
have to, but, um, there's a few things like that, the feeds, the main one, and

823
00:47:58.740 --> 00:48:01.340
it's, it's kind of, it's a pretty important one.

824
00:48:01.960 --> 00:48:02.760
Uh, okay.

825
00:48:03.060 --> 00:48:06.120
Uh, so what I want to do is I want to start to look at this a

826
00:48:06.120 --> 00:48:07.500
little bit in terms of slices.

827
00:48:08.300 --> 00:48:14.500
There's a community feed, um, front end here and, and behind that

828
00:48:14.940 --> 00:48:19.060
are, are posts in the, in the Firebase DB.

829
00:48:19.740 --> 00:48:20.280
Yeah.

830
00:48:20.760 --> 00:48:23.300
So I'm going to get rid of Firebase DB here.

831
00:48:24.660 --> 00:48:29.980
And, um, in this case, I would think that this is, is this, is this an example

832
00:48:29.980 --> 00:48:33.780
of you're in a happy state because you don't have to think about this other

833
00:48:33.780 --> 00:48:34.200
database?

834
00:48:38.140 --> 00:48:39.180
Uh, yes.

835
00:48:39.560 --> 00:48:45.060
Um, so a use case could be like, in some cases, yes, it's, it's kind of

836
00:48:44.940 --> 00:48:50.920
working, but let's say like people, uh, an admin wants to go moderate or do

837
00:48:51.220 --> 00:48:52.940
something with these posts.

838
00:48:53.640 --> 00:48:57.340
Um, you, and you're in this, like the JavaScript CMS, you don't

839
00:48:57.340 --> 00:48:59.180
even know that these posts exist.

840
00:49:00.020 --> 00:49:03.540
Um, so admins want to go like reply to posts.

841
00:49:03.540 --> 00:49:06.000
So we've had to make like another admin.

842
00:49:06.420 --> 00:49:09.260
We have, we have a tool, a feature called admin replies that we created

843
00:49:09.260 --> 00:49:11.560
on the, on the, uh, where you are right here.

844
00:49:11.960 --> 00:49:12.360
Yeah.

845
00:49:12.520 --> 00:49:14.960
Um, that reads those posts and they can quickly line up,

846
00:49:15.180 --> 00:49:15.880
work their way through that.

847
00:49:15.900 --> 00:49:17.320
So it's, it's kind of working.

848
00:49:17.440 --> 00:49:21.080
It's not, but we're having to tell them like, no, well you do some stuff

849
00:49:21.160 --> 00:49:24.420
happens over here and then other things happen on this other app and they have

850
00:49:24.420 --> 00:49:26.140
to constantly switch between two.

851
00:49:26.140 --> 00:49:27.380
And it's very confusing.

852
00:49:27.980 --> 00:49:30.140
So I, I, I had a wrong impression.

853
00:49:30.140 --> 00:49:33.760
I thought that you had customers who were only using this app.

854
00:49:34.320 --> 00:49:37.600
No, they're always, it's all one thing.

855
00:49:38.820 --> 00:49:43.680
Ah, I just got to clarify like the customer, like the end users are

856
00:49:43.680 --> 00:49:44.940
either using one or the other.

857
00:49:44.940 --> 00:49:45.320
Yes.

858
00:49:45.320 --> 00:49:51.000
But the admins, if they're, if the end users are using flutters, flutter, then

859
00:49:51.000 --> 00:49:59.580
the admins of that, those they're using both, like the admins were CMS and in the

860
00:49:59.580 --> 00:49:59.840
Flutter.

861
00:50:00.000 --> 00:50:11.200
piece. So, okay. Maybe one. No, just one comment. Maybe we can rename like, it's not only like the

862
00:50:11.200 --> 00:50:19.640
JS CMS app. It's actually a JavaScript code base that contains the CMS and also our admin

863
00:50:19.880 --> 00:50:28.200
and also the groups V1. So we have the backend and we have users that will be the admins that

864
00:50:28.200 --> 00:50:34.120
will be assessing the dashboard, which is the CMS. But we also have users that are accessing

865
00:50:34.120 --> 00:50:43.180
this group V1, which are the end users of our customers. So, basically, it's a JavaScript code

866
00:50:43.180 --> 00:50:52.300
base that kind of worked by itself. But now we have also the Flutter code base that our main

867
00:50:52.300 --> 00:51:00.460
goal is to move all, let's say, customers of our customers to this Flutter version and leave

868
00:51:00.460 --> 00:51:18.460
the JavaScript just for the dashboard part and not the admin stuff. So, in the JS CMS app,

869
00:51:19.020 --> 00:51:26.880
you have a frontend that's used by end users. And you also have a frontend which is used by

870
00:51:26.880 --> 00:51:39.920
Flutter app users. Okay. Frontend for admins of the Flutter app. Uh-huh. Uh-huh. Okay. Uh-huh.

871
00:51:39.920 --> 00:51:48.700
The backend. Yeah. So, you have the user's backend. I see. Okay. Uh-huh. And then you

872
00:51:48.700 --> 00:51:56.560
also have, of course, the CMS-related backend, yes, is also kind of in this app. And then over

873
00:51:56.560 --> 00:52:05.560
here, then, you have, for example, the community feed frontend. You have posts in the Firebase

874
00:52:05.560 --> 00:52:17.160
database. And you have an admin kind of moderation feature here. But in order to change who is an

875
00:52:17.160 --> 00:52:26.820
admin, I have to go over here. Yes. That's a good example. Exactly. Yeah. And maybe just rename that

876
00:52:26.820 --> 00:52:35.580
right there. Oh, yeah. Yeah. Uh-huh. Uh-huh. So, our customers I mean, we have customers and our

877
00:52:35.580 --> 00:52:42.980
customers have customers. So, their the end user only sees this, of course, right? Most of the

878
00:52:42.980 --> 00:52:47.920
time. And then there's one of the flags we put in the problems is like, except on something as silly

879
00:52:47.920 --> 00:52:54.140
as a password reset, you know, this actually the users will when they have to reset their password,

880
00:52:54.140 --> 00:52:58.160
they actually come over to here. They have to reset their password. And then they get stuck on

881
00:52:58.160 --> 00:53:02.980
some random screen that basically is like, cool, your password's changed. Please go back to your

882
00:53:02.980 --> 00:53:10.580
app on a different domain and sign in. So, that's where those redirects. I mean, it's not quite as

883
00:53:10.580 --> 00:53:15.800
bad as that. I think it redirects or something. I'm going to call this a facade. I'm going to

884
00:53:15.800 --> 00:53:23.200
say there's a facade for password reset. Yeah. Yeah. And also, another example of a problem.

885
00:53:23.200 --> 00:53:30.940
We have the ability of creating notifications, push notifications when you create a new post as

886
00:53:30.940 --> 00:53:37.020
an admin. But this push notification was only being triggered if you created the post within

887
00:53:37.020 --> 00:53:41.640
the Flutter app. But if you created from the dashboard, this was not implemented. And now,

888
00:53:41.700 --> 00:53:47.240
we implemented on we are implementing it on the dashboard. So, these are small things where

889
00:53:47.960 --> 00:53:55.940
we kind of are losing track of where is the where was the best place to implement this feature. And

890
00:53:55.940 --> 00:54:01.760
because users were kind of accessing both, especially actually only the admin users,

891
00:54:01.820 --> 00:54:07.500
they were they had to access both apps. So, this was creating complications.

892
00:54:09.020 --> 00:54:16.680
And so, okay, hold on. I want to capture that also. There's something called a dashboard on

893
00:54:16.680 --> 00:54:22.540
the JSCMS app. You can just put the feature, there's push notifications. And what he's saying,

894
00:54:22.760 --> 00:54:25.840
there's like, there's like a dashboard, like, we call it the dashboard, the CMS,

895
00:54:26.080 --> 00:54:31.940
kind of interchangeably. But there's push notifications on both. And they're different.

896
00:54:32.180 --> 00:54:36.780
And so, if you create a push notification on the CMS side, the JavaScript side, it can do

897
00:54:36.860 --> 00:54:42.560
A, B and C. But if you do it on the Flutter side, you can do like, D, E, F or something, essentially.

898
00:54:44.240 --> 00:54:48.580
And so, this is extremely confusing for clients. They're like, cool, I want to share something with

899
00:54:49.100 --> 00:54:53.080
my users. Then they go and do it. And then, you know, we're like, no, of course, you can do that.

900
00:54:53.100 --> 00:54:57.440
You have to go over here and do it over here. And then, you know, we tell them something else.

901
00:54:57.540 --> 00:54:59.540
Anyway, it's just and then

902
00:55:00.000 --> 00:55:03.740
from a from the Flutter side, we have to account for like, did

903
00:55:03.740 --> 00:55:06.300
this notification come from the CMS? Or did it come from the

904
00:55:06.300 --> 00:55:09.580
Flutter app? And then it's two totally different, like, you

905
00:55:09.580 --> 00:55:10.200
know, flows.

906
00:55:10.200 --> 00:55:32.820
Mm hmm. Okay, okay. Okay, so let's say, let's say that we

907
00:55:32.820 --> 00:55:36.400
pause here with a bit. Now, this is a nice picture of some of

908
00:55:36.400 --> 00:55:40.820
the problems in the in the current world. What is what did

909
00:55:40.820 --> 00:55:42.340
code split do?

910
00:55:44.380 --> 00:55:49.040
Not as much as you originally thought at the beginning, you

911
00:55:49.040 --> 00:55:50.400
were like, cool, so you sold it.

912
00:55:56.160 --> 00:55:59.920
So like, basically, we now have I think you somewhere you had

913
00:55:59.920 --> 00:56:02.920
group V one, I think in a previous maybe was over on the

914
00:56:03.070 --> 00:56:08.030
left side. Yes. Okay. Group V one. Yeah. I'll capture this so

915
00:56:08.030 --> 00:56:14.870
that this week so that we don't lose. So we can continue to

916
00:56:14.870 --> 00:56:17.450
build up at least a complete picture. So we had a group group

917
00:56:17.930 --> 00:56:22.210
V one. And we were processing video files that I think that's

918
00:56:22.210 --> 00:56:23.750
maybe not as relevant now.

919
00:56:25.010 --> 00:56:28.950
If what you could do, maybe just for your diagram is to actually

920
00:56:28.950 --> 00:56:33.270
have the CM the CMS split a little wider here, and then have

921
00:56:33.270 --> 00:56:36.330
like the dashboard sides, what we call the dashboard, and then

922
00:56:36.330 --> 00:56:40.630
we have like the front end, you know, side on the left column,

923
00:56:40.630 --> 00:56:46.950
because there's kind of two pads there. For example, the and you

924
00:56:46.950 --> 00:56:51.870
could split it however you want. Those yellow boxes would kind of

925
00:56:51.870 --> 00:56:56.230
push one way or the other. So which goes where? So that one

926
00:56:56.230 --> 00:57:00.870
you can leave on the front end. That's fine. This one goes to

927
00:57:00.870 --> 00:57:03.210
the left because that's they're using there's the admins running

928
00:57:04.250 --> 00:57:04.690
there.

929
00:57:05.990 --> 00:57:07.650
This is underlying both

930
00:57:09.250 --> 00:57:13.290
no usable users are, yeah, users, they could be under both. I

931
00:57:13.290 --> 00:57:15.590
mean, it's really the user management happens on the

932
00:57:15.590 --> 00:57:20.870
dashboard side. They're both the front end from a code of a front

933
00:57:20.870 --> 00:57:24.230
end verse like an API, but we sort of split it to these two

934
00:57:24.230 --> 00:57:29.970
different experiences. CMS back ends on the left, the password

935
00:57:29.970 --> 00:57:36.310
reset is on the right here. And the push notifications would be

936
00:57:36.310 --> 00:57:42.310
on the left side. And then what we did, though, was when you're

937
00:57:42.310 --> 00:57:46.610
on the front end here, we can now split basically to like a v

938
00:57:46.610 --> 00:57:50.610
one experience or like a v two. So we can send people down like

939
00:57:50.610 --> 00:57:54.830
two different paths when you're on this, this flow. And so

940
00:57:54.830 --> 00:57:59.650
that's all we did on the split there. And so we can start to

941
00:57:59.930 --> 00:58:00.410
fix

942
00:58:02.750 --> 00:58:06.470
it really was just a setting us up to start the process. Because

943
00:58:06.970 --> 00:58:10.110
what it did was it allowed us to start building a v2 without

944
00:58:10.270 --> 00:58:14.150
messing up all the legacy clients that were on

945
00:58:17.330 --> 00:58:19.570
the, the ones that are just on this guy.

946
00:58:21.650 --> 00:58:25.630
Okay, let me ask you this. So let me just clean up one thing

947
00:58:25.630 --> 00:58:30.610
and then we can we can let's let's double click on it let us

948
00:58:31.070 --> 00:58:38.470
start building a v2. We'll come back to that. I assume this I

949
00:58:38.470 --> 00:58:40.750
mean, these are both front ends. So can you help me understand

950
00:58:40.750 --> 00:58:43.630
like what is what is this and how is it different from this?

951
00:58:49.650 --> 00:58:52.130
Um, they're not, I mean, the codes actually, technically,

952
00:58:52.430 --> 00:58:54.870
Lucian, I think the code, the v1 v2 is actually like kind of

953
00:58:54.870 --> 00:58:57.410
above both of those, right? Did I put that in the wrong?

954
00:58:58.650 --> 00:59:02.070
But is this is what you're describing to me? Is this still?

955
00:59:02.670 --> 00:59:06.450
Does this still describe the structure of things before you

956
00:59:06.450 --> 00:59:07.730
made the v1 v2 split?

957
00:59:09.910 --> 00:59:11.290
Yes, this is before.

958
00:59:11.290 --> 00:59:19.630
Okay. And so this, this is this groups v1. This is

959
00:59:22.530 --> 00:59:27.010
what does it mean that this is here and not here? Like this,

960
00:59:27.150 --> 00:59:30.830
what you're calling dashboard? Is this is this all just admin

961
00:59:30.910 --> 00:59:31.390
stuff?

962
00:59:32.050 --> 00:59:35.590
Yeah, exactly. Yeah. Ah, okay. Oh, we should probably put the

963
00:59:35.590 --> 00:59:38.810
word CMS there and take it out of the top part. I think that's

964
00:59:38.810 --> 00:59:42.350
okay. Okay. So let's just, I'm just putting a soup of

965
00:59:42.350 --> 00:59:45.630
different, a salad of different equivalent words there. And

966
00:59:45.630 --> 00:59:52.670
we're going to say JS app. This is the older app. Uh huh. So

967
00:59:52.670 --> 00:59:57.070
this is, this is the end users. The end users of this thing are

968
00:59:57.070 --> 00:59:59.970
using this stuff. And the, uh, the

969
01:00:00.000 --> 01:00:02.720
The admins are using this stuff, is that right?

970
01:00:04.700 --> 01:00:06.260
That is, yeah, that's.

971
01:00:07.160 --> 01:00:09.040
Uh-huh, good, okay, okay.

972
01:00:10.080 --> 01:00:14.700
And, okay, so then when you said like we split,

973
01:00:14.840 --> 01:00:18.140
okay, so there's a new version of this universe,

974
01:00:18.460 --> 01:00:20.140
which is after the code split,

975
01:00:20.780 --> 01:00:26.300
where we now have end-user front-end v1

976
01:00:26.300 --> 01:00:29.660
and end-user front-end v2, yes?

977
01:00:30.300 --> 01:00:31.100
Mm-hmm.

978
01:00:38.120 --> 01:00:42.640
And are there duplicate versions of each of these things?

979
01:00:46.080 --> 01:00:50.620
So we came up with an idea for this to have a common,

980
01:00:50.800 --> 01:00:52.440
there's three directories, there's a common,

981
01:00:52.660 --> 01:00:54.360
and then there's like common components,

982
01:00:54.800 --> 01:00:56.540
there's v1 components, v2 components.

983
01:00:56.540 --> 01:01:01.400
So we can actually share everything at the beginning,

984
01:01:01.580 --> 01:01:03.000
and then we can sort of, over time,

985
01:01:03.140 --> 01:01:05.420
we can create this new experience.

986
01:01:05.560 --> 01:01:08.900
If we have a modal that has like a form we need,

987
01:01:09.120 --> 01:01:11.600
we just reuse it for now, we don't rebuild it,

988
01:01:11.740 --> 01:01:13.560
just reuse the components in v2.

989
01:01:14.280 --> 01:01:17.600
I see, I see, so you just kind of factored those apart

990
01:01:17.600 --> 01:01:19.780
so that you could compose with them as you do new things.

991
01:01:20.940 --> 01:01:21.360
Mm-hmm.

992
01:01:22.080 --> 01:01:27.220
Okay, so here's a question.

993
01:01:29.900 --> 01:01:33.460
If we're looking at things that need to change

994
01:01:34.120 --> 01:01:38.620
in order for you to be in a world

995
01:01:39.040 --> 01:01:42.460
where doing new development on the,

996
01:01:43.520 --> 01:01:46.460
you wanna continue to do development on this,

997
01:01:46.640 --> 01:01:49.000
so this thing, which is called a Flutter app,

998
01:01:49.000 --> 01:01:51.300
what is it called in terms of the thing that you sell?

999
01:01:51.420 --> 01:01:52.240
This is Tribe Social?

1000
01:01:53.700 --> 01:01:55.440
The whole thing is, Tribe Social,

1001
01:01:55.760 --> 01:01:57.560
this is really what the clients get

1002
01:01:57.560 --> 01:02:00.720
as sort of their branded app,

1003
01:02:00.860 --> 01:02:04.080
and so the Tribe Social doesn't actually appear

1004
01:02:04.080 --> 01:02:05.160
anywhere on the Flutter apps,

1005
01:02:05.180 --> 01:02:08.480
it gets branded as our client's app,

1006
01:02:09.560 --> 01:02:10.840
kind of from end to end.

1007
01:02:11.380 --> 01:02:13.080
So it's the white-labeled,

1008
01:02:13.320 --> 01:02:14.800
and you can call it the white-labeled version

1009
01:02:14.800 --> 01:02:16.880
of Tribe Social is what it is.

1010
01:02:17.500 --> 01:02:23.980
So, okay, so is the idea that the things that are,

1011
01:02:24.580 --> 01:02:26.320
the reason that you wanna have a V2

1012
01:02:26.320 --> 01:02:28.620
is because there are things that have dependencies

1013
01:02:28.620 --> 01:02:31.660
to the stuff over here that you wanna be able to make new?

1014
01:02:37.460 --> 01:02:39.660
Maybe, maybe, I'm not sure I understood.

1015
01:02:43.580 --> 01:02:46.380
Okay, I'll give a dumb example.

1016
01:02:48.860 --> 01:02:54.880
This is a gross thing that you pointed out.

1017
01:02:55.680 --> 01:02:58.780
Is this the kind of thing that shouldn't be happening

1018
01:02:58.780 --> 01:03:00.460
anymore when you're done with this project,

1019
01:03:00.500 --> 01:03:01.560
or is this the kind of thing

1020
01:03:01.560 --> 01:03:02.940
you're gonna continue to live with?

1021
01:03:03.660 --> 01:03:08.520
Yeah, we'd like to be done with those sort of two things

1022
01:03:08.520 --> 01:03:11.640
that do slightly different things on two different pages,

1023
01:03:12.600 --> 01:03:14.240
two different domains, even.

1024
01:03:14.240 --> 01:03:18.400
Okay, so this is another one, the push notifications?

1025
01:03:20.260 --> 01:03:22.220
Yeah, push notifications definitely.

1026
01:03:23.760 --> 01:03:26.140
Password reset flow is not mission-critical,

1027
01:03:27.680 --> 01:03:29.240
but it's important.

1028
01:03:30.080 --> 01:03:31.560
It's not mission-critical.

1029
01:03:31.760 --> 01:03:34.220
It's something we can identify that,

1030
01:03:34.360 --> 01:03:36.200
but it's not as critical.

1031
01:03:37.280 --> 01:03:41.460
Okay, so when I look here now,

1032
01:03:41.460 --> 01:03:45.780
notification center, is this referring

1033
01:03:47.240 --> 01:03:49.780
to untangling this notification stuff?

1034
01:03:49.920 --> 01:03:50.940
Is that what this is about?

1035
01:03:51.860 --> 01:03:56.340
Yeah, so we kind of framed this first piece

1036
01:03:56.340 --> 01:04:00.360
of just kind of use the JavaScript front end

1037
01:04:00.360 --> 01:04:02.900
to also just be able to read things

1038
01:04:02.900 --> 01:04:05.060
out of the Firebase database as well,

1039
01:04:05.620 --> 01:04:08.500
so that at least from an end user standpoint,

1040
01:04:08.500 --> 01:04:10.680
we kind of fix it on the experience side,

1041
01:04:10.680 --> 01:04:12.700
and then we can kind of move.

1042
01:04:12.800 --> 01:04:15.000
So one of the things we put out of scope

1043
01:04:15.000 --> 01:04:21.100
for this project was changing the APIs around too much,

1044
01:04:21.360 --> 01:04:23.760
or basically moving the data itself.

1045
01:04:24.460 --> 01:04:28.060
So the reason you can't do the admin replies feature

1046
01:04:28.060 --> 01:04:30.740
over here is because the posts don't even exist

1047
01:04:30.740 --> 01:04:33.080
in the SQL data, so we gotta go fetch the posts

1048
01:04:33.620 --> 01:04:38.880
from this Firebase DB and get those somehow,

1049
01:04:38.880 --> 01:04:42.140
and then we could create a front end admin reply thing

1050
01:04:42.140 --> 01:04:43.860
over here relatively easily.

1051
01:04:45.680 --> 01:04:48.120
I'm sorry, that was if we were to do the admin replies,

1052
01:04:50.820 --> 01:04:54.320
but we could just read from that database for now,

1053
01:04:54.840 --> 01:04:57.500
and right now we're reading it to the Flutter clients.

1054
01:04:57.560 --> 01:04:59.680
We could just read it into the JavaScript one,

1055
01:04:59.700 --> 01:04:59.980
and just.

1056
01:05:00.000 --> 01:05:05.360
make it feel a little bit more cohesive, and then over time, the goal will be to totally get rid of

1057
01:05:06.440 --> 01:05:13.600
Firebase as we go and get rid of those synchronization issues that we're running into.

1058
01:05:13.800 --> 01:05:20.420
Again, it kind of works, but we don't want to go and create a post table, for example,

1059
01:05:20.460 --> 01:05:26.540
in the SQL database just yet, because I think that makes it harder on ourselves.

1060
01:05:27.520 --> 01:05:33.860
First, just initially just reading the front end. That's, again, why the estimates of time

1061
01:05:33.860 --> 01:05:37.580
was relatively low, because we're just building the front end. We're not going to go and

1062
01:05:39.500 --> 01:05:43.740
move all the sort of CRUD functions out of Firebase and into...

1063
01:05:44.880 --> 01:05:51.740
I see. I see. So what I think I'm hearing from that is that I'm just going to capture this on

1064
01:05:51.980 --> 01:05:58.400
a high level. So now I'm trying to capture for the first time kind of like your approach

1065
01:05:58.620 --> 01:06:07.720
as like approach A, which is, if I'm going to just try and do this at a big picture, it's

1066
01:06:07.720 --> 01:06:12.540
back end, DBs and APIs don't change. Is that right?

1067
01:06:14.500 --> 01:06:23.400
Yeah. We may be creating an API to read the Firebase potentially, I'm assuming, Luchin,

1068
01:06:25.220 --> 01:06:30.280
but it's really the data. We're not going to try to move data, would be maybe a better way to say

1069
01:06:30.280 --> 01:06:31.740
it. Yeah. Uh-huh. Yep.

1070
01:06:31.740 --> 01:06:39.500
Uh-huh. Uh-huh. Uh-huh. Rewire front end to fetch data from where it already is.

1071
01:06:41.740 --> 01:06:52.560
Like new front ends for a key feature. Yeah. I think one way to look at it is that by the

1072
01:06:52.560 --> 01:07:01.000
end of V2, like by the end of all these changes related to this V2, we would move our users that

1073
01:07:01.000 --> 01:07:08.620
are using the Flutter web out of it to use only on the JavaScript. And this will kind of, at the,

1074
01:07:09.200 --> 01:07:14.240
by the end of this process, we'll be reaching, we'll be getting the data from our Firebase,

1075
01:07:14.600 --> 01:07:21.800
but all the structure will be in place for us to slowly move out of Firebase by connecting

1076
01:07:21.800 --> 01:07:30.980
directly with our APIs and moving the data from Firestore to our SQL database. So it's a

1077
01:07:31.000 --> 01:07:37.560
kind of, this V2, it will be an intermediary step where the front end will be fixed for end users,

1078
01:07:37.620 --> 01:07:44.580
but the backend will be a little bit confusing, but we have all the tools in hand to fix it on

1079
01:07:44.580 --> 01:07:51.300
the next step. At least that's how I'm looking at it. Yeah. A different way to think about it

1080
01:07:51.300 --> 01:07:58.560
would be like our client's domain is currently pointed to a Flutter app, but their branded

1081
01:07:58.560 --> 01:08:06.320
domain will now point to the JavaScript by the end of this. Guys, that was very helpful.

1082
01:08:07.200 --> 01:08:12.720
That was very helpful because I kind of, I think that's the first time I see an outcome where I

1083
01:08:12.720 --> 01:08:20.640
feel like, oh, that's when we're done. Because that is actually a moment, you know what I mean?

1084
01:08:20.640 --> 01:08:25.340
Where you know if you were there or not. So the thing that's really hard about these refactoring

1085
01:08:25.340 --> 01:08:29.359
projects is very often we don't have a clear definition of when are we done.

1086
01:08:31.300 --> 01:08:38.760
You know, and that is fantastic. So we're literally going to shut down the Flutter web app

1087
01:08:38.760 --> 01:08:43.920
at the end of this. Is that right? Yeah. Yeah, that's the idea. Oh my god, that's fantastic. Okay.

1088
01:08:44.140 --> 01:08:49.680
So that's, thank you. That's very helpful. So this is literally like migrate from Flutter

1089
01:08:49.680 --> 01:08:58.319
web to JS to new JS frontend. Exactly. That captures what this thing is, yes?

1090
01:08:59.800 --> 01:09:03.640
Yep. And that's why this is one effort and not separate projects.

1091
01:09:06.340 --> 01:09:11.540
Very good. That makes me feel very satisfied of our job because like literally your aha moment

1092
01:09:11.540 --> 01:09:17.460
is like the title of our projects. I feel like we really captured. That's so funny. I literally see

1093
01:09:17.460 --> 01:09:30.979
migrate web app from Flutter. The thing is, so what I would have been looking for, so I mean I think

1094
01:09:37.000 --> 01:09:42.920
maybe this is just for me. But the way that I usually think about this is I want the frame

1095
01:09:42.920 --> 01:09:48.319
to be something where if all of us for some reason just like got pulled away to different

1096
01:09:48.319 --> 01:09:52.779
things, you know what I mean? And we all came back to this project like and we forgot everything,

1097
01:09:53.240 --> 01:09:59.880
how quickly could we load it back into our heads? And what happened here

1098
01:10:00.000 --> 01:10:02.900
is, and I'm not telling you this is a problem,

1099
01:10:03.040 --> 01:10:05.320
but this is kind of like a, maybe a,

1100
01:10:05.320 --> 01:10:07.520
I'm curious if this gives you any ideas, you know,

1101
01:10:07.520 --> 01:10:11.260
is like, it took an hour and 10 minutes

1102
01:10:11.260 --> 01:10:12.460
for me to get the aha.

1103
01:10:14.280 --> 01:10:16.500
And it could be that I have a,

1104
01:10:17.440 --> 01:10:19.080
it could be a failure on my side,

1105
01:10:20.380 --> 01:10:23.280
but usually what I'm trying to do in the framing

1106
01:10:23.420 --> 01:10:25.840
is create that aha as fast as possible.

1107
01:10:27.760 --> 01:10:34.360
So, if I were to try and write this,

1108
01:10:36.600 --> 01:10:40.660
what I would be doing would look something like.

1109
01:10:49.200 --> 01:10:50.380
That's definitely fair.

1110
01:10:50.420 --> 01:10:53.260
Cause I, I mean, we did this probably a month ago,

1111
01:10:53.520 --> 01:10:54.900
Lucian, I don't remember when, it's been a while,

1112
01:10:54.900 --> 01:10:57.460
but that's exactly what happened is the reloading

1113
01:10:57.460 --> 01:10:59.120
and into our brain thing is very helpful.

1114
01:11:01.560 --> 01:11:04.920
And I don't think we, we kind of, again,

1115
01:11:04.920 --> 01:11:08.160
maybe we took a couple of shortcuts because it was our app

1116
01:11:08.160 --> 01:11:10.620
and not for a client where we have to do this packaging

1117
01:11:10.700 --> 01:11:12.060
and presentation piece.

1118
01:11:12.160 --> 01:11:15.240
So I was actually, we only had the problem statements

1119
01:11:15.240 --> 01:11:17.320
and stuff written, put it in FigJam.

1120
01:11:17.500 --> 01:11:18.780
And so this morning I was just actually

1121
01:11:18.780 --> 01:11:19.620
putting it into Notion.

1122
01:11:19.900 --> 01:11:21.480
It was all the things we wrote down,

1123
01:11:21.540 --> 01:11:23.980
but I don't think we took that final step where we like,

1124
01:11:23.980 --> 01:11:27.080
Hey, really, this is the main event here

1125
01:11:27.080 --> 01:11:28.220
is the domain piece.

1126
01:11:28.220 --> 01:11:30.600
Cause once the domain shifts, then, then we're done.

1127
01:11:30.820 --> 01:11:33.160
Like, cause obviously it has to all work, you know,

1128
01:11:33.200 --> 01:11:39.800
before that, for that point, but we're working.

1129
01:11:40.200 --> 01:11:44.140
One other piece of this is we're working with another person

1130
01:11:44.140 --> 01:11:46.980
who's been helping us with just like communication

1131
01:11:46.980 --> 01:11:49.340
to clients and being super crystal clear

1132
01:11:49.340 --> 01:11:53.280
and getting things really concrete in emails and calls.

1133
01:11:54.520 --> 01:11:56.440
So this is just a kind of an example of that

1134
01:11:56.440 --> 01:11:59.080
where we could have been much more clear

1135
01:11:59.780 --> 01:12:02.140
and just basically being a better writer

1136
01:12:02.140 --> 01:12:03.900
is what it comes down to.

1137
01:12:05.160 --> 01:12:06.640
So that's the good feedback.

1138
01:12:07.360 --> 01:12:10.460
I think, yeah, I think, I think the, for what it's worth,

1139
01:12:10.460 --> 01:12:11.960
this is a little bit of a black art.

1140
01:12:13.120 --> 01:12:18.460
So it's, you know, the, the thing,

1141
01:12:18.460 --> 01:12:23.180
the thing that I'm focusing on here

1142
01:12:23.180 --> 01:12:26.680
and we can do a little bit of a, of a before after.

1143
01:12:29.380 --> 01:12:32.180
Let me, let me, let me first express.

1144
01:12:32.380 --> 01:12:33.700
So, so the real, the outcomes,

1145
01:12:34.080 --> 01:12:36.060
the aha moment outcomes are like,

1146
01:12:36.200 --> 01:12:38.060
we're literally going to be able to shut off Flutter app

1147
01:12:38.060 --> 01:12:38.900
for all customers.

1148
01:12:41.280 --> 01:12:43.320
Like that's a switch we're going to flip.

1149
01:12:44.940 --> 01:12:46.800
Domains are going to point to the JS domain instead.

1150
01:12:46.800 --> 01:12:49.220
I mean, that's, that's, that's kind of a spelling out

1151
01:12:49.220 --> 01:12:50.640
what this means concretely.

1152
01:12:50.640 --> 01:12:52.080
It's kind of a repeat of the same thing,

1153
01:12:52.160 --> 01:12:53.860
but it's, I like it there.

1154
01:12:54.100 --> 01:12:55.920
This is only about the front end.

1155
01:12:58.600 --> 01:13:00.880
So what I'm actually going to do is,

1156
01:13:07.000 --> 01:13:08.960
this is a case where I could reach for,

1157
01:13:09.900 --> 01:13:11.720
sorry, this teal draws a little bit.

1158
01:13:11.720 --> 01:13:13.000
Text editors are hard.

1159
01:13:14.000 --> 01:13:14.760
Yeah, seriously.

1160
01:13:14.760 --> 01:13:18.920
But I'm going to do like this less about,

1161
01:13:20.600 --> 01:13:24.360
more about, this can just be helpful

1162
01:13:25.280 --> 01:13:28.460
because it lets me really just make this extremely crispy.

1163
01:13:28.680 --> 01:13:31.040
And this gives me a place for, for this extra detail.

1164
01:13:31.140 --> 01:13:32.860
I'm going to say, this is,

1165
01:13:32.940 --> 01:13:36.160
this is not about where data is stored.

1166
01:13:39.820 --> 01:13:44.240
This is, this is all about front end wiring.

1167
01:13:46.820 --> 01:13:48.060
This is about,

1168
01:13:54.940 --> 01:13:55.620
no, whatever.

1169
01:13:56.500 --> 01:14:03.660
This is about ability to migrate backend.

1170
01:14:05.200 --> 01:14:06.920
It's, it's actually, it's not even about this.

1171
01:14:07.160 --> 01:14:10.780
This is literally not about where data is stored DBs.

1172
01:14:12.060 --> 01:14:13.500
This is all about the front end.

1173
01:14:13.500 --> 01:14:14.820
Then problem.

1174
01:14:26.620 --> 01:14:29.160
What I heard was something like,

1175
01:14:30.380 --> 01:14:33.480
the fact that we have things in multiple places

1176
01:14:33.480 --> 01:14:35.760
is like slowing us down and adding complexity

1177
01:14:35.760 --> 01:14:37.240
whenever we want to do new things.

1178
01:14:38.420 --> 01:14:38.740
Yep.

1179
01:14:43.500 --> 01:14:43.500


1180
01:14:55.660 --> 01:14:58.300
If I, if I, if I put the history in here,

1181
01:14:58.420 --> 01:14:59.980
the context history a little bit, it's.

1182
01:15:00.000 --> 01:15:06.240
It's like Flutter web was a quick way to stand up social,

1183
01:15:06.880 --> 01:15:09.240
to stand up FB style features

1184
01:15:11.020 --> 01:15:12.980
when we weren't yet profitable.

1185
01:15:16.860 --> 01:15:21.380
Now we intend to grow the,

1186
01:15:21.500 --> 01:15:22.520
I don't know what to call this thing.

1187
01:15:22.600 --> 01:15:24.280
Like you have these two worlds

1188
01:15:24.280 --> 01:15:25.280
and I don't know what to call them

1189
01:15:25.280 --> 01:15:26.320
from a business standpoint.

1190
01:15:26.400 --> 01:15:27.260
We've been talking about them

1191
01:15:27.260 --> 01:15:28.700
from an implementation standpoint,

1192
01:15:28.700 --> 01:15:32.080
Flutter app versus CMS.

1193
01:15:32.440 --> 01:15:35.240
Like this community style thing,

1194
01:15:35.360 --> 01:15:37.000
does it have a name like business-wise?

1195
01:15:37.880 --> 01:15:38.320
Product-wise?

1196
01:15:38.400 --> 01:15:40.020
I mean, this is, we joke about it

1197
01:15:40.020 --> 01:15:41.620
because it is the social,

1198
01:15:41.720 --> 01:15:43.540
it's the tribe social piece of it.

1199
01:15:43.620 --> 01:15:45.580
Whereas we really should name the other one

1200
01:15:45.580 --> 01:15:46.720
tribe streaming or something.

1201
01:15:47.080 --> 01:15:48.600
That's streaming for social.

1202
01:15:49.140 --> 01:15:50.240
Yeah, yeah, okay.

1203
01:15:50.660 --> 01:15:51.640
Uh-huh, uh-huh.

1204
01:15:52.780 --> 01:15:53.240
Yep.

1205
01:16:02.540 --> 01:16:06.860
Okay, so this, if I, yeah, please.

1206
01:16:08.500 --> 01:16:09.640
No, I just had a question

1207
01:16:09.640 --> 01:16:11.260
because there's things that,

1208
01:16:12.280 --> 01:16:12.900
as we said, because you mentioned

1209
01:16:12.900 --> 01:16:13.880
like the next five years,

1210
01:16:13.980 --> 01:16:16.620
like obviously that's just part of the outcome here

1211
01:16:16.620 --> 01:16:18.100
is just really, like you said,

1212
01:16:18.140 --> 01:16:19.800
it's really about front-end wiring.

1213
01:16:20.400 --> 01:16:22.000
It's the first step.

1214
01:16:22.200 --> 01:16:24.160
Yeah, I don't know if it's worth mentioning now

1215
01:16:24.160 --> 01:16:26.180
in the things we're not doing

1216
01:16:26.180 --> 01:16:26.900
or what this is not about.

1217
01:16:26.900 --> 01:16:27.880
It's not right now

1218
01:16:27.880 --> 01:16:31.200
about getting the long-term database stuff figured out.

1219
01:16:31.620 --> 01:16:34.480
Like ultimately we want to get rid of Firebase altogether

1220
01:16:34.480 --> 01:16:36.120
because that's the last piece

1221
01:16:36.120 --> 01:16:38.100
that's kind of messing everything up

1222
01:16:40.180 --> 01:16:43.400
is we're not getting away from Firebase, I guess.

1223
01:16:43.400 --> 01:16:45.800
I mean, you said that with the DB piece,

1224
01:16:46.040 --> 01:16:48.700
but it's kind of just an acknowledgement of like,

1225
01:16:48.700 --> 01:16:51.020
yeah, we're aware of this piece being,

1226
01:16:51.280 --> 01:16:52.820
because if someone could come and look at this

1227
01:16:52.820 --> 01:16:54.840
and be like, well, why don't you just pull Firebase out?

1228
01:16:55.680 --> 01:16:57.280
We're kind of got to the point of clarity

1229
01:16:57.280 --> 01:17:01.960
where like, I think keeping it in for now is okay.

1230
01:17:03.220 --> 01:17:06.820
So yeah, I don't know if that helps Chris, at least for me.

1231
01:17:07.200 --> 01:17:21.720
So the, I try for framing to be really like more about like,

1232
01:17:21.720 --> 01:17:23.320
why are we spending time on this

1233
01:17:23.320 --> 01:17:24.600
and why does this matter today?

1234
01:17:24.600 --> 01:17:26.900
And why wasn't it a problem a year ago?

1235
01:17:28.600 --> 01:17:30.360
And then shaping is more like,

1236
01:17:30.460 --> 01:17:32.220
what are we actually doing and what's in and out?

1237
01:17:33.080 --> 01:17:35.160
So as soon as we kind of get a little bit

1238
01:17:35.160 --> 01:17:37.300
into the weeds here about like, is it Firebase or not?

1239
01:17:37.300 --> 01:17:39.480
I kind of feel like I'm getting away from the bigger,

1240
01:17:39.760 --> 01:17:40.900
what this thing actually is.

1241
01:17:42.760 --> 01:17:44.720
So what could happen is,

1242
01:17:44.880 --> 01:17:47.200
so when you say implementing it in two places

1243
01:17:47.200 --> 01:17:48.680
across apps is slowing us down,

1244
01:17:49.540 --> 01:17:51.340
this isn't because of Firebase.

1245
01:17:54.380 --> 01:17:58.420
So we could say something here about what it is

1246
01:17:58.420 --> 01:17:59.920
that's actually slowing us down here.

1247
01:17:59.940 --> 01:18:00.940
That's not Firebase.

1248
01:18:09.780 --> 01:18:11.360
Yeah, I'm not sure.

1249
01:18:13.360 --> 01:18:14.000
I think that.

1250
01:18:14.440 --> 01:18:16.680
So if it's not Firebase, like what is it?

1251
01:18:17.780 --> 01:18:21.320
That's, it's all the tangling of the,

1252
01:18:21.320 --> 01:18:22.320
yeah, it's like.

1253
01:18:22.700 --> 01:18:25.180
It's the fact that like you literally have to move

1254
01:18:25.180 --> 01:18:27.760
through multiple, you really, you have to be thinking

1255
01:18:27.760 --> 01:18:30.940
about like multiple like flows through both apps

1256
01:18:31.120 --> 01:18:33.720
whenever you're like, it's not only in Firebase,

1257
01:18:33.900 --> 01:18:35.200
it's also in the front end.

1258
01:18:36.500 --> 01:18:37.060
Yes.

1259
01:18:44.620 --> 01:18:49.780
I think, I think if we like, it's, there's so many,

1260
01:18:49.780 --> 01:18:51.980
there's lots of problems with it, right?

1261
01:18:52.200 --> 01:18:53.580
It's just that these are not problems

1262
01:18:53.580 --> 01:18:54.780
we're gonna solve here.

1263
01:18:55.160 --> 01:18:56.880
So it's just obviously we're gonna list out the things

1264
01:18:56.880 --> 01:18:59.260
we are gonna solve and assume everything else

1265
01:18:59.260 --> 01:19:00.620
is off the table.

1266
01:19:02.420 --> 01:19:04.960
But it is, this is where I kind of feel like

1267
01:19:04.960 --> 01:19:07.980
it's kind of like, this is the first project is this,

1268
01:19:08.280 --> 01:19:10.400
the second might be to now start to remove dependency

1269
01:19:10.440 --> 01:19:14.220
on Firebase would be the second phase of this,

1270
01:19:14.340 --> 01:19:16.240
but it's not a, but we can't fit those two

1271
01:19:16.240 --> 01:19:17.980
in a six week cycle.

1272
01:19:18.540 --> 01:19:19.880
So this is where to me, it's like,

1273
01:19:20.000 --> 01:19:21.380
there's kind of project one, two,

1274
01:19:21.500 --> 01:19:24.860
and kind of having stacking a few different pieces of this.

1275
01:19:25.960 --> 01:19:30.760
So we, but if the goal is to shut off Flutter

1276
01:19:30.760 --> 01:19:34.440
web app customers, we don't need to change Firebase

1277
01:19:34.440 --> 01:19:35.820
in order to do that, right?

1278
01:19:37.040 --> 01:19:37.780
No, no.

1279
01:19:38.360 --> 01:19:40.880
So, but what do we, what needs to actually change?

1280
01:19:40.980 --> 01:19:45.000
Like what, so like, if we look at our heat,

1281
01:19:45.000 --> 01:19:46.440
so when I go back here,

1282
01:19:48.420 --> 01:19:53.320
I'm seeing things that are not Firebase are,

1283
01:19:56.460 --> 01:19:59.820
I don't have a, there's unclear.

1284
01:20:00.000 --> 01:20:03.200
Like, like, like, like there isn't clear workflows.

1285
01:20:03.520 --> 01:20:07.060
Some of the workflows are unclear right now.

1286
01:20:08.060 --> 01:20:11.480
There's, there's confusing different policies

1287
01:20:11.480 --> 01:20:13.300
about what happens because of duplication.

1288
01:20:14.460 --> 01:20:16.860
These are the kinds of things that are like.

1289
01:20:21.340 --> 01:20:25.900
Yeah, one, so this is, if we think about it,

1290
01:20:27.620 --> 01:20:30.900
maybe a deeper underlying thing is that

1291
01:20:31.640 --> 01:20:33.500
everything was highly functional,

1292
01:20:33.760 --> 01:20:35.520
like need a button, put a button there.

1293
01:20:35.820 --> 01:20:39.680
There was not really any thought as to the user experience.

1294
01:20:39.900 --> 01:20:41.440
To make that worse,

1295
01:20:41.600 --> 01:20:44.020
we have this whole separate code base thing

1296
01:20:44.020 --> 01:20:45.660
to make it like more complicated.

1297
01:20:45.740 --> 01:20:47.340
So my first step was like,

1298
01:20:47.340 --> 01:20:49.220
let's at least get it to where we can work on it

1299
01:20:49.220 --> 01:20:50.100
in the same place.

1300
01:20:50.100 --> 01:20:51.360
We're not moving between domains.

1301
01:20:51.360 --> 01:20:54.160
Cause that's kind of a big experience problem thing.

1302
01:20:54.160 --> 01:20:55.700
You're jumping between these two domains.

1303
01:20:55.700 --> 01:20:57.280
That's so jarring.

1304
01:20:58.380 --> 01:21:00.140
Then we really need to dig into the under,

1305
01:21:00.240 --> 01:21:01.800
like that's again, that's maybe another project,

1306
01:21:01.880 --> 01:21:04.000
but it's kind of the root cause of like,

1307
01:21:04.040 --> 01:21:04.940
why are we doing this now?

1308
01:21:05.340 --> 01:21:07.400
Well, it's the speed of the features for sure.

1309
01:21:07.460 --> 01:21:11.580
But I think in order to really level up the user flows,

1310
01:21:11.840 --> 01:21:15.380
it's gotta be simple and it's gotta be less surface area

1311
01:21:15.380 --> 01:21:17.500
for people to have to like realize,

1312
01:21:17.980 --> 01:21:20.140
figure out what goes where.

1313
01:21:22.480 --> 01:21:24.060
I don't know if that makes.

1314
01:21:24.060 --> 01:21:25.340
Yeah, let me capture that.

1315
01:21:25.740 --> 01:21:26.460
That makes more sense.

1316
01:21:36.900 --> 01:21:39.300
Again, it's the two houses next to each other

1317
01:21:39.300 --> 01:21:42.400
and being like, yeah, the flow of this house isn't great.

1318
01:21:42.480 --> 01:21:42.840
And she's like, yeah,

1319
01:21:42.840 --> 01:21:45.040
you just have to go to this other living room in house two

1320
01:21:45.080 --> 01:21:46.980
and then the kitchen in house one.

1321
01:21:47.360 --> 01:21:49.620
So yeah, it doesn't flow well at all.

1322
01:21:49.980 --> 01:21:50.980
But it's like, it's okay.

1323
01:21:50.980 --> 01:21:54.040
Cause we have 17 hallways we built between the two.

1324
01:21:54.040 --> 01:21:54.820
So it's fine.

1325
01:21:57.460 --> 01:21:59.820
So let me try this.

1326
01:22:07.180 --> 01:22:08.980
It kind of sounds to me,

1327
01:22:10.180 --> 01:22:12.960
if this is actually what this is about,

1328
01:22:13.820 --> 01:22:17.540
is that you could have a successful project here

1329
01:22:17.540 --> 01:22:19.900
where none of the UX flows actually improve,

1330
01:22:20.740 --> 01:22:22.820
but you're able to shut off the,

1331
01:22:22.820 --> 01:22:24.560
like everything looks and works exactly

1332
01:22:24.560 --> 01:22:25.880
as it seemed to before,

1333
01:22:26.200 --> 01:22:30.040
but you're able to shut off the Flutter web app

1334
01:22:30.040 --> 01:22:32.320
and send people to the JavaScript domain instead.

1335
01:22:32.400 --> 01:22:34.600
And then you could do subsequent projects

1336
01:22:34.600 --> 01:22:36.280
to actually fix these different things.

1337
01:22:36.360 --> 01:22:36.920
Is that right?

1338
01:22:37.360 --> 01:22:37.360


1339
01:22:37.480 --> 01:22:39.540
It kind of sets the foundation for sure.

1340
01:22:39.820 --> 01:22:41.960
Yeah, that's a good way to write it.

1341
01:22:44.720 --> 01:22:48.300
So this is also not even yet about fixing the UX problems.

1342
01:22:50.080 --> 01:22:50.640
Okay.

1343
01:22:52.880 --> 01:22:53.920
That's helpful.

1344
01:22:55.320 --> 01:22:58.940
So this to me, for example, sounds like a UX problem.

1345
01:22:59.580 --> 01:22:59.880
Yeah.

1346
01:23:00.480 --> 01:23:03.320
So we're still, we won't have that as much

1347
01:23:03.520 --> 01:23:05.880
because just by simply moving the domain,

1348
01:23:05.880 --> 01:23:07.640
it fixes that forgot password

1349
01:23:08.540 --> 01:23:10.440
because just from the simple fact

1350
01:23:10.440 --> 01:23:11.880
that like once you reset your password,

1351
01:23:12.020 --> 01:23:12.920
you're signed back in

1352
01:23:12.920 --> 01:23:14.520
and then you can just click into your group

1353
01:23:14.600 --> 01:23:16.000
from there very simply.

1354
01:23:16.000 --> 01:23:18.420
Versus trying to go to another domain

1355
01:23:18.580 --> 01:23:20.860
after that is much more complicated.

1356
01:23:21.440 --> 01:23:22.120
I see.

1357
01:23:22.120 --> 01:23:24.120
So some of it will, I think it'll fix some,

1358
01:23:24.240 --> 01:23:27.720
I think it will fix UX problems just switching the domain

1359
01:23:27.980 --> 01:23:30.800
without changing the actual design

1360
01:23:30.800 --> 01:23:32.880
or the layouts and things like that.

1361
01:23:33.000 --> 01:23:33.700
I see.

1362
01:23:34.380 --> 01:23:34.740
Okay.

1363
01:23:37.020 --> 01:23:38.140
So, okay.

1364
01:23:38.760 --> 01:23:42.440
So when I, okay, so this helped me a lot.

1365
01:23:42.520 --> 01:23:43.480
So now if I understand,

1366
01:23:43.880 --> 01:23:46.180
this is literally about shutting down the Flutter web app.

1367
01:23:46.580 --> 01:23:50.380
We're not actually gonna be rethinking UX flows yet.

1368
01:23:52.260 --> 01:23:53.900
I guess, unless there's something

1369
01:23:53.900 --> 01:23:55.560
that literally like doesn't translate,

1370
01:23:55.700 --> 01:23:58.160
in which case you have to rethink it at that moment.

1371
01:23:59.640 --> 01:24:03.300
And this is all about just being able to flip the switch.

1372
01:24:03.760 --> 01:24:05.280
Like it's almost like the railway tracks.

1373
01:24:05.440 --> 01:24:07.200
Like you wanna like flip that switch of like,

1374
01:24:07.380 --> 01:24:08.840
they are now onto this other domain

1375
01:24:08.960 --> 01:24:11.380
and then you can still do subsequent projects

1376
01:24:14.960 --> 01:24:17.780
to fix the UX problems and stuff like that.

1377
01:24:18.840 --> 01:24:20.320
So the-

1378
01:24:20.320 --> 01:24:20.580
Yeah.

1379
01:24:21.100 --> 01:24:23.960
And I wouldn't, the domain is a good analogy.

1380
01:24:24.280 --> 01:24:26.500
I think one thing we also talked about,

1381
01:24:26.540 --> 01:24:27.840
I don't think I wrote this anywhere,

1382
01:24:27.980 --> 01:24:29.400
but we also said like,

1383
01:24:29.400 --> 01:24:32.960
we don't have to move anyone to any domains after this.

1384
01:24:33.000 --> 01:24:34.320
Like we don't have to switch this,

1385
01:24:34.460 --> 01:24:35.720
flip the switch on anyone after this.

1386
01:24:35.800 --> 01:24:36.360
There's no pressure.

1387
01:24:37.400 --> 01:24:40.160
So we could prep it, get it close,

1388
01:24:40.440 --> 01:24:43.620
maybe move one or two clients over and then leave it

1389
01:24:43.720 --> 01:24:46.140
because some of them may feel immediate.

1390
01:24:46.620 --> 01:24:48.300
It may be actually a step backwards

1391
01:24:49.320 --> 01:24:52.480
as far as a missing feature or flow, for example.

1392
01:24:54.660 --> 01:24:57.500
So we thought we could do it in pieces until like,

1393
01:24:57.720 --> 01:24:59.980
it's maybe the UX is improved.

1394
01:25:00.000 --> 01:25:04.540
and it is, you know, much better than, I don't know.

1395
01:25:04.720 --> 01:25:09.980
Now that's, those are two very different universes, if I understood right.

1396
01:25:10.320 --> 01:25:15.000
So in this universe, where we are literally throwing the switch,

1397
01:25:16.280 --> 01:25:21.080
this forces us to ask the question of what is acceptable and what is not acceptable for a switch

1398
01:25:21.080 --> 01:25:28.260
to happen. If you're saying, well, we don't have to throw the switch, and then later we'll throw

1399
01:25:28.260 --> 01:25:34.020
the switch when we're ready, what I hear there is like definition of ready TBD.

1400
01:25:37.740 --> 01:25:39.160
Yeah, that is true.

1401
01:25:39.880 --> 01:25:44.100
That's fine. I mean, because you can, I mean, there's a million ways to work. So there's

1402
01:25:44.100 --> 01:25:49.260
nothing inherently wrong with that. But all of my tricks don't work if I'm in that world.

1403
01:25:50.000 --> 01:25:57.980
Because then I don't know how to wrestle piece by piece with like,

1404
01:25:57.980 --> 01:26:01.980
does this need to happen now or not? You know, and like, when can we move on?

1405
01:26:02.280 --> 01:26:04.540
And that is the biggest risk with a rewrite.

1406
01:26:05.100 --> 01:26:09.060
The biggest risk with a rewrite is that we don't have a definition of done.

1407
01:26:09.460 --> 01:26:13.220
Right. That's where we've been stuck for sure.

1408
01:26:13.220 --> 01:26:19.300
Yeah, so I think we're at a point where we could flip to the shaping side of this.

1409
01:26:20.380 --> 01:26:26.360
And the way that I would, though, I'll preview that, I think we also were an hour and a half

1410
01:26:26.360 --> 01:26:35.900
in so we could take a short rest. What I want to think about is, in the whole space of the

1411
01:26:35.900 --> 01:26:41.620
current app and the current function and every possible feature, what are the things that we

1412
01:26:41.620 --> 01:26:48.000
could simply port over without a single change in behavior, according to this more strict frame,

1413
01:26:48.300 --> 01:26:52.960
you know? And what I'm curious about is, is there a contradiction in the frame?

1414
01:26:53.360 --> 01:26:59.420
If we don't fix any UX problems, and we literally port everything over one to one,

1415
01:27:00.020 --> 01:27:06.100
do you know what I mean? Like, kind of what's still, what's not, what's holding us back saying

1416
01:27:06.100 --> 01:27:12.340
we can't actually flip that switch, right? And then I think what that will, I think that test

1417
01:27:12.340 --> 01:27:21.860
will help us to identify, you know what I mean? And this can be, we can look at this as

1418
01:27:21.860 --> 01:27:26.320
scopes of a single project, or we can look at this as a monster, which is multiple projects before you

1419
01:27:26.440 --> 01:27:33.500
have a final launch. But in the end, it's kind of the same. It's just a question of whether or not

1420
01:27:33.500 --> 01:27:39.980
you're inside of a manageable time box or not. If all of this still with AI adds up to less than

1421
01:27:41.080 --> 01:27:45.460
your typical appetite of, you know what I mean, three weeks or four weeks or whatever that is,

1422
01:27:46.020 --> 01:27:52.840
we can treat it as scopes inside of one project. And if it starts to feel like that switch flipping

1423
01:27:53.400 --> 01:27:57.460
is further out than what you can commit to right now as a single project,

1424
01:27:57.460 --> 01:28:03.900
you know, then we can look into, okay, well, then what we have to do is frame the intermediate win.

1425
01:28:04.120 --> 01:28:08.780
And how do we know when we're done with that? And do we feel like we're ever going to reach

1426
01:28:08.780 --> 01:28:19.140
that other piece or not? That's going to be a big thing. Any reaction to that before we break for

1427
01:28:19.300 --> 01:28:22.880
for 10 minutes to breathe here?

1428
01:28:25.400 --> 01:28:29.780
Yeah, I think these are all good. I think it's like breaking into little steps to get us

1429
01:28:29.780 --> 01:28:35.000
on the right trajectory. I think there's sort of this bigger arching thing, which I said,

1430
01:28:35.100 --> 01:28:38.600
we're kind of dealing with now with the UX problem is like, yeah, there's these underlying

1431
01:28:39.420 --> 01:28:45.940
UX problems. Because the one thing I did in between us shaping this and I was like, because we basically

1432
01:28:45.940 --> 01:28:49.960
didn't do any work on this for a few weeks, we got busy with other work. And so we didn't,

1433
01:28:50.100 --> 01:28:58.180
we just deliberately deprioritized it. Is that I just did like a little spike project where I said,

1434
01:28:58.340 --> 01:29:04.880
hey, let's just sit and like, and this was a legitimate vibe coding thing, like make a branch,

1435
01:29:05.480 --> 01:29:10.540
have like, just mock up the what the post would look like mock up with the media, like don't do

1436
01:29:10.540 --> 01:29:15.920
anything with API, just pure front end. Let me just see if I can get the experience, like a

1437
01:29:15.920 --> 01:29:20.300
new these prototypes and by coding, we deliberately like delete them when we're done. So it's a very

1438
01:29:21.220 --> 01:29:25.600
freeing experience to go in and cool, use these tools, look at it, this is great, like maybe take

1439
01:29:25.600 --> 01:29:30.800
a screenshot and then delete the whole thing and kind of Yeah, cool as a reference. But it lets us

1440
01:29:30.800 --> 01:29:35.740
go down. And basically, we ended up with something that looks relatively the same as what we have

1441
01:29:36.620 --> 01:29:41.620
now. And then of course, this is I'll throw this last wrench in the whole thing. And Lucia knows

1442
01:29:41.620 --> 01:29:45.900
what it was like, well, why don't we just make Flutter the main app? Like, why don't why don't

1443
01:29:45.900 --> 01:29:50.160
we just improve the UX of Flutter? You know, instead of doing this whole other project,

1444
01:29:50.160 --> 01:29:55.360
like we could actually just leave it in Flutter. And so like, which is it's, you know, and there's

1445
01:29:55.360 --> 01:29:59.820
reasons for that as well. But I just wanted to show this is sort of the back and forth. We've

1446
01:30:00.000 --> 01:30:01.320
playing with for a while.

1447
01:30:02.280 --> 01:30:03.980
That's why we haven't made a clear decision.

1448
01:30:04.540 --> 01:30:05.940
So yeah, Lucian, you were saying?

1449
01:30:07.180 --> 01:30:07.580
Yeah.

1450
01:30:10.420 --> 01:30:12.580
So one of the problems, OK, we don't

1451
01:30:12.580 --> 01:30:14.420
want to work in two places.

1452
01:30:14.920 --> 01:30:16.480
And another problem is that there's

1453
01:30:16.480 --> 01:30:20.060
a lot of little UX issues that are really like, eh.

1454
01:30:20.580 --> 01:30:23.060
And so this framing is really good

1455
01:30:23.060 --> 01:30:26.720
because it's like, OK, approach A would just port everything

1456
01:30:26.720 --> 01:30:28.280
over exactly as is.

1457
01:30:28.960 --> 01:30:31.340
And as we're approaching this, it's really cringy.

1458
01:30:31.480 --> 01:30:34.620
Do we really want to just copy this really bad thing

1459
01:30:35.700 --> 01:30:38.220
into V2, JSV2?

1460
01:30:38.540 --> 01:30:42.560
And it seems like we use this thing as a doorway.

1461
01:30:43.180 --> 01:30:46.580
OK, if we were to approach porting everything over,

1462
01:30:47.560 --> 01:30:49.400
we're considering porting notifications.

1463
01:30:49.640 --> 01:30:50.480
But really, it's bad.

1464
01:30:50.520 --> 01:30:53.400
So let's make a project to actually fix notifications.

1465
01:30:54.060 --> 01:30:55.640
And then we port it over.

1466
01:30:56.200 --> 01:30:57.980
And then we just kind of find what

1467
01:30:57.980 --> 01:31:02.800
are all the different projects to fix the UX issues.

1468
01:31:03.360 --> 01:31:07.560
And once we fix the big pieces, then we can, in good conscience,

1469
01:31:07.720 --> 01:31:08.520
port it over.

1470
01:31:17.020 --> 01:31:18.140
Got it.

1471
01:31:19.100 --> 01:31:20.200
That's a good thing.

1472
01:31:20.840 --> 01:31:22.180
Let's come back.

1473
01:31:22.480 --> 01:31:24.620
That's a good thing for us to come back

1474
01:31:24.620 --> 01:31:28.480
to when we come back from break.

1475
01:31:34.040 --> 01:31:34.260
Foreshadowing.

1476
01:31:39.380 --> 01:31:41.520
OK, we'll come back to that.

1477
01:31:42.460 --> 01:31:44.280
Shall we take 10 and then come back?

1478
01:31:45.320 --> 01:31:45.480
Cool.

1479
01:31:46.540 --> 01:31:47.880
All right, we'll see you in 10 minutes.

1480
01:32:24.360 --> 01:32:24.580
All right, we'll see you in 10 minutes.

1481
01:32:54.360 --> 01:32:54.580
All right, we'll see you in 10 minutes.

1482
01:33:24.360 --> 01:33:24.580
All right, we'll see you in 10 minutes.

1483
01:33:54.360 --> 01:33:54.580
All right, we'll see you in 10 minutes.

1484
01:34:24.360 --> 01:34:24.580
All right, we'll see you in 10 minutes.

1485
01:34:54.360 --> 01:34:54.580
All right, we'll see you in 10 minutes.

1486
01:34:59.740 --> 01:34:59.960
All right, we'll see you in 10 minutes.

1487
01:35:08.080 --> 01:35:09.480
you

1488
01:35:38.080 --> 01:35:39.480
you

1489
01:36:08.080 --> 01:36:09.480
you

1490
01:36:38.080 --> 01:36:39.480
you

1491
01:37:08.080 --> 01:37:09.480
you

1492
01:37:38.080 --> 01:37:39.480
you

1493
01:38:08.080 --> 01:38:09.480
you

1494
01:38:38.080 --> 01:38:39.480
you

1495
01:39:08.080 --> 01:39:09.480
you

1496
01:39:38.080 --> 01:39:39.480
you

1497
01:40:08.960 --> 01:40:10.360
you

1498
01:40:38.960 --> 01:40:40.360
you

1499
01:41:08.960 --> 01:41:10.360
you

1500
01:41:38.960 --> 01:41:40.360
you

1501
01:42:08.960 --> 01:42:10.360
you

1502
01:42:30.000 --> 01:42:30.020
you

1503
01:42:30.020 --> 01:42:30.040
you

1504
01:42:57.600 --> 01:42:59.300
hey okay so we're back

1505
01:43:02.000 --> 01:43:11.100
um that was a good place to to to land with this observation from from lucian about um there are

1506
01:43:11.260 --> 01:43:15.920
things there's things we can port over and there's things that if we port them over we're gonna feel

1507
01:43:15.920 --> 01:43:22.920
bad about those things we're gonna feel like i don't want to port that over that is i think

1508
01:43:24.640 --> 01:43:31.400
fundamental so if i share my screen and i go to where we landed on the frame we put

1509
01:43:32.140 --> 01:43:37.760
we put this for so for example with the notifications if we just poured it over

1510
01:43:38.080 --> 01:43:43.160
can't is that real or can we actually live with that what what that tells me is that there's a

1511
01:43:43.860 --> 01:43:50.120
there's a contradiction here this is not true this is not true that we are willing to

1512
01:43:50.120 --> 01:43:56.120
live with all these ui ux issues and we're just going to give ourselves a foundation to fix those

1513
01:43:57.320 --> 01:44:04.280
later um there might be there's a step along the way there right but the problem is that if we only

1514
01:44:04.280 --> 01:44:20.100
have a step on the way which is like we you know we're in a better place then we don't have a

1515
01:44:20.100 --> 01:44:25.980
and then i and then i think i think i have a direction for us here is it is it indeed true

1516
01:44:27.580 --> 01:44:32.020
that um there is a sense of time pressure like we want to be able to actually shut

1517
01:44:32.100 --> 01:44:39.180
we want we want to get we want to reach an end of this rewrite and like be in the new world

1518
01:44:39.180 --> 01:44:41.580
uh by a certain date

1519
01:44:49.200 --> 01:44:59.660
i don't know if the domain is as mission critical but i feel like it feels like this is like

1520
01:45:00.000 --> 01:45:09.380
This is like a necessary step to do this piece before we can kind of fix bigger problems or fix more pressing problems.

1521
01:45:10.160 --> 01:45:16.820
So in that sense, this is an urgent problem because it's holding us back from other issues.

1522
01:45:17.420 --> 01:45:21.220
What is a more pressing problem that this is holding you back from?

1523
01:45:25.540 --> 01:45:40.600
Well, I just like, yeah, more of like Luchin was saying, if we have this setup, we can then improve pieces at a time to not have to do all at once.

1524
01:45:40.680 --> 01:45:43.020
Or like having this as a gate was a good idea.

1525
01:45:43.020 --> 01:46:02.480
I mean, I think if we were going to go deeper on using like, we're kind of hitting like a point where we're trying to make the user experience faster and stuff in the app.

1526
01:46:02.660 --> 01:46:07.380
But it feels like we're running into issues where it just doesn't feel as fast as like the CMS, for example.

1527
01:46:08.680 --> 01:46:11.600
It's like a really big generalization.

1528
01:46:13.760 --> 01:46:18.820
But there's nothing like, I mean, there's lots of little things I think we could work on.

1529
01:46:18.940 --> 01:46:24.880
Like the go live experience of hosting a meeting is very slow in the current process.

1530
01:46:25.480 --> 01:46:26.460
Could we fix that in Flutter?

1531
01:46:26.640 --> 01:46:27.440
Yeah, for sure.

1532
01:46:27.440 --> 01:46:29.000
We could totally fix that in Flutter.

1533
01:46:29.040 --> 01:46:30.760
And that could be like a one week project.

1534
01:46:32.320 --> 01:46:40.120
But if we could fix it here, I think it would be a better experience overall to have it in the right framework.

1535
01:46:40.440 --> 01:46:44.760
You know, as we just started adding some AI moderation pieces to it.

1536
01:46:45.840 --> 01:46:50.220
So like the JavaScript piece has open AI integration.

1537
01:46:50.800 --> 01:46:51.460
The Flutter doesn't.

1538
01:46:51.720 --> 01:46:53.660
So like, can we add open AI to Flutter?

1539
01:46:53.760 --> 01:46:54.640
Of course we can.

1540
01:46:54.640 --> 01:47:00.340
But it kind of makes sense to do it just in one place and have it be simple, you know.

1541
01:47:02.020 --> 01:47:02.620
I don't know.

1542
01:47:02.620 --> 01:47:04.440
Is there anything else top of mind?

1543
01:47:05.740 --> 01:47:09.260
And also, you know, we're kind of building this stuff.

1544
01:47:09.400 --> 01:47:14.640
But also Macy's kind of on the front lines of supporting the users and getting asked the hundreds of questions.

1545
01:47:14.640 --> 01:47:16.580
And like, why can't this button do that?

1546
01:47:16.980 --> 01:47:19.280
And which dashboard should I look at?

1547
01:47:19.280 --> 01:47:20.000
And that type of thing.

1548
01:47:20.320 --> 01:47:21.780
If you have any thoughts as well.

1549
01:47:22.400 --> 01:47:22.940
I don't know.

1550
01:47:22.940 --> 01:47:34.220
So what I'm trying to suss out here is, and I think this is what you're, it's coming up that it's not as cut and dry as it might have sounded at first.

1551
01:47:34.640 --> 01:47:39.720
Are we really, really committed to getting off of Flutter for the web?

1552
01:47:43.060 --> 01:47:49.260
Is that really, like, is it like we all want to get off of Flutter web and like that's when we have succeeded?

1553
01:47:49.260 --> 01:47:51.240
Is it true?

1554
01:47:52.180 --> 01:47:54.980
Or is it that, look, there's a handful of different problems.

1555
01:47:55.500 --> 01:48:02.840
And maybe as we solve all of those things, it might make sense to migrate away from Flutter web.

1556
01:48:09.300 --> 01:48:10.520
Yes, I think.

1557
01:48:10.940 --> 01:48:11.820
I'm not sure.

1558
01:48:13.980 --> 01:48:14.740
Got it.

1559
01:48:14.900 --> 01:48:15.500
Okay.

1560
01:48:15.500 --> 01:48:20.000
So, I'm going to propose a completely different approach here.

1561
01:48:21.660 --> 01:48:25.840
Because I'm just, I'm not so, I keep trying to boil this down.

1562
01:48:25.880 --> 01:48:27.820
Ryan's going to be like, have you guys heard of Ruby on Rails?

1563
01:48:34.040 --> 01:48:35.640
We create a third app.

1564
01:48:36.260 --> 01:48:38.040
Wait, no, stick with me, a third app.

1565
01:48:38.960 --> 01:48:41.100
Hang with me for a second here.

1566
01:48:43.980 --> 01:48:48.300
No, I keep trying to boil this down to, like, the one thing that this is all about.

1567
01:48:48.460 --> 01:48:50.600
And I'm just not hearing that the alignment is there.

1568
01:48:50.760 --> 01:48:52.840
I'm hearing, like, yeah, but also what about this?

1569
01:48:52.900 --> 01:48:54.180
And yeah, but what about that?

1570
01:48:55.880 --> 01:49:00.360
So, my inclination then is, like, I just don't feel like we're getting there.

1571
01:49:00.520 --> 01:49:04.920
With, like, there's a unitary frame and we're going to do whatever it takes to get to the end of that.

1572
01:49:05.120 --> 01:49:08.540
Because, like, getting off of Flutter is the clear goal that we all want.

1573
01:49:09.540 --> 01:49:21.760
So, my inclination is to flip this around and say there's a basket of related projects here.

1574
01:49:22.860 --> 01:49:26.220
There are some different things that are causing experience issues.

1575
01:49:26.780 --> 01:49:29.440
And there are different ways to solve all of these things.

1576
01:49:30.100 --> 01:49:35.100
And some of them might entail a debate around whether we should be on Flutter or not.

1577
01:49:35.180 --> 01:49:36.040
Some of them might not.

1578
01:49:36.040 --> 01:49:40.880
And there's going to be a totally different space of tradeoffs for all of these things.

1579
01:49:41.220 --> 01:49:44.320
So, there is a project that has to do with notifications.

1580
01:49:46.000 --> 01:49:49.480
With push notifications across the two apps.

1581
01:49:49.540 --> 01:49:50.080
Is that right?

1582
01:49:50.800 --> 01:49:54.820
There's a family of issues here.

1583
01:49:57.520 --> 01:49:59.980
When Luchin brought up, do we...

1584
01:50:00.000 --> 01:50:03.180
Do we want to port this and, for example, with notifications,

1585
01:50:03.540 --> 01:50:06.080
like, we could port it, and then once we fix it,

1586
01:50:06.140 --> 01:50:08.800
then, you know, we, like, the thing is,

1587
01:50:09.340 --> 01:50:11.960
there's, here's a way to think about this.

1588
01:50:12.280 --> 01:50:17.040
There are two completely different universes of work

1589
01:50:17.040 --> 01:50:19.200
in a refactoring like this.

1590
01:50:20.020 --> 01:50:24.960
There's either a 100% port, no thinking,

1591
01:50:25.640 --> 01:50:29.380
literally no thinking, or there's rethinking.

1592
01:50:33.180 --> 01:50:35.420
And there's gonna be things that you might be able

1593
01:50:35.420 --> 01:50:37.160
to put in either category.

1594
01:50:40.260 --> 01:50:42.120
These are the things that you're gonna be able

1595
01:50:42.120 --> 01:50:44.760
to give the AI, and you can lump together,

1596
01:50:44.840 --> 01:50:46.700
and you can just do, you know?

1597
01:50:46.980 --> 01:50:49.260
These are the things where, if they're all different,

1598
01:50:50.100 --> 01:50:52.400
every one of these things, we're gonna wanna have

1599
01:50:52.400 --> 01:50:54.420
a little bit of framing around in order to understand,

1600
01:50:54.420 --> 01:50:56.040
well, how do we know when it's better?

1601
01:50:56.500 --> 01:50:57.460
How do we know when we're done?

1602
01:50:58.560 --> 01:50:59.840
Like, what is this thing?

1603
01:51:00.040 --> 01:51:00.680
What is it not?

1604
01:51:01.820 --> 01:51:05.300
So when I hear notifications,

1605
01:51:08.600 --> 01:51:10.460
it's not enough just to port it over.

1606
01:51:10.680 --> 01:51:13.000
It needs to be rethought, you know?

1607
01:51:13.000 --> 01:51:16.340
That's the place where my head goes into.

1608
01:51:16.880 --> 01:51:19.240
There's some project, there's some,

1609
01:51:19.300 --> 01:51:21.760
so these are candidate projects.

1610
01:51:21.780 --> 01:51:23.480
There's some project to formulate

1611
01:51:23.480 --> 01:51:24.900
where we actually would need to shape

1612
01:51:25.580 --> 01:51:27.260
what is wrong with notifications?

1613
01:51:27.740 --> 01:51:30.160
What specifically is bad about the experience?

1614
01:51:30.400 --> 01:51:31.620
How would we know if it was better?

1615
01:51:32.780 --> 01:51:34.840
I think maybe what's also missing,

1616
01:51:34.960 --> 01:51:35.780
and we're slowly getting caught,

1617
01:51:35.860 --> 01:51:37.760
is between Junauda, Lucian, and I,

1618
01:51:38.240 --> 01:51:42.900
we sort of have these framed loosely in our minds.

1619
01:51:43.200 --> 01:51:45.840
And so there's just this common thing of,

1620
01:51:46.100 --> 01:51:47.980
okay, this two-domain thing's killing us,

1621
01:51:48.040 --> 01:51:50.460
and this Flutter JavaScript thing's killing us

1622
01:51:50.460 --> 01:51:51.460
on all fronts.

1623
01:51:51.460 --> 01:51:53.740
So I feel like if we cleared it,

1624
01:51:53.840 --> 01:51:54.920
and we got that behind us,

1625
01:51:54.980 --> 01:51:56.200
then it would sort of free us up

1626
01:51:56.260 --> 01:51:58.480
to take on the first project.

1627
01:51:59.500 --> 01:52:01.680
Because I think the common thread,

1628
01:52:02.020 --> 01:52:03.500
the thing we just framed above,

1629
01:52:03.720 --> 01:52:08.980
I think will be pretty universal to the issue, to this.

1630
01:52:10.800 --> 01:52:14.480
And potentially, it's also the Flutter Firebase,

1631
01:52:15.180 --> 01:52:17.100
the Flutter single-domain thing,

1632
01:52:17.100 --> 01:52:18.500
and potentially a single database

1633
01:52:18.500 --> 01:52:20.480
would be the only other massive thing

1634
01:52:20.480 --> 01:52:22.560
that I think would click it into place.

1635
01:52:22.820 --> 01:52:26.180
And then, because that's like a secondary thing,

1636
01:52:26.300 --> 01:52:28.380
I don't want to go too deep on that.

1637
01:52:30.460 --> 01:52:32.380
Because we've kind of stopped thinking

1638
01:52:32.380 --> 01:52:34.100
about how to solve these other things,

1639
01:52:34.100 --> 01:52:37.080
because it feels like there's this fundamental root cause,

1640
01:52:37.420 --> 01:52:38.640
that if we solved this,

1641
01:52:38.680 --> 01:52:40.940
it kind of opens us up to a different way

1642
01:52:41.620 --> 01:52:42.940
of solving these other problems.

1643
01:52:43.040 --> 01:52:44.960
Or I think you probably were going to break it down

1644
01:52:44.960 --> 01:52:49.020
to basically get to that same logic, but try it out.

1645
01:52:49.580 --> 01:52:50.920
Well, here's where I'm struggling,

1646
01:52:51.160 --> 01:52:53.980
is when I say, is this really about,

1647
01:52:54.160 --> 01:52:55.380
you want to be able to shut off,

1648
01:52:55.540 --> 01:52:57.220
you really want to just get off of Flutter,

1649
01:52:57.340 --> 01:52:59.020
I didn't hear, like, yeah.

1650
01:53:01.100 --> 01:53:03.460
I mean, I would be good to get off of Flutter.

1651
01:53:04.420 --> 01:53:05.380
Okay, okay.

1652
01:53:05.560 --> 01:53:08.100
But I would, I'm one,

1653
01:53:09.120 --> 01:53:10.660
between Junauda and Looch and I,

1654
01:53:10.780 --> 01:53:13.260
we're the three people working on this at the moment,

1655
01:53:14.040 --> 01:53:18.020
so I have different motives of why that might be.

1656
01:53:19.020 --> 01:53:19.400
You know?

1657
01:53:21.120 --> 01:53:22.820
So do we have any,

1658
01:53:25.240 --> 01:53:25.880
because here's the thing,

1659
01:53:26.880 --> 01:53:28.740
if this is contentious,

1660
01:53:30.460 --> 01:53:33.620
if getting off of Flutter web is indeed contentious,

1661
01:53:34.480 --> 01:53:40.240
you know, then there's ways that we can work through this.

1662
01:53:40.240 --> 01:53:42.600
Like, we can look at these things one by one.

1663
01:53:43.160 --> 01:53:45.800
Okay, what would a better push notification experience

1664
01:53:45.800 --> 01:53:46.240
look like?

1665
01:53:46.280 --> 01:53:47.660
We can shape the version of that

1666
01:53:47.660 --> 01:53:49.060
where Flutter is the way to do it

1667
01:53:49.700 --> 01:53:51.940
versus going to JS is the way to do it.

1668
01:53:52.020 --> 01:53:53.640
What would a better workflow

1669
01:53:53.920 --> 01:53:56.060
when you have to do something in the admin

1670
01:53:56.640 --> 01:53:58.780
and you have to jump between these two places

1671
01:53:58.780 --> 01:54:00.080
for administrating something?

1672
01:54:00.480 --> 01:54:02.800
Like, we can go through all those things case by case

1673
01:54:02.800 --> 01:54:04.560
and come to alignment there,

1674
01:54:04.660 --> 01:54:06.200
but I don't know if that's necessary.

1675
01:54:06.600 --> 01:54:08.680
So is there anybody who's actually,

1676
01:54:10.240 --> 01:54:17.640
is anybody want to play, like, the...

1677
01:54:17.640 --> 01:54:20.080
Is there a pro-Flutter argument here?

1678
01:54:20.320 --> 01:54:22.160
Or can we, because if there is,

1679
01:54:22.360 --> 01:54:23.800
then let's hear it and see,

1680
01:54:24.220 --> 01:54:26.520
maybe there is a place where we can go into

1681
01:54:26.740 --> 01:54:30.280
to come to some conclusion about that.

1682
01:54:30.420 --> 01:54:31.880
There's something we could wrestle with,

1683
01:54:31.980 --> 01:54:33.420
but I didn't hear it yet.

1684
01:54:33.440 --> 01:54:35.320
So does anybody want to raise, like,

1685
01:54:36.840 --> 01:54:39.240
a hesitation about getting rid of Flutter

1686
01:54:39.360 --> 01:54:41.400
or a pro-Flutter argument?

1687
01:54:42.900 --> 01:54:44.340
I have one comment.

1688
01:54:44.500 --> 01:54:47.140
It's not exactly like pro-Flutter

1689
01:54:47.140 --> 01:54:49.560
because I think in general,

1690
01:54:49.900 --> 01:54:53.840
the experience of Flutter web is not great

1691
01:54:53.840 --> 01:54:56.120
because of a few different technical things.

1692
01:54:56.280 --> 01:54:57.600
It's possible to get it better,

1693
01:54:58.300 --> 01:54:59.980
but it's not great.

1694
01:55:00.000 --> 01:55:05.700
It's my only concern, I think, like looking at our, at our, uh, current

1695
01:55:05.800 --> 01:55:10.940
architecture, I started specifically during this meeting, I started to kind

1696
01:55:10.940 --> 01:55:18.960
of question, question myself if, uh, the easier approach wasn't, is not like to,

1697
01:55:19.460 --> 01:55:25.700
instead of, uh, moving the front end to the JavaScript part as our first step,

1698
01:55:25.700 --> 01:55:33.340
we kind of work on the, uh, one backend thing first, like first we fix the,

1699
01:55:33.540 --> 01:55:41.200
the not needing like Firestar and needing a SQL and like just having all

1700
01:55:41.200 --> 01:55:43.840
our front ends consuming from the same basis.

1701
01:55:43.940 --> 01:55:50.780
And then we, uh, can change the, the Flutter web, uh, to a JavaScript.

1702
01:55:50.780 --> 01:55:57.980
And I think that would be even easier because, uh, from the, from the current

1703
01:55:58.920 --> 01:56:04.400
standpoint, uh, we will not be like reducing the number of things that we

1704
01:56:04.400 --> 01:56:10.140
have to do maintenance for, uh, we will actually on the first moment we'll be

1705
01:56:10.140 --> 01:56:13.720
like increasing it, then we'll be able to decrease it.

1706
01:56:13.760 --> 01:56:18.140
But, uh, at the first moment we'll have more things to give maintenance for,

1707
01:56:18.140 --> 01:56:24.900
because we'll have the V1, V2 and the Flutter app for the Android and, uh,

1708
01:56:24.900 --> 01:56:26.980
iOS, so the code base will be larger.

1709
01:56:27.840 --> 01:56:33.680
Uh, and I don't know that what makes me feel like, Hey, is like moving out of

1710
01:56:33.680 --> 01:56:38.200
Flutter web, the first thing we need to do, I know that we need to do it, it

1711
01:56:38.200 --> 01:56:43.460
will be better, but, uh, it just like this discussion raised a question in me

1712
01:56:43.460 --> 01:56:48.380
of whether or not we should approach this as a first step, or if we should

1713
01:56:48.380 --> 01:56:53.580
look first thing, removing the Firestar dependency and removing the Firebase

1714
01:56:53.560 --> 01:56:58.360
dependency, and these will like reduce our surface of problems.

1715
01:56:58.680 --> 01:57:04.380
Let's say our area of possible problems by like removing one piece of our

1716
01:57:04.380 --> 01:57:08.820
infrastructure that currently is not needed anymore, let's say, because it

1717
01:57:08.820 --> 01:57:13.080
was needed in the past because it made it easier for us to work with Flutter

1718
01:57:13.080 --> 01:57:18.420
flow and this backend, which is Firestar, but now it's not needed because

1719
01:57:18.420 --> 01:57:23.560
we have the Flutter app and we can just work with our API and our own backend.

1720
01:57:24.780 --> 01:57:30.700
So, uh, I think that's the main thing why I was kind of not saying, Hey, let's

1721
01:57:30.700 --> 01:57:35.340
go with this Flutter migrate, let's go with this change now, because I was

1722
01:57:35.340 --> 01:57:40.160
thinking about like, maybe it's not the first thing that we should look at.

1723
01:57:42.580 --> 01:57:43.140
Yep.

1724
01:57:43.360 --> 01:57:47.940
So your, your proposal, I think, and you drew this a second ago, uh, somewhere,

1725
01:57:48.220 --> 01:57:52.840
right, I can remember where, before we got, but basically just pulling the

1726
01:57:52.840 --> 01:57:58.980
dependency of, um, Firestore out first, I think was, was what you're saying.

1727
01:57:59.380 --> 01:58:04.460
And you're not like basically move to move to, um, and the, and that like end

1728
01:58:04.540 --> 01:58:08.380
big goal that we would look for is that an outcome would be like, we're now

1729
01:58:08.380 --> 01:58:16.040
like pointing to a JavaScript node JS API instead of Firestore queries.

1730
01:58:16.780 --> 01:58:23.500
Like that would be a big, you know, aha moment of like moving that, um, so yeah.

1731
01:58:25.180 --> 01:58:28.000
And I do see the value of that.

1732
01:58:28.020 --> 01:58:32.340
I see the, I see the value, like it's kind of, you know, it's which one we do

1733
01:58:32.500 --> 01:58:34.840
first, you know, if this is, takes a couple of weeks and the other one takes

1734
01:58:34.840 --> 01:58:36.340
a couple of weeks, we kind of want to do both.

1735
01:58:36.340 --> 01:58:37.900
I think, I think everybody agrees.

1736
01:58:38.020 --> 01:58:38.640
We need to do both.

1737
01:58:40.400 --> 01:58:41.280
Uh, okay.

1738
01:58:41.380 --> 01:58:43.600
So you actually do agree on doing both.

1739
01:58:43.620 --> 01:58:45.280
Cause here, here's what I was hearing.

1740
01:58:45.540 --> 01:58:49.420
I thought, I thought it's kind of like, we, we need to move.

1741
01:58:49.480 --> 01:58:52.120
We need to make progress on this in a shorter period of time.

1742
01:58:52.300 --> 01:58:53.740
We don't know.

1743
01:58:54.920 --> 01:58:58.560
Like when we'll get to the further stages of this, but Bruce, am I hearing

1744
01:58:58.560 --> 01:59:02.220
that, like, these are, these things all need to happen and it's just a

1745
01:59:02.220 --> 01:59:04.060
question of like how we get through it.

1746
01:59:05.260 --> 01:59:06.700
I think, I think, yeah.

1747
01:59:06.700 --> 01:59:10.500
And we have talked, so we're, you know, there's a number of conversations

1748
01:59:10.500 --> 01:59:12.720
the three of us have had to, to this.

1749
01:59:12.800 --> 01:59:17.460
Like, I think we know back of our mind, like Firebase is, is that there's a, um,

1750
01:59:17.460 --> 01:59:20.580
time limit on it of how long we'll be using it.

1751
01:59:20.860 --> 01:59:26.180
Uh, and, and then, so we've, we've been working our way out of it.

1752
01:59:26.180 --> 01:59:31.680
Like we took, we made one horrible technical decision in 2022 and we're

1753
01:59:31.680 --> 01:59:33.040
paying for it three years later.

1754
01:59:33.040 --> 01:59:35.180
Like finally got rid of Flutter flow.

1755
01:59:35.340 --> 01:59:36.280
Now I got to get rid of Firebase.

1756
01:59:36.500 --> 01:59:37.240
Now we're getting rid of Flutter.

1757
01:59:37.480 --> 01:59:42.140
Like it's, it's a, it's three major projects to get work, work our way back.

1758
01:59:42.260 --> 01:59:45.140
But we, we learned a lot and we're able to sell stuff along the way.

1759
01:59:45.240 --> 01:59:46.420
So it, it, it kind of worked.

1760
01:59:47.360 --> 01:59:53.540
But, um, the that's, those have been our, our, like, at least we sort of pulled

1761
01:59:53.540 --> 01:59:54.700
the Flutter flow piece of this.

1762
01:59:54.700 --> 01:59:57.460
Cause that was adding even more complexity to it.

1763
01:59:57.460 --> 01:59:58.860
And that was something we did earlier this year.

1764
01:59:58.860 --> 01:59:59.660
So to me, like.

1765
02:00:00.000 --> 02:00:05.180
Cleaning up this tech debt piece could kind of set us up for things in the future.

1766
02:00:05.320 --> 02:00:13.060
But it is, it's, it's getting rid of the, the fire, Firebase stuff, Firestore stuff at the end of the day.

1767
02:00:13.060 --> 02:00:29.880
And then finally moving off of, and you know, if we want to be specific, I think it is, let's use the words like we kind of throw Firebase and Firestore around, but really it's all of Firebase, I think needs to be out because we also using Firebase for hosting, for example, which if we moved to the JavaScript app, it would just be all hosted in one domain.

1768
02:00:31.000 --> 02:00:43.720
So, and it's, there's no other problems for the clients for anything on those pieces. It's just, it's not like it costs us a lot of money to be on Firebase or anything. It's all those stuff. It's all relatively cheap.

1769
02:00:43.720 --> 02:01:01.060
But I think it is, you know, which I can kind of see Gennady's point, like, I think it could be more immediate value for us to move off of the database, the Firebase database stuff.

1770
02:01:03.120 --> 02:01:05.260
There could be value in that.

1771
02:01:05.880 --> 02:01:07.260
But I think, yeah.

1772
02:01:08.600 --> 02:01:12.880
So can I, can I, can I do a quick, a quick update?

1773
02:01:14.460 --> 02:01:29.340
Can we, can we simplify and say that no matter what, this is all more a question about how and what order and how to tackle this, but like at the end of the day, everybody actually wants to get off of Firebase and everybody wants to get off of Flutter web. Is that right?

1774
02:01:30.740 --> 02:01:32.420
Yeah, I think so.

1775
02:01:32.420 --> 02:01:32.680
Okay.

1776
02:01:33.900 --> 02:01:39.260
That makes things easier. Then we can just flip over to the solution side here.

1777
02:01:40.040 --> 02:01:42.080
We can flip over to the supply side.

1778
02:01:42.080 --> 02:02:03.160
And so the, the thing, the thing that, that, so let's say that you've got, and you've, you've got a, you've got a sense that like it should be possible to do all of this inside of, do you have kind of a maximum appetite for this, Bruce?

1779
02:02:03.160 --> 02:02:14.520
Like if we, if we lump this all together and we say, look, we don't know what order we're doing it in yet. We don't know exactly what it all entails, but there's some version of this where we are going to port everything we need to port.

1780
02:02:14.620 --> 02:02:17.980
And there's going to be a couple things that need some rethinking, like notifications.

1781
02:02:18.820 --> 02:02:25.940
Is there a, do you have a, do you have a kind of a goal in mind in terms of time of like when you're through all of this?

1782
02:02:27.680 --> 02:02:40.380
I mean, other than, you know, 2025 would be great, but as far as date goes, but appetite, you know, it probably realistically we can, we can probably put, you know, 10 weeks all in towards it.

1783
02:02:40.400 --> 02:02:43.220
How are we going to break that up into projects?

1784
02:02:43.660 --> 02:02:46.800
So if that would feel, yeah, that would feel good to you.

1785
02:02:46.800 --> 02:02:47.480
That's fantastic.

1786
02:02:47.600 --> 02:02:47.980
Okay.

1787
02:02:47.980 --> 02:02:48.760
This is great.

1788
02:02:49.040 --> 02:02:49.480
Okay.

1789
02:02:49.800 --> 02:02:50.280
Very good.

1790
02:02:50.620 --> 02:02:52.500
So here's what we don't want to do.

1791
02:02:53.700 --> 02:02:59.980
We don't want to take on, here's a failure mode that I think we want to try to avoid.

1792
02:03:00.700 --> 02:03:12.260
We don't want to start working on something like migrate off Flutter web, which is a horizontal definition of the work, you know, and, and then we are, we're moving a bunch of things that we know how to port over.

1793
02:03:12.820 --> 02:03:17.420
And then you hit notifications and you're like, oh, what do we, how do we do this?

1794
02:03:17.420 --> 02:03:22.120
And now you're actually in a different project that has all of its own problems.

1795
02:03:22.900 --> 02:03:22.900


1796
02:03:23.240 --> 02:03:25.260
You know, and then same thing with Firebase.

1797
02:03:25.500 --> 02:03:29.760
We don't want to be migrating away from Firebase.

1798
02:03:29.840 --> 02:03:37.580
And then all of a sudden they're like, oh, there's this weird thing where now we have to rethink the way that we do this, like where we store this information and then it affects this other flow.

1799
02:03:37.580 --> 02:03:38.620
And like, what are we doing here?

1800
02:03:38.620 --> 02:03:52.860
You know, so the, my first thought about how to get some clarity on this is to actually map out the existing functionality.

1801
02:03:52.860 --> 02:04:08.500
So basically what I would want to be seeing here, we're fully now switching to the supply side, to the, to the solution side is the current new app universe.

1802
02:04:11.940 --> 02:04:20.820
I want to literally see a breadboard of everything that's in the Flutter web that's powered by Firebase.

1803
02:04:22.860 --> 02:04:25.140
So like, and in terms of workflows.

1804
02:04:26.320 --> 02:04:41.220
So what we were, we were trying to see if this could start to become clear by kind of talking through this architecturally, you know, where we just like, we're piling everything that's inside of the app to try and see like if there were some major seams or something like that.

1805
02:04:41.240 --> 02:04:43.240
And I feel like we didn't get anywhere there.

1806
02:04:43.240 --> 02:04:58.240
And what I think, knowing that we want to get to the end of this, but we don't understand which roadblocks are in the way and what to slice apart, what I would be looking for here is picture something like this.

1807
02:04:58.420 --> 02:04:58.700
Like.

1808
02:05:01.440 --> 02:05:06.980
Actually I'm just going to grab a fat breadboard from something else so that I can just copy and

1809
02:05:06.980 --> 02:05:14.940
paste and give you a preview of what this would look like. So if we had a breadboard

1810
02:05:16.180 --> 02:05:21.680
that spelled out more or less all the major flows, not every tiny, tiny, minute detail,

1811
02:05:22.240 --> 02:05:33.760
like all the major flows, then what we could do is we could take our pen and we could say,

1812
02:05:33.840 --> 02:05:39.620
let me get rid of this, this, and this. So let's say these are all the different feature areas

1813
02:05:39.620 --> 02:05:43.180
in the Flutter app and that are also implemented with Firebase, some of them,

1814
02:05:43.460 --> 02:05:48.180
and we could be saying, oh this thing here, we don't have to rethink, we can just port.

1815
02:05:49.100 --> 02:05:53.900
This thing here, we totally have to rethink, you know what I mean? This thing here doesn't even

1816
02:05:53.920 --> 02:05:57.960
use Firebase, this is just Flutter and it's going to be exactly the way it currently behaves.

1817
02:05:58.660 --> 02:06:04.460
This thing we have to totally rethink, you know what I mean? And then so what we can get out of

1818
02:06:05.260 --> 02:06:12.000
that is different scopes of work, some of which are going to feel more like projects,

1819
02:06:13.340 --> 02:06:17.200
and some of which are going to feel more like stuff we just have to get through. Yeah Lucien?

1820
02:06:18.640 --> 02:06:27.960
Yeah, so definitely I get the, like one thing is like the monster of Firebase is definitely

1821
02:06:28.060 --> 02:06:35.680
community feed for sure. Everything else we have, like for example, like we got a bunch of stuff

1822
02:06:35.680 --> 02:06:43.220
that like was built just in Flutter, just with like Firebase and has no equivalent in MySQL,

1823
02:06:43.220 --> 02:06:49.060
for example, reactions to posts. So for those, we can just like create a new table, create new

1824
02:06:49.940 --> 02:06:54.300
columns, and it's just additive, but like community feed is the only thing.

1825
02:06:54.300 --> 02:06:56.120
The feed is the core of it, because reactions are-

1826
02:06:56.120 --> 02:07:04.140
Yeah, and it's like a core piece for sure. It is the only thing that there is like community posts

1827
02:07:04.400 --> 02:07:10.380
in MySQL, and there's different, completely different like community posts in Firebase,

1828
02:07:10.380 --> 02:07:15.580
so we gotta like think how like bring them together, and if we fix that, I think we'll be

1829
02:07:16.340 --> 02:07:21.020
just fine to like remove. There'll be like a bunch of work, like creating new API routes, and like

1830
02:07:21.600 --> 02:07:24.900
yeah, it's nothing like unknown as far as I can tell.

1831
02:07:26.680 --> 02:07:29.260
Okay, so we have community feed as one example.

1832
02:07:30.660 --> 02:07:35.460
We have reactions to posts. I heard the push notification flows.

1833
02:07:36.800 --> 02:07:45.740
Yeah, and then the comments as well, and now this, it's funny because we kind of did a version of

1834
02:07:45.880 --> 02:07:51.240
this exercise of like let's pull everything apart, and we said, okay, really the chat needs to be

1835
02:07:51.240 --> 02:07:56.920
common between the two platforms, so we have a tool now that like, well, basically we moved

1836
02:07:56.920 --> 02:08:02.460
everything to where there was chat that didn't exist in SQL and didn't exist in Firebase, and

1837
02:08:02.460 --> 02:08:08.980
they are more, they match essentially, so it's the same. So there's a bunch of things downstream

1838
02:08:08.980 --> 02:08:13.960
from community feed. For example, like reaction posts, they exist only on Firebase, but there are

1839
02:08:13.960 --> 02:08:20.220
reactions to community feed that's in Firebase only, and same thing for comments, like some

1840
02:08:20.220 --> 02:08:24.460
comments are unlike, there's like a different tab in the group. There's like replay tab,

1841
02:08:24.860 --> 02:08:29.700
so that's like content that exists in MySQL, and it's like synced. Because you're right,

1842
02:08:29.700 --> 02:08:33.200
the post comments don't exist, correct? That's right, we did escape that.

1843
02:08:33.780 --> 02:08:38.460
So I think if we fix like community feed, like we figure out how to like

1844
02:08:38.460 --> 02:08:42.400
put it together, and all the things that are downstream, like reaction, then okay, we can

1845
02:08:42.840 --> 02:08:48.820
create now in JavaScript in the API, and like comments, we can finish migrating the rest of the

1846
02:08:49.020 --> 02:09:02.340
commons. So what I would be looking at here is in terms of planning the monster.

1847
02:09:04.060 --> 02:09:10.360
So I think what's happened is we've shifted from this is one project that we understand that

1848
02:09:10.360 --> 02:09:16.140
has like a single, you know, if there was a version of this where it's like we're not going

1849
02:09:16.140 --> 02:09:19.880
rethink anything, and we're just going to do this migration and power through, then maybe it could

1850
02:09:19.880 --> 02:09:27.180
be a single project, but what I'm hearing is actually this is a monster. The overall budget

1851
02:09:27.180 --> 02:09:35.160
for the monster is 10 weeks, and what I mean by monster is that it's many different projects that

1852
02:09:35.160 --> 02:09:40.900
all have to require thinking through of like what is actually better and worse for this,

1853
02:09:40.920 --> 02:09:45.380
and what's the new version versus the old version, and stuff like that. So the way that I'd be

1854
02:09:45.380 --> 02:09:50.360
looking at this is it's almost like when we're shaping a project, but instead we're actually

1855
02:09:50.360 --> 02:09:57.020
shaping a bundle of projects, and what we're trying to ask ourselves is do we get to a place

1856
02:09:57.020 --> 02:09:59.980
where we believe that each of these projects still falls within?

1857
02:10:00.000 --> 02:10:06.460
in 10 weeks, you know what I mean?

1858
02:10:06.580 --> 02:10:08.300
And then we can kind of sequence

1859
02:10:08.540 --> 02:10:10.640
each of those projects one by one.

1860
02:10:11.840 --> 02:10:14.280
And the difference here is that

1861
02:10:14.400 --> 02:10:16.260
what we would like to be able to do,

1862
02:10:16.380 --> 02:10:18.140
and I think Lucian, this is, if I understood right,

1863
02:10:18.180 --> 02:10:19.180
this is what you're describing.

1864
02:10:19.800 --> 02:10:23.620
Every one of these, whatever these different things are,

1865
02:10:24.280 --> 02:10:28.500
I mean, we could, it's, I think this is a different,

1866
02:10:30.120 --> 02:10:32.560
session than, I think this is a session for you guys,

1867
02:10:32.620 --> 02:10:34.520
because we, I mean, we have 45 minutes left

1868
02:10:34.520 --> 02:10:36.140
so we can do what we can do.

1869
02:10:38.860 --> 02:10:41.260
I would be looking at, I would really be looking

1870
02:10:41.260 --> 02:10:47.200
at having a clear flow of, a breadboard of the whole app

1871
02:10:47.200 --> 02:10:50.000
so that I could understand where to slice, you know?

1872
02:10:50.580 --> 02:10:59.980
And that way, because this picture of where to slice

1873
02:11:00.000 --> 02:11:04.980
when I do a slice like this, these are vertical slices.

1874
02:11:06.100 --> 02:11:09.200
And it's the verticality that lets us actually get

1875
02:11:09.200 --> 02:11:12.140
to a place where we're feeling done with something, you know?

1876
02:11:12.260 --> 02:11:14.760
And what we don't want to do is like, as I said,

1877
02:11:14.940 --> 02:11:17.400
like have like this, like migrate away from Firebase

1878
02:11:17.400 --> 02:11:19.220
and it's a never ending string of things

1879
02:11:20.360 --> 02:11:23.640
versus if community feed is one thing

1880
02:11:23.640 --> 02:11:25.460
and then you can vertically slice and say,

1881
02:11:25.460 --> 02:11:29.900
that is now, we are now in the new world for community feed.

1882
02:11:30.380 --> 02:11:32.300
And then we do the same thing with reactions,

1883
02:11:32.540 --> 02:11:35.120
with comments, comments, with push notifications, you know?

1884
02:11:35.480 --> 02:11:36.800
Then you're gonna get to a place

1885
02:11:36.800 --> 02:11:39.440
where there's still gonna be stuff maybe left in Firebase

1886
02:11:39.440 --> 02:11:41.480
because there's different areas of the app

1887
02:11:41.480 --> 02:11:42.860
that are still relying on it.

1888
02:11:43.620 --> 02:11:46.600
But the surface area of Firebase is shrinking

1889
02:11:46.600 --> 02:11:48.060
as you do each vertical slice.

1890
02:11:48.320 --> 02:11:48.920
Does that make sense?

1891
02:11:50.120 --> 02:11:53.080
And I think, can we, as we go through that,

1892
02:11:53.600 --> 02:11:56.040
these are shippable like pieces.

1893
02:11:56.220 --> 02:11:57.600
So like if we just did the community feed,

1894
02:11:57.740 --> 02:11:59.880
we could potentially move that API over.

1895
02:12:00.380 --> 02:12:03.320
And then reactions so that we delete

1896
02:12:03.320 --> 02:12:07.180
the Firebase dependency for community feed, right?

1897
02:12:07.900 --> 02:12:09.120
Would be like a.

1898
02:12:09.480 --> 02:12:09.780
Yes.

1899
02:12:10.740 --> 02:12:13.220
I mean, the thing is, if you do this,

1900
02:12:13.540 --> 02:12:15.120
if you do these things vertically

1901
02:12:15.120 --> 02:12:16.660
and you can ship them independently,

1902
02:12:17.140 --> 02:12:18.640
you won't get into trouble.

1903
02:12:21.740 --> 02:12:23.800
That's the, you know what I mean?

1904
02:12:23.860 --> 02:12:25.420
Like you won't get lost with it.

1905
02:12:25.620 --> 02:12:26.980
I think we've clearly proven we can get into trouble

1906
02:12:27.260 --> 02:12:29.140
for the last two hours.

1907
02:12:30.260 --> 02:12:32.620
But now we're doing it a better way,

1908
02:12:33.160 --> 02:12:35.100
thanks to all the things.

1909
02:12:38.120 --> 02:12:41.960
So what I, when we come into here,

1910
02:12:42.380 --> 02:12:45.440
what I feel like, so what I expect

1911
02:12:46.240 --> 02:12:48.620
after a breadboarding exercise is that

1912
02:12:48.620 --> 02:12:52.080
I expect a whole bunch of detail.

1913
02:12:52.540 --> 02:12:53.180
You know what I mean?

1914
02:12:53.320 --> 02:12:54.740
To fill in here.

1915
02:12:55.160 --> 02:12:57.160
We're like, and then this, you know what I mean?

1916
02:12:57.220 --> 02:12:59.500
And this goes here and then I connect to this.

1917
02:12:59.600 --> 02:13:00.120
And you know what I mean?

1918
02:13:00.140 --> 02:13:02.420
Like where there's all of these details everywhere

1919
02:13:02.620 --> 02:13:05.560
and this feeling like I'm at 10,000 feet.

1920
02:13:07.740 --> 02:13:10.980
And the thing that made me a little nervous

1921
02:13:10.980 --> 02:13:16.500
when we started was when I look at one of these things,

1922
02:13:16.500 --> 02:13:20.440
I just kind of feel like if there's decisions to make here,

1923
02:13:20.740 --> 02:13:22.980
if there's rethinking here, you know,

1924
02:13:23.040 --> 02:13:25.340
I kind of feel like I'm already down in a corner

1925
02:13:25.680 --> 02:13:28.260
and like I don't have enough room to really like

1926
02:13:28.260 --> 02:13:30.540
kind of problem solve and understand like what is this

1927
02:13:30.540 --> 02:13:32.800
and really where does it start and where does it end?

1928
02:13:33.200 --> 02:13:34.140
You know what I mean?

1929
02:13:37.180 --> 02:13:42.640
Versus if community, if you get to a place

1930
02:13:42.640 --> 02:13:47.600
where we have a set of vertical slices

1931
02:13:48.540 --> 02:13:51.440
and maybe also some of these are gonna be even internal too.

1932
02:13:51.500 --> 02:13:54.460
It might be that one of these has two slices inside of it.

1933
02:13:54.520 --> 02:13:54.960
You know what I mean?

1934
02:13:55.000 --> 02:13:56.740
There could be different stages of these things.

1935
02:13:58.000 --> 02:14:00.500
I wanna get to a place where like every one of these things,

1936
02:14:00.620 --> 02:14:04.860
if this thing is one week and there's a one week piece

1937
02:14:04.860 --> 02:14:06.600
of this and there's a three week piece of this

1938
02:14:06.600 --> 02:14:08.260
or a two week piece of this,

1939
02:14:09.360 --> 02:14:12.060
every one of these things actually has its own set of scopes.

1940
02:14:12.860 --> 02:14:13.360
Do you know what I mean?

1941
02:14:13.620 --> 02:14:15.960
Like every one of these things has like a little bit of like

1942
02:14:15.960 --> 02:14:18.680
as you said, you actually did kind of this framing around it

1943
02:14:18.680 --> 02:14:20.880
and you did this work to understand it.

1944
02:14:20.940 --> 02:14:22.800
So what we're trying to do is kind of look at

1945
02:14:22.800 --> 02:14:24.600
how does that all link together?

1946
02:14:26.220 --> 02:14:27.420
Does that make sense?

1947
02:14:31.680 --> 02:14:32.080
Yes.

1948
02:14:38.260 --> 02:14:41.620
And also one interesting thing of like looking

1949
02:14:41.620 --> 02:14:48.180
at more vertical form is that we'll be releasing

1950
02:14:48.720 --> 02:14:50.660
more value as we go.

1951
02:14:50.940 --> 02:14:54.360
Because when we fix like the community part,

1952
02:14:54.500 --> 02:14:56.880
it will be fixed in across all the front end.

1953
02:14:57.300 --> 02:14:59.660
So the overall user experience will be.

1954
02:15:00.000 --> 02:15:03.540
better in a lot of different fronts, let's say.

1955
02:15:05.360 --> 02:15:12.140
Yes, I think that also reminds me like what I tried to do and what didn't work when I've

1956
02:15:12.140 --> 02:15:18.720
tried to come to some overall frame, this decision about like we're not fixing the UX problem or we

1957
02:15:18.720 --> 02:15:22.960
are fixing the UX problem, it's going to be different for every one of these slices.

1958
02:15:24.280 --> 02:15:25.140
Mm-hmm.

1959
02:15:25.460 --> 02:15:35.420
You know, so like each slice is going to have this,

1960
02:15:38.160 --> 02:15:46.040
like these different answers to do we change UX, right? Do we change the back end?

1961
02:15:48.000 --> 02:15:56.040
Like, what do we rethink or not? Like this is going to be different for each slice.

1962
02:15:59.000 --> 02:16:03.420
And then the thing, one of the things that you're going to be doing is just like this should be

1963
02:16:03.420 --> 02:16:10.220
familiar to you like from the scoping exercise is there's going to be some of these things,

1964
02:16:10.940 --> 02:16:16.020
like for example, the push notification flow where you're going to flag that early on,

1965
02:16:16.020 --> 02:16:23.340
you know what I mean? As this is something that's going to require thinking, you know,

1966
02:16:23.340 --> 02:16:29.560
so we're going to want to kind of do more work to sort of shape it as a separate project versus

1967
02:16:29.560 --> 02:16:35.100
you might have some of these things that feel a little bit like it's just a task, task, task,

1968
02:16:35.100 --> 02:16:37.719
and you already know what it is. It's basically already downhill.

1969
02:16:46.219 --> 02:16:50.820
I think Bruce says he's listening.

1970
02:16:52.100 --> 02:16:54.820
Oh no, I'm here. Sorry, I've just been off camera for a minute.

1971
02:16:55.180 --> 02:17:00.139
Oh good, okay. Yep. Does that, Bruce, does that resonate? Like that's a big difference,

1972
02:17:00.200 --> 02:17:04.920
right? Between making a policy for the entire effort versus like, okay, we're going to make

1973
02:17:04.920 --> 02:17:13.559
a slice-by-slice decision. I think that's fair, yeah. Those should, if we can hit the UX thing

1974
02:17:13.559 --> 02:17:19.959
or back and change and we're clear about what we're doing or not, I think that'll help

1975
02:17:20.740 --> 02:17:26.840
create clarity. I do think that more than half of everything we're talking about is what Lucian

1976
02:17:26.840 --> 02:17:32.980
brought up here with the community feed. Like that's not like 20% of it, like that is the

1977
02:17:32.980 --> 02:17:37.840
community feed. It just happens to have reactions, it happens to have comments, it happens to have

1978
02:17:37.840 --> 02:17:44.100
chat, like it has all these pieces connected to the feed. We kind of solve for that. We're more

1979
02:17:44.100 --> 02:17:50.559
than halfway there if we can solve this piece. So if we were to go back and breadboard this or put

1980
02:17:50.900 --> 02:17:56.320
the rest of the architecture together, this is going to be more than half of it will just be

1981
02:17:56.320 --> 02:18:02.840
in this community feed bucket. It's just that there's lots of little things that you've drawn

1982
02:18:02.840 --> 02:18:08.719
here that we would have to make sure we account for. And it's because community feed isn't

1983
02:18:08.719 --> 02:18:14.080
moved over, the push notifications can't happen, the chat can't moderate comments. So it's like

1984
02:18:14.080 --> 02:18:20.680
it's kind of the boulder in there. And I don't think the user experience has to change at all.

1985
02:18:20.700 --> 02:18:28.000
It's one of the easy ones actually. If we could keep the same, I think that one is,

1986
02:18:28.000 --> 02:18:36.879
we could get a huge value there. Incidentally, I created a task and this was the pre-Ryan era

1987
02:18:36.900 --> 02:18:45.520
of shaping. I came back and reused it, but in the chat I put the task we created for

1988
02:18:45.520 --> 02:18:51.299
the community feed for shaping that up. It's really on the purely back-end,

1989
02:18:51.299 --> 02:19:00.559
taking technical decisions about that. Sorry, how do I get chat? Okay, I'll click on that.

1990
02:19:01.139 --> 02:19:06.920
Maybe not purely back-end because it touches the dashboard as well, Bruce. I happen to not

1991
02:19:06.920 --> 02:19:19.379
have access to that. Just a second. Everyone with link can view. Try now.

1992
02:19:21.820 --> 02:19:31.620
There you go. Replace broadcasts with tribe content. Yeah, to add to it, it is a community

1993
02:19:31.620 --> 02:19:39.100
feed, but a developer three years ago named it broadcasts and it doesn't matter why. Let's not

1994
02:19:39.100 --> 02:19:46.879
confuse Ryan even more. It's called broadcast, yeah. Yeah, technically it's called broadcast,

1995
02:19:46.879 --> 02:19:58.960
but it is the feed. It should be called posts. Yeah, I feel unconfused finally.

1996
02:20:00.000 --> 02:20:06.300
I'm proud to say, uh, I, so, so the, the, I think, you know, maybe this,

1997
02:20:06.480 --> 02:20:10.000
in the end, I'm kind of curious, Lucian, maybe in the end, what happened is we

1998
02:20:10.000 --> 02:20:15.000
just kind of put what was already in your heads into maybe just a, a slightly

1999
02:20:15.000 --> 02:20:20.380
different form here, you know, where there is this overall, there's, there's

2000
02:20:20.380 --> 02:20:29.880
this overall, um, um, migration from Flutter and Firebase, there's this over,

2001
02:20:29.880 --> 02:20:34.120
this is the monster, right, is, is, is this whole thing.

2002
02:20:34.460 --> 02:20:40.620
And then there are projects inside of this, and one of them is community

2003
02:20:41.300 --> 02:20:47.940
feed and community feed is, has some framing around it now that we've like,

2004
02:20:48.000 --> 02:20:50.840
I mean, I think you already knew that, but which is like, no, you exchange

2005
02:20:50.840 --> 02:20:52.280
needed, you know what I mean?

2006
02:20:52.500 --> 02:20:53.620
Just implementation.

2007
02:20:54.260 --> 02:20:54.820
Right.

2008
02:20:54.820 --> 02:21:00.900
Um, and then there are then these other things that I'm not sure what they are,

2009
02:21:00.940 --> 02:21:04.300
but like, like, like we said, like notifications, you know what I mean?

2010
02:21:05.200 --> 02:21:09.140
Like, um, things that are downstream from community feed that you can't, that

2011
02:21:09.140 --> 02:21:13.660
you're carving out from the first, from this project, whatever this is.

2012
02:21:13.960 --> 02:21:14.400
Right.

2013
02:21:14.860 --> 02:21:18.400
Um, and then there's, uh, each one of these things.

2014
02:21:18.580 --> 02:21:23.440
So, so, so I, I, yeah, I think now I'm just repeating myself, but if, if, if

2015
02:21:23.440 --> 02:21:27.640
this whole thing is a 10 week box, right.

2016
02:21:27.960 --> 02:21:33.280
So then what we get to is, is we are in a little bit of a new territory of what

2017
02:21:33.280 --> 02:21:37.260
does it look like to, to not just be doing appetite for a single project, but

2018
02:21:37.260 --> 02:21:42.440
to kind of have this macro appetite, you know, um, and then, uh, what we want

2019
02:21:42.440 --> 02:21:46.180
to have is for sure that there's enough wiggle room that we are, we want to be

2020
02:21:46.180 --> 02:21:49.220
hitting the big things and acknowledging the things that require

2021
02:21:49.640 --> 02:21:51.260
rethinking like notifications.

2022
02:21:51.260 --> 02:21:54.980
Is there anything else other than notifications that's going to require

2023
02:21:55.100 --> 02:22:01.040
like different, like changes in workflow changes in UX, not just

2024
02:22:01.040 --> 02:22:02.540
literally porting it over.

2025
02:22:04.940 --> 02:22:07.940
Would the domain change over?

2026
02:22:08.340 --> 02:22:11.840
Like, cause we're the actual hosting is we're talking about switching the domain

2027
02:22:11.840 --> 02:22:18.260
over and that's one step of getting away from Flutter, but it could like, obviously

2028
02:22:18.260 --> 02:22:19.520
that'd be the final step.

2029
02:22:19.880 --> 02:22:23.420
And there's probably a lot of little cleanup things between those two.

2030
02:22:23.480 --> 02:22:23.620
Yeah.

2031
02:22:25.100 --> 02:22:29.760
There's a one thing that like, I'm not sure how it ports over, which is like

2032
02:22:30.760 --> 02:22:37.460
admin management, because in the JS side, we have like the, the dashboard and in

2033
02:22:37.460 --> 02:22:41.980
Flutter, we have like another, like, it's like group settings type thing or like.

2034
02:22:42.820 --> 02:22:46.620
No, I think those are pretty much this, those would be fine to just move over.

2035
02:22:46.620 --> 02:22:47.300
Cause it's okay.

2036
02:22:47.300 --> 02:22:49.760
Then it's yeah.

2037
02:22:50.280 --> 02:22:53.240
The admin, if like, if we dealt with the community feed, we could, those are, I

2038
02:22:53.240 --> 02:22:54.320
think we're like placeholders.

2039
02:22:54.900 --> 02:22:56.040
I know what you're thinking of.

2040
02:22:56.180 --> 02:22:58.140
There was like a whole bunch of settings on that screen.

2041
02:22:58.260 --> 02:23:02.540
Like I think badges is in there, but that, I don't know if anyone's actually

2042
02:23:02.540 --> 02:23:06.000
using that so we can, we can just, some of that stuff can just be deleted.

2043
02:23:08.340 --> 02:23:11.160
Some of it was very prototype, like.

2044
02:23:16.320 --> 02:23:19.860
Should we just dive into the monster of community feed?

2045
02:23:20.660 --> 02:23:24.920
Cause to me, it seems like pretty clear, like community feed and then rest of

2046
02:23:24.920 --> 02:23:30.740
Firebase into API and then Flutter web to JS web, like the other things that

2047
02:23:30.740 --> 02:23:32.780
order makes sense in that orders.

2048
02:23:34.540 --> 02:23:35.060
Yeah.

2049
02:23:36.120 --> 02:23:40.440
Um, uh, how does that play out in just, in terms of vertical slices?

2050
02:23:40.820 --> 02:23:41.140
So community feed is, is, is, is, is, is, is, is, is, is, is, is, is, is, is, is,

2051
02:23:41.140 --> 02:23:44.520
is a vertical slice, but then the other things I didn't understand kind

2052
02:23:44.520 --> 02:23:46.320
of where the boundaries of the slices are.

2053
02:23:46.460 --> 02:23:50.200
We've got Firebase into like API.

2054
02:23:51.220 --> 02:23:55.980
Like everything that like the, like the later app is read, reading from

2055
02:23:55.980 --> 02:23:58.480
Firebase instead, like make API routes for that.

2056
02:24:02.540 --> 02:24:05.360
Um, uh, yeah.

2057
02:24:05.360 --> 02:24:05.900
Okay.

2058
02:24:06.080 --> 02:24:10.880
When I, when I look at community feed, I know how to draw the lines in terms

2059
02:24:10.880 --> 02:24:12.940
of the UX all the way down to the backend.

2060
02:24:13.460 --> 02:24:18.440
Same thing with notifications, roughly, even though we didn't really unpack that

2061
02:24:18.920 --> 02:24:22.760
yet, this to me sounds like it's not a vertical slice, it sounds to me

2062
02:24:22.760 --> 02:24:24.140
like a purely backend thing.

2063
02:24:24.440 --> 02:24:32.640
So are, what are there things which are, um, which are, uh, user facing or

2064
02:24:32.640 --> 02:24:33.220
do you know what I mean?

2065
02:24:33.220 --> 02:24:36.080
Like where there is something that you can interact with that's

2066
02:24:36.080 --> 02:24:37.960
covered, that's included in this.

2067
02:24:39.220 --> 02:24:40.380
What are these things?

2068
02:24:40.380 --> 02:24:44.420
Like event handlers, you know, like you click on reactions, it's writing to

2069
02:24:44.420 --> 02:24:48.920
Firebase and just replace that with like writing to API, but I think no, like

2070
02:24:48.960 --> 02:24:55.200
behavior change, it'll just find all references to Firebase, like create

2071
02:24:55.480 --> 02:24:57.140
models, whatever, what Ryan's saying.

2072
02:24:57.380 --> 02:24:59.820
And what I understood was like community feed, we would be.

2073
02:25:00.000 --> 02:25:01.040
taking all

2074
02:25:01.700 --> 02:25:09.020
We would be dealing with the firebase issue when we deal with community feed like anything that's touching that chat comments reactions

2075
02:25:10.260 --> 02:25:15.460
Like get off of firebase and for community feed then kind of move to the next one like notifications

2076
02:25:15.460 --> 02:25:22.120
Can we get off of firebase for notifications and fix the UX and do it? Is that right? That's what I'm thinking

2077
02:25:22.080 --> 02:25:28.800
Yes, yeah, and and Lucian were you thinking of things just now that are not that are not community feed and they're also not notifications

2078
02:25:31.180 --> 02:25:36.720
To me all the other things are really straightforward because they're additive they're just like it doesn't exist in my sequel

2079
02:25:36.720 --> 02:25:42.440
So there's no decision. It's just you can just like no thinking just like porting from like firebase to API

2080
02:25:42.760 --> 02:25:47.700
so this is the fire put them all in the in the same bucket like and it just the size of the bucket can be

2081
02:25:47.900 --> 02:25:51.560
Like I'm not entirely sure but to me they're all in the same category

2082
02:25:52.140 --> 02:25:55.980
So here's the thing. I think that there's a danger there

2083
02:25:55.980 --> 02:26:00.060
Which is that we don't know what other dependencies those things have I

2084
02:26:01.720 --> 02:26:03.660
Just don't know what's in the box

2085
02:26:05.360 --> 02:26:12.440
For example it notifications is notification something where you think you could just swap out the fire stop using firebase and

2086
02:26:13.040 --> 02:26:16.960
And swap it to a different end point like I

2087
02:26:17.560 --> 02:26:22.700
So what I want to do is say I'm actually just gonna insist on it what are these other things

2088
02:26:22.700 --> 02:26:29.040
You know, this is is this this is a this other any off the top of your head that you could point to from

2089
02:26:29.040 --> 02:26:32.840
Of from a vertical standpoint and knowing that it's not a comprehensive yet

2090
02:26:32.920 --> 02:26:39.340
Like let's say you might have to grep the code base or ask cloud code to like find me everything that touches the firebase API

2091
02:26:39.340 --> 02:26:43.160
Do you know what I mean? But like if we were to list those

2092
02:26:43.660 --> 02:26:45.280
What are some examples?

2093
02:26:49.280 --> 02:26:51.060
Reactions we mentioned already

2094
02:26:52.300 --> 02:26:55.060
Comments that touch community feed

2095
02:26:57.860 --> 02:27:01.180
I think that we have other comments were already migrated

2096
02:27:01.800 --> 02:27:04.280
What else we have I can pull up the I mean

2097
02:27:04.760 --> 02:27:10.900
Because Ryan I think one of the things is like community feed we could move that to the off of firebase

2098
02:27:10.900 --> 02:27:13.940
we can move it off the web into them into the

2099
02:27:15.460 --> 02:27:19.080
JavaScript web so we can do everything for community feed which will touch a lot of things

2100
02:27:19.080 --> 02:27:21.080
but there is probably a project here to

2101
02:27:22.100 --> 02:27:22.620
pull

2102
02:27:23.900 --> 02:27:26.280
The things that aren't related to community feed

2103
02:27:26.280 --> 02:27:26.580
Yeah

2104
02:27:26.580 --> 02:27:31.500
Those have to also be built because we can't switch the domain over let's say until everything is done

2105
02:27:31.500 --> 02:27:38.660
What is that? What is everything is kind of what you're wanting to exactly and I just I want to define that vertically instead of horizontally

2106
02:27:40.220 --> 02:27:40.740
so

2107
02:27:42.080 --> 02:27:43.120
So courses

2108
02:27:43.120 --> 02:27:45.940
It's easy, but it needs to be written down

2109
02:27:46.140 --> 02:27:51.400
So we have courses that exist in the UI on the Flutter side would need to be recreated

2110
02:27:51.940 --> 02:27:54.840
and right now the course is all read right out of

2111
02:27:56.720 --> 02:28:01.260
Firebase as well. So there's quite a bit to do there even though yes courses do exist in SQL

2112
02:28:01.500 --> 02:28:07.420
There's just not like marking as something is completed. There's just there's certain things. We just we aren't connected yet

2113
02:28:08.400 --> 02:28:15.100
To that whole user but again no decisions on UX no, you know, all that can be just as is just move it over

2114
02:28:17.040 --> 02:28:19.540
Direct messaging is a big old hairy thing

2115
02:28:19.540 --> 02:28:23.780
We don't want to probably touch if we can avoid it and I'm oh, it's so big not big

2116
02:28:23.840 --> 02:28:26.780
But it's one of those things we could slice out of the ten weeks

2117
02:28:27.440 --> 02:28:33.040
Now this is a good example of what vertical slicing exposes. So we just found something that might

2118
02:28:33.420 --> 02:28:35.900
Technically qualify as this but what we're excluding

2119
02:28:36.620 --> 02:28:38.340
Mm-hmm

2120
02:28:41.380 --> 02:28:45.940
Because there's only one customer that uses it and they're fine with it kind of as is

2121
02:28:48.580 --> 02:28:50.800
It's just like it we could do it after this

2122
02:28:50.800 --> 02:28:55.180
It's just a good place to like it's a good place to draw a line for a project to not

2123
02:28:55.760 --> 02:28:59.600
Introduce that I'm clicking through each screen while we're talking. I don't want to miss anything

2124
02:29:00.560 --> 02:29:02.120
mm-hmm, but

2125
02:29:03.160 --> 02:29:04.220
honest, yeah the

2126
02:29:05.500 --> 02:29:09.580
I'm clicking through all your settings screens illusion. And none of these are being used anymore

2127
02:29:09.580 --> 02:29:13.180
So there's some cleanup stuff here that it's good to know that there's nothing there

2128
02:29:19.860 --> 02:29:20.300
I

2129
02:29:20.500 --> 02:29:24.760
Mean, there's lots of little things. I don't know how small but like when someone joins a group

2130
02:29:25.120 --> 02:29:29.640
Currently, we're on the JavaScript side. Let's say they like enroll in a group or they join a group

2131
02:29:30.960 --> 02:29:32.740
that flow from like

2132
02:29:32.740 --> 02:29:36.600
Paying for a group and then getting into the group right now

2133
02:29:36.600 --> 02:29:39.340
It's like they're jumping from the JavaScript back to the flutter

2134
02:29:39.920 --> 02:29:44.140
Or they're in flutter and they want to join a group they jump back to JavaScript pay for it and come back

2135
02:29:44.720 --> 02:29:50.460
So there's that flow will change if we're all in one and we see two just little things like that

2136
02:29:51.360 --> 02:29:58.540
the password reset flow will actually stay the same doesn't need to be moved or anything, but

2137
02:29:59.500 --> 02:29:59.980
Yeah

2138
02:30:00.000 --> 02:30:01.720
That's one of the things that will just be fixed

2139
02:30:01.720 --> 02:30:04.180
once we fix the domain.

2140
02:30:06.360 --> 02:30:08.840
So that's kind of included in the scope of this?

2141
02:30:09.060 --> 02:30:12.240
Yeah, it's kind of like automatically will get fixed.

2142
02:30:16.960 --> 02:30:19.100
And I'm looking here on-

2143
02:30:19.100 --> 02:30:22.540
The week and the to-do list associated with the week.

2144
02:30:22.840 --> 02:30:25.580
Oh my gosh, that's a good example.

2145
02:30:25.920 --> 02:30:26.480
So here's the thing.

2146
02:30:26.740 --> 02:30:27.600
So this is the thing,

2147
02:30:27.600 --> 02:30:30.180
is because these are much bigger clients,

2148
02:30:30.560 --> 02:30:32.300
they kind of use the app for different things.

2149
02:30:32.420 --> 02:30:33.900
And this is the point.

2150
02:30:34.180 --> 02:30:36.880
So this DM feature, there's only one client does that.

2151
02:30:37.040 --> 02:30:37.800
Maybe we do that in the future.

2152
02:30:39.240 --> 02:30:40.900
We can call it, and what do we call it today?

2153
02:30:40.960 --> 02:30:42.280
The today page or the week?

2154
02:30:42.280 --> 02:30:43.060
Is it the week view?

2155
02:30:43.540 --> 02:30:44.620
I don't know what-

2156
02:30:44.620 --> 02:30:46.540
Yeah, it's the week view.

2157
02:30:47.940 --> 02:30:50.320
Yeah, it's its own thing.

2158
02:30:50.500 --> 02:30:53.240
Only one client and one group uses it

2159
02:30:54.000 --> 02:30:55.840
and we totally can move it.

2160
02:30:55.840 --> 02:30:56.660
It's not hard,

2161
02:30:56.720 --> 02:31:00.800
but there's no immediate value to moving them right now.

2162
02:31:02.280 --> 02:31:04.420
And if I can just point out as well,

2163
02:31:04.420 --> 02:31:06.540
what I like about the slicing idea here

2164
02:31:06.540 --> 02:31:08.660
is if we fix the community feed

2165
02:31:08.660 --> 02:31:10.300
and we did just that project,

2166
02:31:11.160 --> 02:31:13.360
the two clients that are over there on the right,

2167
02:31:13.840 --> 02:31:14.720
those are two different clients,

2168
02:31:14.920 --> 02:31:16.680
one for DM, a different one for week view.

2169
02:31:16.940 --> 02:31:18.660
They would both get the benefit

2170
02:31:18.660 --> 02:31:21.780
of us moving off the community feed immediately.

2171
02:31:22.380 --> 02:31:24.120
So they would actually get all that value.

2172
02:31:24.680 --> 02:31:26.080
They just wouldn't necessarily,

2173
02:31:26.120 --> 02:31:29.100
we don't have to switch the domain right off at the top

2174
02:31:29.140 --> 02:31:32.880
to get this over because we could,

2175
02:31:32.980 --> 02:31:34.680
and maybe we'd need to scope this in or out.

2176
02:31:34.700 --> 02:31:36.500
But I'm assuming when we fix community feed,

2177
02:31:36.580 --> 02:31:38.200
we're also updating the Flutter app

2178
02:31:38.660 --> 02:31:41.740
to now look at the API and not to Firebase.

2179
02:31:43.260 --> 02:31:46.480
Yeah, and that's why I think it's useful for us

2180
02:31:46.480 --> 02:31:51.520
to kind of break that Firebase to API in vertical slices

2181
02:31:51.520 --> 02:31:55.240
because that's, because I think if it doesn't exist

2182
02:31:55.240 --> 02:31:57.700
on the SQL in your MySQL,

2183
02:31:57.960 --> 02:32:00.100
it will be kind of easy to just create

2184
02:32:00.100 --> 02:32:01.660
and create new API routes.

2185
02:32:01.700 --> 02:32:04.460
But the work will be on the Flutter side

2186
02:32:04.460 --> 02:32:07.940
of replacing the current usage of Firebase

2187
02:32:08.380 --> 02:32:09.900
with the new API.

2188
02:32:10.400 --> 02:32:12.840
So if we break this down in smaller pieces,

2189
02:32:12.840 --> 02:32:16.180
we can kind of deliver value in the Flutter app.

2190
02:32:16.400 --> 02:32:18.160
Like, so for instance,

2191
02:32:18.160 --> 02:32:21.860
we just kind of did a rework of the feed

2192
02:32:21.860 --> 02:32:23.400
in terms of code base,

2193
02:32:23.640 --> 02:32:25.040
which is now a lot easier to,

2194
02:32:25.320 --> 02:32:26.740
it's a lot faster, it's smoother.

2195
02:32:27.200 --> 02:32:30.700
And if we add on top of this,

2196
02:32:31.160 --> 02:32:32.440
the changes to our backend,

2197
02:32:32.700 --> 02:32:35.160
then our whole feed, our whole community feed,

2198
02:32:35.500 --> 02:32:38.720
we'll have a new frontend code and a new backend code.

2199
02:32:38.840 --> 02:32:41.720
And we can kind of do these small slices

2200
02:32:42.120 --> 02:32:44.540
for all the other parts of the app

2201
02:32:44.540 --> 02:32:47.260
because currently a lot of our components

2202
02:32:47.260 --> 02:32:50.400
are the ones that are generated by Flutter flow.

2203
02:32:51.040 --> 02:32:55.280
And these are like, overall, they are poorly built.

2204
02:32:55.660 --> 02:32:57.520
So we can improve a lot of that.

2205
02:32:57.880 --> 02:32:59.260
And these can be connected

2206
02:32:59.440 --> 02:33:02.220
with this vertical slice in terms,

2207
02:33:02.420 --> 02:33:06.020
hey, if we are going to connect with a whole new API

2208
02:33:06.120 --> 02:33:08.660
and we are going to replace the Firestore,

2209
02:33:08.900 --> 02:33:11.280
then we can take this opportunity to,

2210
02:33:12.160 --> 02:33:17.140
instead of, let's say, using a infinite pagination pub

2211
02:33:17.260 --> 02:33:20.920
that we were using, that's like two to three years ago,

2212
02:33:21.080 --> 02:33:23.540
we can create our own component

2213
02:33:23.580 --> 02:33:25.980
and connect with our backend

2214
02:33:25.980 --> 02:33:28.140
and overall the experience will be smoother.

2215
02:33:28.480 --> 02:33:32.080
And we'll be moving out of Firebase

2216
02:33:32.080 --> 02:33:35.200
at the same time that we are, let's say,

2217
02:33:35.200 --> 02:33:37.660
improving the code base in the Flutter app

2218
02:33:37.660 --> 02:33:41.640
so we can think of it in vertical terms,

2219
02:33:41.680 --> 02:33:43.780
like we are moving the Firestore

2220
02:33:43.780 --> 02:33:48.340
and we also are improving the connections

2221
02:33:48.460 --> 02:33:51.960
and the way we handle the connection with our backend

2222
02:33:51.960 --> 02:33:54.980
in on the front-end side in the Flutter app.

2223
02:33:56.360 --> 02:33:59.600
So, and this is not even touching like the V2

2224
02:33:59.600 --> 02:34:02.700
on the JavaScript part yet.

2225
02:34:02.840 --> 02:34:05.100
And it doesn't even need to

2226
02:34:05.100 --> 02:34:06.940
for it to create value for the user.

2227
02:34:07.040 --> 02:34:09.840
It can be seen as a different part,

2228
02:34:09.920 --> 02:34:12.320
like the V2 on the JavaScript

2229
02:34:13.000 --> 02:34:14.580
can be seen as a different thing

2230
02:34:14.580 --> 02:34:16.140
that can be done independently

2231
02:34:16.360 --> 02:34:20.360
from the changes on the Firestore Firebase to API

2232
02:34:20.360 --> 02:34:22.280
and the changes on the Flutter

2233
02:34:22.840 --> 02:34:27.040
to connect with this new API instead of the Firebase.

2234
02:34:29.960 --> 02:34:31.340
Yeah, that raises an interesting,

2235
02:34:31.820 --> 02:34:34.880
that's interesting when I hear about V1 and V2 again

2236
02:34:34.880 --> 02:34:36.760
and this original code split.

2237
02:34:36.940 --> 02:34:39.980
I mean, I find things like that much easier to understand

2238
02:34:39.980 --> 02:34:41.660
if I'm inside of a vertical slice

2239
02:34:41.660 --> 02:34:43.440
that we're trying to accomplish and ship.

2240
02:34:44.300 --> 02:34:47.440
And I think that's also part of what made it challenging

2241
02:34:47.440 --> 02:34:49.280
in the beginning of the conversation here

2242
02:34:49.280 --> 02:34:52.900
is because there were these things like this V1, V2

2243
02:34:53.080 --> 02:34:55.280
and I think because they're horizontal,

2244
02:34:55.480 --> 02:34:57.700
it's just hard to get your hands around where do they stop

2245
02:34:57.700 --> 02:34:58.740
and what do they really mean?

2246
02:35:00.000 --> 02:35:03.900
you still retain all of the optionality

2247
02:35:03.900 --> 02:35:05.720
to approach any one of these things

2248
02:35:05.720 --> 02:35:07.780
how you want to approach it, you know what I mean?

2249
02:35:07.780 --> 02:35:09.200
With a code split or whatever,

2250
02:35:09.340 --> 02:35:12.000
but it's much more clear kind of why that's happening

2251
02:35:12.000 --> 02:35:13.340
and like what the payoff is

2252
02:35:13.340 --> 02:35:15.480
and like when you get to release something.

2253
02:35:17.400 --> 02:35:19.920
Yeah, I think we want to jump into the,

2254
02:35:20.440 --> 02:35:22.260
because we talked about this community feed thing

2255
02:35:22.380 --> 02:35:23.860
like months, months ago,

2256
02:35:24.640 --> 02:35:26.540
but we didn't want to jump into that,

2257
02:35:26.540 --> 02:35:28.060
I think without a holistic plan,

2258
02:35:28.060 --> 02:35:29.900
because there was this feeling of like,

2259
02:35:29.900 --> 02:35:32.140
okay, if we're committing to this overall migration

2260
02:35:32.180 --> 02:35:33.680
flutter to Firebase, cool, we got it,

2261
02:35:33.680 --> 02:35:35.320
that's the big overarching vision,

2262
02:35:35.540 --> 02:35:38.020
then all these other things kind of fit into that

2263
02:35:38.180 --> 02:35:40.920
in case we're like, if we make that one decision,

2264
02:35:41.160 --> 02:35:42.620
then it kind of feel, you know,

2265
02:35:42.680 --> 02:35:45.060
now it helps us make these other decisions faster

2266
02:35:45.140 --> 02:35:47.220
because we didn't want to go and invest all this time

2267
02:35:47.560 --> 02:35:49.780
moving community feed to the SQL in case we're like,

2268
02:35:49.840 --> 02:35:51.840
well, what if actually Firebase is the way,

2269
02:35:51.920 --> 02:35:53.800
you know, like you don't want to flip flop.

2270
02:35:54.240 --> 02:35:56.040
So now that we've made that big decision,

2271
02:35:56.040 --> 02:35:58.980
that kind of clarifies the rest of the things downfield.

2272
02:36:00.440 --> 02:36:02.320
And I'm going to comment something else

2273
02:36:02.320 --> 02:36:04.440
just because I love my black hat thinking.

2274
02:36:05.640 --> 02:36:09.080
Well, first of all, yes, yes, yes to everything

2275
02:36:09.260 --> 02:36:10.140
was fantastic.

2276
02:36:10.160 --> 02:36:12.440
I was approaching from like the 10,000 foot view

2277
02:36:12.440 --> 02:36:14.140
of like horizontal slice, you know,

2278
02:36:14.140 --> 02:36:16.200
we're going to remove all of these things.

2279
02:36:16.200 --> 02:36:18.060
I think vertical slice so much better,

2280
02:36:19.160 --> 02:36:22.880
but that kind of compromises are, and I think it's fine.

2281
02:36:24.740 --> 02:36:27.020
The kind of point in time that we're like,

2282
02:36:27.060 --> 02:36:28.960
we just switch completely off Firebase.

2283
02:36:28.960 --> 02:36:30.020
Cause if we say like, okay,

2284
02:36:30.080 --> 02:36:33.520
weak view is probably fine to like keep it somewhere.

2285
02:36:33.520 --> 02:36:35.580
So we will like keep Firebase

2286
02:36:36.640 --> 02:36:38.700
for like indefinite amount of time.

2287
02:36:38.820 --> 02:36:41.120
So I just wanted to mention that, which I think it's fine.

2288
02:36:41.660 --> 02:36:42.580
That's a really good point.

2289
02:36:42.700 --> 02:36:44.740
You know, I often think about that.

2290
02:36:44.880 --> 02:36:46.720
Like when we imagine like,

2291
02:36:48.580 --> 02:36:51.200
you know, like when we imagine a borderline with something

2292
02:36:51.200 --> 02:36:52.760
and we say like, you know,

2293
02:36:53.480 --> 02:36:57.000
like we're going to reach the end of the flutter world

2294
02:36:57.000 --> 02:36:58.540
and the end of the Firebase world,

2295
02:36:58.540 --> 02:36:59.900
there's going to be this hard cutoff,

2296
02:36:59.940 --> 02:37:04.080
but like usually in real framing and shaping,

2297
02:37:04.120 --> 02:37:06.500
you always ended with something that looks like this,

2298
02:37:07.100 --> 02:37:09.000
like a borderline that looks like this.

2299
02:37:09.020 --> 02:37:09.480
You know what I mean?

2300
02:37:09.480 --> 02:37:11.860
It's like, it's like a, almost like a, like,

2301
02:37:11.860 --> 02:37:13.780
like between real countries or States.

2302
02:37:13.780 --> 02:37:15.180
It's always like jagged.

2303
02:37:15.560 --> 02:37:16.120
Do you know what I mean?

2304
02:37:16.600 --> 02:37:19.800
Because what happened was you actually basically said like,

2305
02:37:21.460 --> 02:37:25.000
we gave ourselves a more specific definition

2306
02:37:25.000 --> 02:37:27.160
of what it means to be done with this thing,

2307
02:37:27.960 --> 02:37:31.060
which is that like all of these clients, except for,

2308
02:37:31.200 --> 02:37:33.660
you know, this is only two clients, right?

2309
02:37:34.200 --> 02:37:35.620
Who are here.

2310
02:37:37.040 --> 02:37:41.060
But the cost of getting all the way to this perfect shape

2311
02:37:41.060 --> 02:37:43.460
for to get to these two clients was what?

2312
02:37:43.780 --> 02:37:45.040
Like quite of a dish, there's a lot of,

2313
02:37:45.040 --> 02:37:46.260
there's a lot of work here, right?

2314
02:37:46.260 --> 02:37:47.120
For these two things.

2315
02:37:48.840 --> 02:37:49.420
Yep.

2316
02:37:49.880 --> 02:37:53.080
So, so this is a, this is a case where you're like, okay,

2317
02:37:53.080 --> 02:37:54.640
we're willing to make this compromise.

2318
02:37:54.640 --> 02:37:56.240
And then it basically means that like,

2319
02:37:56.320 --> 02:38:01.080
if the before was completely stop using Firebase,

2320
02:38:01.760 --> 02:38:02.880
you know what I mean?

2321
02:38:04.420 --> 02:38:08.040
The after, which is a little bit crispier

2322
02:38:11.940 --> 02:38:15.640
is all features for all customers,

2323
02:38:16.100 --> 02:38:18.200
except, you know what I mean?

2324
02:38:19.540 --> 02:38:24.320
These two clients are off of Flutter Firebase,

2325
02:38:24.860 --> 02:38:25.400
you know what I mean?

2326
02:38:25.820 --> 02:38:28.140
And this actually gets you what you wanted

2327
02:38:28.140 --> 02:38:31.480
when we were framing around like, we, you know what I mean?

2328
02:38:31.500 --> 02:38:33.160
Like, we're going to be able to develop new features.

2329
02:38:33.360 --> 02:38:34.620
It's the basis for the future

2330
02:38:34.620 --> 02:38:36.000
into the next five years, blah, blah, blah.

2331
02:38:36.100 --> 02:38:38.460
Like we get all those benefits here, you know,

2332
02:38:38.460 --> 02:38:41.300
but we don't have to spend the very,

2333
02:38:41.560 --> 02:38:43.140
we don't have that last mile problem

2334
02:38:43.140 --> 02:38:44.840
where we spend most of our resources

2335
02:38:44.840 --> 02:38:46.700
on the last mile that we don't actually need.

2336
02:38:48.440 --> 02:38:50.160
Yeah, that's helpful.

2337
02:38:50.160 --> 02:38:52.360
One comment that's interesting

2338
02:38:53.380 --> 02:38:56.300
because it's, it feels a lot safer

2339
02:38:56.380 --> 02:38:59.900
like doing this approach of like vertical slicing

2340
02:38:59.900 --> 02:39:04.960
and kind of accepting that some stuff

2341
02:39:04.960 --> 02:39:07.540
will be left behind at least for a while,

2342
02:39:08.320 --> 02:39:12.780
then like kind of trying to have the psychological relief

2343
02:39:12.780 --> 02:39:15.540
of like abandoning the old stuff

2344
02:39:15.540 --> 02:39:16.840
and moving to the new one

2345
02:39:16.840 --> 02:39:19.320
and having like this hard to cut points to do it.

2346
02:39:19.340 --> 02:39:23.480
It like feels that you have more relief at that point,

2347
02:39:23.480 --> 02:39:25.640
but actually it feels a lot safer

2348
02:39:25.900 --> 02:39:29.560
to have like this more flexible border

2349
02:39:29.560 --> 02:39:34.780
and to do things a little bit like smaller steps

2350
02:39:34.780 --> 02:39:36.040
in vertical slices,

2351
02:39:36.600 --> 02:39:42.260
because then we don't have to like compromise too much

2352
02:39:42.260 --> 02:39:44.560
and we can do things a little bit more gradually,

2353
02:39:45.200 --> 02:39:48.100
which I think is very important in our structure

2354
02:39:48.100 --> 02:39:50.480
that has like big customers.

2355
02:39:50.720 --> 02:39:54.100
Like we don't have like a lot of small customers.

2356
02:39:54.500 --> 02:39:57.820
We have fewer customers that are bigger

2357
02:39:57.820 --> 02:39:59.980
and we deal with them and they have.

2358
02:40:00.000 --> 02:40:06.240
lot of customers. So in this structure, it feels a lot safer if we can like, let's say almost

2359
02:40:06.860 --> 02:40:13.920
micromanagement the status of each customer and how and which customer has access to each thing.

2360
02:40:14.600 --> 02:40:19.780
So, and this structure of vertical slicing things allow us to have this flexibility

2361
02:40:20.660 --> 02:40:28.540
more than like, hey, let's do this. And like, because our original goal was to have like this

2362
02:40:29.260 --> 02:40:37.140
initial web JavaScript version that will be kind of allowing a few customers to access at the same

2363
02:40:37.140 --> 02:40:44.640
point. And looking at this now, I feel like we almost can do it more gradually and select more

2364
02:40:44.640 --> 02:40:51.500
in more detail, which customer will have access to each feature and at which point. So yeah,

2365
02:40:51.500 --> 02:40:57.260
I feel like safer when looking at this solution. That's right. Whenever you slice vertically,

2366
02:40:57.260 --> 02:41:05.040
you get a bunch of things for free. You get separated QA moments. You get separated rollout

2367
02:41:05.040 --> 02:41:09.780
moments. You get the ability to ramp up or feature flag things. You know what I mean?

2368
02:41:09.820 --> 02:41:14.020
Like there's things, there's a lot of that stuff in terms of deployment and testing and stuff that

2369
02:41:14.060 --> 02:41:18.980
it's not just this giant pile of a million things that all have to happen at the same time.

2370
02:41:20.260 --> 02:41:25.460
Perfect. That's good. And I think if we were to go and like, we've been doing a lot of framing

2371
02:41:25.460 --> 02:41:31.860
and shaping and breadboarding on the small. So I think if we like tomorrow to go and sit and do the

2372
02:41:31.860 --> 02:41:35.420
community feed, I feel like I don't feel any hesitation. Like I feel like we could knock

2373
02:41:35.420 --> 02:41:40.660
that out in two hours and have a really clear to do's on that. Cause it doesn't feel confusing.

2374
02:41:40.760 --> 02:41:45.400
I think this was helpful. Cause it's kind of like the, like zooming back, taking a step back from

2375
02:41:45.400 --> 02:41:50.020
all that. Cause now community feels like, okay, yeah, we could totally frame that, you know,

2376
02:41:50.020 --> 02:41:53.960
just like if a client was coming to us, we can do that piece very well.

2377
02:41:53.960 --> 02:41:58.580
Yeah. This is cool. It's kind of like you're using, you're using all of your skills that

2378
02:41:58.600 --> 02:42:03.640
you've been improving. You, cause you can, you can do those loops on each of these things now,

2379
02:42:03.760 --> 02:42:08.080
right? Like each of these things, you know how to do. And, and this was a little bit like this,

2380
02:42:08.140 --> 02:42:12.980
I think especially emphasizing this vertical slicing of how to look at this from the big picture.

2381
02:42:14.480 --> 02:42:19.660
Yeah. Yeah. I think this is a very helpful exercise. I know it's, you know, if you get into

2382
02:42:19.660 --> 02:42:22.640
the beginning, we were like kind of makes sense in the middle of it. You're like, I don't think

2383
02:42:22.640 --> 02:42:27.120
this is going anywhere. And then at the last 30 minutes, we're like, aha, we figured it all out.

2384
02:42:29.460 --> 02:42:34.320
It's part of it is like seeing your workflow. And we ran into some of this, even we started

2385
02:42:34.320 --> 02:42:40.780
getting deep with it and there wasn't yelling at each other. It was very respectful, but it was,

2386
02:42:40.980 --> 02:42:47.700
it can get tough. Yes. So between of some certain things, cause we were trying to drill down to

2387
02:42:47.700 --> 02:42:52.620
this. So I think it was helpful to see like how we would have, how we could have gone through it a

2388
02:42:52.620 --> 02:42:56.220
of it is also just doing it a second time and having to explain it all a second time.

2389
02:42:56.860 --> 02:43:00.840
For sure. We've kind of built out some neural pathways of how we have thought about it in the

2390
02:43:00.660 --> 02:43:08.420
past. But so this was helpful because it's, it, we, we haven't done anything on any of these

2391
02:43:09.000 --> 02:43:13.020
little boxes yet because we didn't really have like a whole picture. And so we're kind of just

2392
02:43:13.020 --> 02:43:17.220
in this like, quote unquote, like maintenance mode where we're just patching and fixing things.

2393
02:43:17.860 --> 02:43:23.140
I think this will be a good unlock at least for me, as far as, and I can see,

2394
02:43:23.760 --> 02:43:27.740
you know, if, if the community is four or six, it's a pretty, it could be a bigger project.

2395
02:43:27.960 --> 02:43:32.180
There's so many features that will come out of that, that are client facing that we would be

2396
02:43:32.180 --> 02:43:37.200
able to announce and say, okay, now that's nice and search your posts, you know, in the dashboard,

2397
02:43:37.200 --> 02:43:41.560
for example, because it's such an easy screen to create when all the data's right there,

2398
02:43:41.860 --> 02:43:47.040
but that was such a hard thing to do in the past. So, and then the one thing that's a little new is

2399
02:43:47.040 --> 02:43:51.880
when you're framing and shaping this, you know, I guess it's actually like everything else. Like

2400
02:43:51.880 --> 02:43:56.560
you have your appetite in mind, right? And, but your appetite is also fitting into this puzzle,

2401
02:43:56.700 --> 02:44:01.060
right? Of like, oh, the more weeks I put into the list, the more I take out of the 10.

2402
02:44:02.300 --> 02:44:07.380
And what about notifications or what about, do you know what I mean? Some other things that

2403
02:44:07.380 --> 02:44:11.500
might need thinking. So that's also just good to have in mind in terms of your sequencing.

2404
02:44:12.720 --> 02:44:16.100
There's certain things that you're going to want to do sooner because there's a technical

2405
02:44:16.100 --> 02:44:20.680
dependency, because as you said, like you need to migrate community feed first for technical

2406
02:44:20.800 --> 02:44:26.980
reasons. And then there it's, it's just like with scopes, it's going to be helpful to think about

2407
02:44:27.720 --> 02:44:31.940
some of these things we might, what are the things that if we ran out of time, we would be okay with

2408
02:44:31.940 --> 02:44:35.680
the fact that we didn't get there. And what are the things that if we ran out of time, we would

2409
02:44:35.680 --> 02:44:42.020
feel bad about that. So we should actually sequence those earlier. Yep. That's helpful.

2410
02:44:42.020 --> 02:44:48.160
Yeah. And that's just one comment because it's very interesting because

2411
02:44:49.460 --> 02:44:57.380
this, I think it's the first time that we are kind of having a project of projects,

2412
02:44:57.960 --> 02:44:59.980
like officially in some sense.

2413
02:45:00.000 --> 02:45:07.300
because one of our customers, which is Hackstack, basically it's exactly this. We have like this big

2414
02:45:07.300 --> 02:45:14.160
giant thing that needs to get done within like let's say one year and we are trying to vertically

2415
02:45:14.160 --> 02:45:21.760
slice it and but we haven't been doing like I almost say let's say unconscious because we

2416
02:45:21.760 --> 02:45:29.600
haven't like specifically thought about this way and but looking at it I feel like I almost want

2417
02:45:29.600 --> 02:45:37.060
to do a similar process in this sense like having this big box with all the smaller pieces and we

2418
02:45:37.060 --> 02:45:43.600
know that they need to be shaped but they need to also fit in this bigger picture of what's being

2419
02:45:43.600 --> 02:45:52.100
built and it's very interesting how we can kind of adapt that smaller appetite but to a bigger

2420
02:45:52.100 --> 02:45:59.480
project that has like almost one year of appetite but has this specific outcome in mind that

2421
02:45:59.480 --> 02:46:07.140
needs to be broken down into various things that already have delivery value by itself

2422
02:46:07.160 --> 02:46:14.960
so it's very useful in terms of thinking of our projects that are bigger and that will have

2423
02:46:14.960 --> 02:46:24.840
longer timelines like this one. Yeah, the pattern you'll see is we did some framing, there's some

2424
02:46:24.840 --> 02:46:29.460
framing around the 10-week appetite of like what do we get at the end of the 10 weeks which is

2425
02:46:29.460 --> 02:46:38.180
this and there was you guys work very clear on like why now is the time like where that to do

2426
02:46:38.180 --> 02:46:43.200
that you know and then there's going to be a little bit like frame shape on a per project

2427
02:46:43.200 --> 02:46:47.100
basis inside of that too so the same thing will happen with the client we're like they want this

2428
02:46:47.100 --> 02:46:52.440
monster thing if it's a project of projects then what's going to help is there's going to be that

2429
02:46:52.440 --> 02:46:57.020
first conversation with the client is going to be more at the like why are you willing to spend the

2430
02:46:57.020 --> 02:47:02.760
six months on this or the 10 weeks or whatever you know what do we have to get to at the end

2431
02:47:02.760 --> 02:47:08.340
and then there's the slicing inside of that of what are the major pieces that are going to get

2432
02:47:08.340 --> 02:47:15.580
us there and what's out also you know that's. Yeah, it's starting to make sense of like how

2433
02:47:15.640 --> 02:47:23.260
recursive this process really is. Totally, that's a great frame and then you're gonna frame the

2434
02:47:23.430 --> 02:47:29.230
scopes and then you're gonna just keep going. It's really like you wherever you are you can kind of use

2435
02:47:29.230 --> 02:47:34.250
it because this so basically what we ended up doing was actually we ended up we did we did

2436
02:47:34.250 --> 02:47:41.310
some framing and then this is actually kind of the shape right at this level at this monster level

2437
02:47:41.310 --> 02:47:47.390
you know and then and then you dive in and uh and and and then you you rinse and repeat yeah

2438
02:47:47.390 --> 02:47:54.450
that's good yeah and we started doing a little bit like uh john with x tech but i think this is a

2439
02:47:54.470 --> 02:47:58.990
better this is a better language around it because we started to look at just the time of okay it's

2440
02:47:59.650 --> 02:48:04.250
august they want to have something done by december there's just that much that is our

2441
02:48:04.250 --> 02:48:09.310
budget we have you know 12 weeks to work with of or whatever the the time's like um october

2442
02:48:09.310 --> 02:48:14.150
november december we've got the q q4 what are they basically where do you want to be at the end of

2443
02:48:14.150 --> 02:48:19.550
and what like and then we could kind of drill down to like oh well we really want to be able to like

2444
02:48:19.550 --> 02:48:24.350
sell an mvp okay well that's different than like so we kept it have some trade-offs of like maybe

2445
02:48:24.350 --> 02:48:28.590
you don't need all these features because the goal was to sell it right like that's a great example

2446
02:48:28.590 --> 02:48:33.710
of this macro framing like where do we need to be at the end of this and then that helps us make the

2447
02:48:33.710 --> 02:48:42.150
trade-offs of what's in and out yeah that's great that's cool perfect that's great awesome we've

2448
02:48:42.150 --> 02:48:46.190
still got 10 we've still got 10 minutes anything else that's in that's that's uh that's in your

2449
02:48:47.130 --> 02:48:52.730
minds yeah and uh i wrote chris i know you guys uh have touched the tribes of the least but

2450
02:48:54.030 --> 02:49:00.870
thoughts on i think i mean unifying it for better user experience would be huge i know it solves a

2451
02:49:00.870 --> 02:49:06.710
lot of headaches on you know our end you know the ones who are providing it but i think it makes it

2452
02:49:06.710 --> 02:49:11.110
way less confusing i remember i still remember that time when i was trying to figure out how do

2453
02:49:11.610 --> 02:49:15.390
and then you're like oh yeah you gotta go to this dashboard over here and it's just like why

2454
02:49:15.530 --> 02:49:20.990
and it makes sense now obviously right like the whole story of it but i'm so glad that we

2455
02:49:21.210 --> 02:49:27.050
i think for me like as we look at the frame of things it's like it gets exponentially bigger

2456
02:49:27.050 --> 02:49:31.730
until we can wrangle and corral all the things and that's the hardest part of this process for

2457
02:49:31.730 --> 02:49:35.410
me because my brain is like well what about this what this you know and just the way that you ryan

2458
02:49:35.410 --> 02:49:42.470
kind of put things together and um just kind of just kept digging deeper right until you hit that

2459
02:49:42.470 --> 02:49:49.450
aha i think that's great so thank you it's true that's that that really converging is is hard

2460
02:49:49.450 --> 02:49:53.970
right like getting more and more down to the nugget of what it is that's that's true

2461
02:49:58.410 --> 02:49:59.970
awesome and we

2462
02:50:00.000 --> 02:50:02.260
We've been doing, like Chris has been working a little bit

2463
02:50:02.260 --> 02:50:04.500
on like what we're calling like scouting out.

2464
02:50:04.800 --> 02:50:05.740
This was probably like a better,

2465
02:50:05.920 --> 02:50:08.300
but kind of going ahead of like,

2466
02:50:08.340 --> 02:50:09.420
cool, we've got the 12 weeks.

2467
02:50:09.440 --> 02:50:11.760
Let's start to like prep these projects.

2468
02:50:11.920 --> 02:50:13.800
It's almost like a step before framing

2469
02:50:13.800 --> 02:50:14.900
because some of these things-

2470
02:50:14.900 --> 02:50:16.640
Oh, that's a good word for that, scouting, totally.

2471
02:50:16.780 --> 02:50:17.040
Yeah.

2472
02:50:17.320 --> 02:50:22.140
What are the candidates that we might really try to get

2473
02:50:22.520 --> 02:50:24.640
through framing into like something

2474
02:50:24.640 --> 02:50:26.120
where we really want to do?

2475
02:50:26.760 --> 02:50:28.520
Yeah, and just getting, you know,

2476
02:50:28.520 --> 02:50:30.860
all of our clients touch different industries.

2477
02:50:31.240 --> 02:50:35.440
And so Chris has been digging deep with the clients,

2478
02:50:35.720 --> 02:50:37.800
digging into like how their business operates

2479
02:50:37.800 --> 02:50:40.980
and like what are the HIPAA requirements

2480
02:50:40.980 --> 02:50:42.280
for this particular project?

2481
02:50:42.420 --> 02:50:44.580
You know, we don't know that yet.

2482
02:50:44.580 --> 02:50:46.920
So we're kind of getting ahead of it a little bit

2483
02:50:47.200 --> 02:50:48.740
on getting familiar with it.

2484
02:50:48.960 --> 02:50:50.680
So we've kind of flipped it around

2485
02:50:50.680 --> 02:50:52.100
to where that's become,

2486
02:50:52.460 --> 02:50:54.280
that's our sales and marketing right there.

2487
02:50:54.300 --> 02:50:56.380
It's like the next thing we're going to sell

2488
02:50:56.560 --> 02:50:57.700
from a business standpoint

2489
02:50:57.700 --> 02:50:58.880
is going to be that thing.

2490
02:50:59.440 --> 02:51:01.820
So rather than like look up halfway through the month

2491
02:51:01.820 --> 02:51:02.540
and be like, oh my gosh,

2492
02:51:02.540 --> 02:51:03.600
what are we doing in September?

2493
02:51:04.040 --> 02:51:06.140
Like, you know, and then trying to like pitch something,

2494
02:51:06.660 --> 02:51:07.700
we're kind of like, cool,

2495
02:51:07.700 --> 02:51:09.600
let's get out a few months ahead of it.

2496
02:51:09.600 --> 02:51:10.820
And it kind of takes the pressure off.

2497
02:51:10.860 --> 02:51:12.760
And then everybody's been thinking about it

2498
02:51:12.760 --> 02:51:15.100
and sort of prepping it a little bit first,

2499
02:51:15.360 --> 02:51:17.220
you know, trying to crunch that down.

2500
02:51:17.460 --> 02:51:19.820
So that's one thing we've added the last few weeks.

2501
02:51:20.940 --> 02:51:20.940


2502
02:51:22.900 --> 02:51:25.420
I took on a fractional CPO role

2503
02:51:25.420 --> 02:51:26.840
and that was the first order of business

2504
02:51:26.840 --> 02:51:28.480
was like kind of building the pipeline

2505
02:51:28.480 --> 02:51:30.740
of like what might be a project?

2506
02:51:31.000 --> 02:51:31.940
What are we actually framing?

2507
02:51:32.640 --> 02:51:34.840
What's past frame go into shaping

2508
02:51:34.840 --> 02:51:36.380
and what's shape go into building?

2509
02:51:36.740 --> 02:51:40.120
Like that was, yeah, that's important.

2510
02:51:41.920 --> 02:51:44.060
And also just one quick comment

2511
02:51:44.060 --> 02:51:45.720
regarding what Chris brought,

2512
02:51:46.380 --> 02:51:49.760
that I think one of the major learnings

2513
02:51:49.760 --> 02:51:51.360
from this time together

2514
02:51:51.360 --> 02:51:54.180
that we are being able to like practice

2515
02:51:54.180 --> 02:51:58.340
and experience more is really about understanding

2516
02:51:58.340 --> 02:52:01.020
like that empirical feeling

2517
02:52:01.020 --> 02:52:03.600
of when things are like converging

2518
02:52:03.600 --> 02:52:06.800
and you almost feel that you want to start

2519
02:52:06.800 --> 02:52:07.800
as fast as possible.

2520
02:52:08.700 --> 02:52:10.020
Like you are thinking,

2521
02:52:10.200 --> 02:52:11.680
hey, I'm so confident about this

2522
02:52:11.680 --> 02:52:13.960
that I just want to like close this call

2523
02:52:13.960 --> 02:52:15.320
and like get into work

2524
02:52:15.320 --> 02:52:18.300
because everything is crispy clear.

2525
02:52:18.580 --> 02:52:22.380
And the interesting thing is that we had one experience,

2526
02:52:22.380 --> 02:52:26.220
me and Bruce that we shaped one specific part

2527
02:52:26.320 --> 02:52:28.440
actually regarding to the notifications.

2528
02:52:29.940 --> 02:52:32.260
I change, I improvement to our notifications

2529
02:52:32.260 --> 02:52:33.120
in your dashboard.

2530
02:52:33.480 --> 02:52:36.040
And we ended up the call with this feeling,

2531
02:52:36.220 --> 02:52:37.720
hey, we just want to get this done.

2532
02:52:38.360 --> 02:52:42.980
But I wasn't able to start at the moment,

2533
02:52:42.980 --> 02:52:43.900
at the same day.

2534
02:52:44.040 --> 02:52:47.480
We had some issues and I was only able to start,

2535
02:52:48.040 --> 02:52:51.020
I think almost one and a half week later.

2536
02:52:51.020 --> 02:52:56.040
But since we've got like the download

2537
02:52:57.340 --> 02:52:59.820
from our minds to the paper

2538
02:52:59.960 --> 02:53:05.160
and we got like that feeling of concreteness,

2539
02:53:05.760 --> 02:53:07.780
I almost, I just opened the notion

2540
02:53:07.780 --> 02:53:10.860
and it was like almost like that memory card

2541
02:53:10.860 --> 02:53:13.560
from PlayStation where you reload your save.

2542
02:53:13.700 --> 02:53:15.920
So I was like, hey, I just opened it

2543
02:53:15.940 --> 02:53:18.540
and I had the same feeling

2544
02:53:18.540 --> 02:53:20.340
and I was able to continue the work

2545
02:53:20.340 --> 02:53:22.260
from the point where we stopped.

2546
02:53:22.740 --> 02:53:24.800
So this is very valuable,

2547
02:53:25.000 --> 02:53:28.120
especially in working in this kind of agency style

2548
02:53:28.120 --> 02:53:30.120
where you are serving different customers

2549
02:53:30.120 --> 02:53:31.680
and you are context switching.

2550
02:53:32.240 --> 02:53:35.200
So being able to kind of memory card,

2551
02:53:35.880 --> 02:53:38.060
save to a memory card your work

2552
02:53:38.060 --> 02:53:39.640
and then continue from there,

2553
02:53:39.660 --> 02:53:41.760
it's a very important skill.

2554
02:53:42.160 --> 02:53:44.940
So, and being able to hone this feeling

2555
02:53:44.940 --> 02:53:48.080
and to understand and be able to grasp this feeling,

2556
02:53:48.760 --> 02:53:52.360
this is good enough and I can start working from here.

2557
02:53:52.520 --> 02:53:55.520
I think this is one of the major learnings

2558
02:53:55.520 --> 02:53:57.220
as well from these sessions.

2559
02:53:57.780 --> 02:53:58.580
That's awesome.

2560
02:53:58.740 --> 02:53:59.240
I love that.

2561
02:53:59.460 --> 02:54:01.120
Yeah, to kind of like save and load

2562
02:54:01.120 --> 02:54:02.940
the whole context of the project.

2563
02:54:03.260 --> 02:54:03.460
Yeah.

2564
02:54:03.960 --> 02:54:04.260
Yeah.

2565
02:54:04.260 --> 02:54:04.640
Yeah.

2566
02:54:04.640 --> 02:54:07.000
And just being patient with the process,

2567
02:54:07.060 --> 02:54:08.760
I know we're three hours into it,

2568
02:54:09.020 --> 02:54:11.240
but we've been on two or three hour calls

2569
02:54:11.760 --> 02:54:13.700
with different, and I'll be,

2570
02:54:13.840 --> 02:54:16.360
we'll be pretty far into it.

2571
02:54:16.360 --> 02:54:18.460
And we're like, cool, we got that moment of clarity.

2572
02:54:18.600 --> 02:54:19.040
And then we're like,

2573
02:54:19.060 --> 02:54:21.000
we'll go make a task grid later or whatever.

2574
02:54:21.080 --> 02:54:21.840
And we're like, no, let's,

2575
02:54:22.040 --> 02:54:23.360
if we just did it right now,

2576
02:54:23.860 --> 02:54:25.140
a little bit more patience.

2577
02:54:25.280 --> 02:54:27.260
And like, cause we, and then typically I'm like,

2578
02:54:27.420 --> 02:54:29.240
we'll have the whole task grid done in 10 minutes

2579
02:54:29.240 --> 02:54:30.080
or 15 minutes.

2580
02:54:30.080 --> 02:54:31.820
And typically from that point,

2581
02:54:31.820 --> 02:54:33.360
it is it's 10 or 15 minutes,

2582
02:54:33.400 --> 02:54:34.400
cause everything's fresh.

2583
02:54:34.620 --> 02:54:36.320
And then we've got this nice little hit list

2584
02:54:36.320 --> 02:54:38.180
to go do after that.

2585
02:54:38.220 --> 02:54:40.140
But it's just in previous times,

2586
02:54:40.660 --> 02:54:43.540
you don't want, we want to move on to the next thing

2587
02:54:43.540 --> 02:54:45.520
or switch context and then you don't really go deep

2588
02:54:45.520 --> 02:54:46.100
in this stuff.

2589
02:54:46.380 --> 02:54:48.260
It is, it is very deep.

2590
02:54:48.660 --> 02:54:50.940
You gotta go deep work style into it

2591
02:54:50.940 --> 02:54:52.200
and get the clarity.

2592
02:54:53.860 --> 02:54:54.500
So it's been helpful.

2593
02:54:54.680 --> 02:54:56.000
And I think also we've done

2594
02:54:56.000 --> 02:54:57.820
pretty much all these sessions have been

2595
02:54:58.040 --> 02:54:59.980
me and someone or two combinations.

2596
02:55:00.000 --> 02:55:02.240
of the two or three of us working together

2597
02:55:02.460 --> 02:55:04.660
and not trying to just sit by yourself and do it,

2598
02:55:04.680 --> 02:55:05.440
I think is helpful.

2599
02:55:06.440 --> 02:55:07.000
Yeah, that's key.

2600
02:55:08.900 --> 02:55:09.280
Yeah, totally.

2601
02:55:09.500 --> 02:55:09.980
That's awesome.

2602
02:55:10.100 --> 02:55:14.460
I want to just throw out some thoughts just

2603
02:55:14.460 --> 02:55:18.300
on the piece of the dark arts and pushing it a bit further.

2604
02:55:19.820 --> 02:55:25.020
Feels like we are refining this feeling of, oh,

2605
02:55:25.020 --> 02:55:26.600
have we got the aha moment?

2606
02:55:26.880 --> 02:55:28.480
Do we need to dig more?

2607
02:55:29.040 --> 02:55:31.400
And we get all those benefits that Giannata mentioned,

2608
02:55:31.580 --> 02:55:33.400
like we just pick it up and go.

2609
02:55:34.220 --> 02:55:38.560
And I'm just wondering, do we all have to be there?

2610
02:55:38.660 --> 02:55:44.640
Or you picked up this project page and you read it

2611
02:55:44.640 --> 02:55:47.340
and it's like, OK, it's not enough context.

2612
02:55:47.420 --> 02:55:49.420
The framing was not clear enough.

2613
02:55:49.460 --> 02:55:52.400
And I'm just wondering, OK, if we're all in the room,

2614
02:55:54.200 --> 02:55:56.260
then after that, write it down and we

2615
02:55:56.260 --> 02:55:58.660
can give it to someone else who is not just

2616
02:55:58.660 --> 02:55:59.980
going to read the whole thing.

2617
02:56:00.020 --> 02:56:02.180
And they have all of the nuggets that they need.

2618
02:56:02.480 --> 02:56:04.100
So I'm just wondering about that.

2619
02:56:04.380 --> 02:56:08.240
Does it translate to like, OK, we just transfer the project

2620
02:56:08.240 --> 02:56:08.840
to someone else?

2621
02:56:08.840 --> 02:56:09.600
We shaped it.

2622
02:56:09.600 --> 02:56:10.360
We all have the clarity.

2623
02:56:10.660 --> 02:56:14.020
And we just decide later, OK, someone else will do it.

2624
02:56:14.140 --> 02:56:15.520
Will they also have this clarity?

2625
02:56:16.320 --> 02:56:17.220
Does it translate?

2626
02:56:17.440 --> 02:56:19.340
Do we need to do a call with them?

2627
02:56:19.400 --> 02:56:22.020
So I'm just kind of reflecting on that.

2628
02:56:28.660 --> 02:56:33.400
So the more there's kind of like these two extremes in my mind

2629
02:56:33.400 --> 02:56:34.760
when I think about your question.

2630
02:56:35.180 --> 02:56:37.860
I've been in teams where we all did it all together

2631
02:56:37.860 --> 02:56:39.780
and we were all involved in every step.

2632
02:56:39.960 --> 02:56:42.440
And in that case, it's like the messy whiteboard

2633
02:56:42.440 --> 02:56:45.440
is kind of enough because we all kind of know what it means.

2634
02:56:45.660 --> 02:56:51.500
And the other extreme is I've got like seven or eight

2635
02:56:51.560 --> 02:56:53.360
different people who all need to play

2636
02:56:53.360 --> 02:56:54.660
different roles in this project.

2637
02:56:54.920 --> 02:56:56.240
And they're going to be involved in the process.

2638
02:56:56.240 --> 02:56:57.460
They're going to be involved at different moments

2639
02:56:57.460 --> 02:56:58.300
of the project.

2640
02:56:59.460 --> 02:57:01.320
And then I'm going to have like, so for example,

2641
02:57:01.320 --> 02:57:03.900
I just did a project with this team

2642
02:57:03.900 --> 02:57:06.160
that I'm doing fractional CPO work for.

2643
02:57:07.320 --> 02:57:10.640
I had three or four people who I was involved with in framing,

2644
02:57:11.660 --> 02:57:12.740
like framing and shaping.

2645
02:57:13.200 --> 02:57:15.660
And then when the kickoff started,

2646
02:57:15.700 --> 02:57:17.740
I had a totally different set of four people

2647
02:57:17.740 --> 02:57:19.360
that were coming into the project.

2648
02:57:20.460 --> 02:57:22.860
And what I needed to be able to do

2649
02:57:22.860 --> 02:57:28.740
was I wanted to be able to very quickly get people in,

2650
02:57:28.840 --> 02:57:29.760
like up to speed,

2651
02:57:29.900 --> 02:57:32.900
like I needed to be able to like load it into their brain too,

2652
02:57:33.080 --> 02:57:35.240
you know, as fast as possible.

2653
02:57:37.180 --> 02:57:40.500
And I knew that I would have to do it multiple times also.

2654
02:57:40.660 --> 02:57:41.120
Do you know what I mean?

2655
02:57:41.600 --> 02:57:46.700
So like, this is just for your eyes.

2656
02:57:55.460 --> 02:57:58.200
I think, but actually, I think it's very similar

2657
02:57:58.200 --> 02:58:00.120
to what you guys are doing, actually.

2658
02:58:02.240 --> 02:58:09.980
So this is a, this is a write-up for a project.

2659
02:58:10.380 --> 02:58:13.080
And you can see the frame is really, really boiled down.

2660
02:58:15.400 --> 02:58:18.340
And, but I think you guys are doing something similar.

2661
02:58:19.020 --> 02:58:22.320
And then in the end, the,

2662
02:58:23.600 --> 02:58:25.380
I wrote all this stuff out into this shape,

2663
02:58:25.440 --> 02:58:26.800
into this write-up for the shape.

2664
02:58:27.380 --> 02:58:30.940
But what's interesting is I noticed

2665
02:58:30.940 --> 02:58:34.060
I have to keep retelling the frame over and over again

2666
02:58:34.060 --> 02:58:37.720
to keep everybody like in the, focused on the right things.

2667
02:58:37.880 --> 02:58:40.740
And like when the scope starts to get too big or whatever,

2668
02:58:40.880 --> 02:58:41.800
like this is really,

2669
02:58:42.040 --> 02:58:44.420
I have to keep coming again and again back to the frame.

2670
02:58:44.980 --> 02:58:48.120
What I noticed is that even though I try really hard

2671
02:58:48.220 --> 02:58:51.520
to write this well, people just,

2672
02:58:52.060 --> 02:58:53.400
they don't really read it that carefully.

2673
02:58:53.760 --> 02:58:57.720
They miss things, you know, like it ends up,

2674
02:58:58.340 --> 02:59:00.720
so what it ends up being is I do refer to it

2675
02:59:00.720 --> 02:59:03.800
from time to time, but what I really rely on

2676
02:59:03.800 --> 02:59:05.660
when I have to transfer the knowledge

2677
02:59:05.660 --> 02:59:08.180
to another party is the kickoff call.

2678
02:59:09.180 --> 02:59:12.140
So when we have the kickoff session,

2679
02:59:13.000 --> 02:59:16.020
it's like, and other people are getting involved.

2680
02:59:16.300 --> 02:59:18.960
I spend a lot of time talking through this.

2681
02:59:19.200 --> 02:59:20.960
I make sure that everybody's on the same page.

2682
02:59:21.180 --> 02:59:24.820
And then I like really carefully talk through this,

2683
02:59:25.220 --> 02:59:27.640
like step-by-step, I like really talk through it.

2684
02:59:28.080 --> 02:59:30.600
And then a lot of questions come up.

2685
02:59:30.860 --> 02:59:32.120
We whiteboard, usually what happens

2686
02:59:32.120 --> 02:59:33.580
is we have to detail this.

2687
02:59:33.880 --> 02:59:38.100
So we're in the whiteboard changing this, you know,

2688
02:59:38.100 --> 02:59:39.220
cause somebody said, what about this?

2689
02:59:39.240 --> 02:59:40.040
And what about that?

2690
02:59:40.080 --> 02:59:41.560
And there's some things I didn't spell out,

2691
02:59:42.520 --> 02:59:44.140
and then we end the session

2692
02:59:44.140 --> 02:59:46.340
with a first draft of the nine boxes.

2693
02:59:49.480 --> 02:59:56.260
And that's basically like, so the frame I kind of,

2694
02:59:58.960 --> 02:59:59.980
before this project started.

2695
03:00:00.000 --> 03:00:05.320
and it was just in framing we had this document in our I'll show you our

2696
03:00:05.320 --> 03:00:13.480
bedding table so we have candidate frame go and shape go so when this was a

2697
03:00:13.480 --> 03:00:21.960
candidate and then when it was frame go it basically looked like where am I just

2698
03:00:21.960 --> 03:00:26.440
this top part you know and we kind of we got to a point of like yeah we got it

2699
03:00:26.440 --> 03:00:30.520
you know and I needed to be able to retell this to again and again so I

2700
03:00:30.520 --> 03:00:33.880
there was important for me to boil that down into like the right words you know

2701
03:00:34.060 --> 03:00:39.400
and then this I didn't write up until it was just before kickoff this was like

2702
03:00:39.440 --> 03:00:43.680
the last step for kickoff to give them to read in advance and to refer to to

2703
03:00:43.680 --> 03:00:47.460
make sure I kind of covered everything but then it's actually the kickoff

2704
03:00:47.540 --> 03:00:50.980
itself where I walk through this and then we do the scopes together where I

2705
03:00:50.980 --> 03:00:55.900
really feel like the transfer happens I don't know does that answer the question

2706
03:00:55.900 --> 03:01:00.720
or did I talk about slightly different things definitely very helpful yeah

2707
03:01:00.720 --> 03:01:09.760
yeah okay it's like a work of art but it's like you know it's but it's like

2708
03:01:10.480 --> 03:01:21.460
you know the actual work along the way is you know we had an initial frame here

2709
03:01:21.460 --> 03:01:27.620
first framing session I don't know first shaping session we came to a

2710
03:01:28.120 --> 03:01:32.040
reasonable shape this was the first shape and then we had some very big

2711
03:01:33.060 --> 03:01:39.100
unknowns so then I had a framing session again with a with a salesperson so

2712
03:01:39.100 --> 03:01:44.440
totally different person these are just a million notes but then a couple key

2713
03:01:44.440 --> 03:01:48.700
takeaways the answers then went back into a shaping session with the updated

2714
03:01:48.700 --> 03:01:55.280
frame you know and then and then we we you know kind of work through a couple

2715
03:01:55.280 --> 03:02:00.020
different approaches different UI issues you know and then and then in the end I

2716
03:02:00.700 --> 03:02:04.420
think this was actually this was the from the kickoff so then there was a

2717
03:02:04.420 --> 03:02:07.100
little bit of circling and talking through things calling out issues

2718
03:02:07.100 --> 03:02:11.940
looking at screenshots and then a little bit of spiking like on the spot kind of

2719
03:02:12.500 --> 03:02:16.300
clarifying a missing piece in the workflow and then we switched over to

2720
03:02:16.500 --> 03:02:19.900
MonsterMap and they did the nine scopes and that was that's what the kickoff

2721
03:02:20.160 --> 03:02:28.160
looked like. Okay, I love how iterative it is. It makes me feel a lot better because I feel like I keep failing forward a little bit each time.

2722
03:02:29.380 --> 03:02:38.460
Yeah those were so yeah so like what I like to do too is because like I I find

2723
03:02:38.460 --> 03:02:42.340
that if I keep modifying the same thing it can be really hard for me to pull

2724
03:02:42.540 --> 03:02:46.480
somebody's brain back to something we talked about before so that's why I'm

2725
03:02:46.480 --> 03:02:49.700
pretty religious about like if we really have different ideas doing the

2726
03:02:49.720 --> 03:02:55.620
ABC and then these vertical lines here are actually the breaks and sessions so

2727
03:02:55.620 --> 03:03:04.440
this was August 1st this was August 4th with senior engineer and sales you know

2728
03:03:04.440 --> 03:03:09.340
this was my packaging private work my private prep off and this is kickoff you

2729
03:03:09.340 --> 03:03:14.820
know so yeah so you get a sense of so that you know this case was not so this

2730
03:03:14.820 --> 03:03:19.380
was not super deep this was one two three shaping sessions and then a little

2731
03:03:19.380 --> 03:03:24.600
bit of private work on my part to package it up. You had some kind of spider

2732
03:03:25.860 --> 03:03:28.620
capabilities diagram thing over there too in the middle it's kind of interesting.

2733
03:03:29.400 --> 03:03:35.880
This we I think Lucian maybe we looked at that on a previous call so this is

2734
03:03:36.620 --> 03:03:46.000
this is the interdependency diagram so what happened was here's just just I'll

2735
03:03:46.100 --> 03:03:50.060
just I'll show you what it what what because you don't see what was in my

2736
03:03:50.060 --> 03:03:52.860
head because I did this for myself I know this is something I don't do with

2737
03:03:52.860 --> 03:04:01.260
teams usually because it's a little too nerdy but what happened was I had boiled

2738
03:04:01.300 --> 03:04:05.400
down these are the things that I need the team to understand at kickoff these

2739
03:04:05.400 --> 03:04:11.360
are these are all the things we designed so like I boiled down the

2740
03:04:11.360 --> 03:04:14.500
breadboard to basically like these things and like I'm like okay I need to

2741
03:04:14.500 --> 03:04:21.700
write this into a document I didn't know what order to put them in so I put them

2742
03:04:21.700 --> 03:04:27.060
around the circle and then use just this trick of like which one of these things

2743
03:04:27.060 --> 03:04:31.180
helps me to explain the other thing so it's like oh if I talk about failed

2744
03:04:31.180 --> 03:04:35.460
payments that helps me talk about the owner alert and if I talk about instant

2745
03:04:35.460 --> 03:04:39.680
retry that also motivates the owner alert you know so this is like getting

2746
03:04:39.680 --> 03:04:43.620
to the sequence of things and then this is just actually just there's a way to

2747
03:04:44.260 --> 03:04:49.340
just flatten it you know and then this is the flattening of it and then this

2748
03:04:49.340 --> 03:04:59.780
literally is if I go back to notion oh that's the wrong

2749
03:05:01.060 --> 03:05:02.360
I want Notion.

2750
03:05:05.600 --> 03:05:10.440
You see this sequence, failed contract, email alert, contract invoice screen, retry now.

2751
03:05:10.640 --> 03:05:12.560
That's the table of contents here.

2752
03:05:13.380 --> 03:05:18.080
That's failed payment, email, contract, sale fallback, instant retry.

2753
03:05:18.120 --> 03:05:20.200
It's like it's the, that's where that came from.

2754
03:05:21.920 --> 03:05:22.080
Yeah.

2755
03:05:22.080 --> 03:05:22.600
Yeah.

2756
03:05:22.600 --> 03:05:28.340
But that's, it's, yeah, it's, it's, it's, it's pretty nerdy, but like, um, I do have

2757
03:05:28.340 --> 03:05:31.700
moments when I, I just feel like, I don't know, I don't know where to start.

2758
03:05:31.920 --> 03:05:32.840
I don't know how to, you know what I mean?

2759
03:05:32.840 --> 03:05:35.580
Like, I don't know how to get through this and it, it unblocks me.

2760
03:05:35.760 --> 03:05:37.500
That's a trick from Bob.

2761
03:05:38.380 --> 03:05:39.180
That's cool.

2762
03:05:39.860 --> 03:05:40.260
Yeah.

2763
03:05:40.260 --> 03:05:45.660
That's these little, yeah, that just saying the process is very helpful like that.

2764
03:05:45.860 --> 03:05:46.100
Awesome.

2765
03:05:47.380 --> 03:05:48.240
All right, guys.

2766
03:05:49.180 --> 03:05:51.020
So I, by the way, I just want to praise you.

2767
03:05:51.080 --> 03:05:52.080
You're doing really nice work.

2768
03:05:52.180 --> 03:05:57.620
Like I, it's really cool how the sessions feel additive, you know, um, and especially

2769
03:05:57.620 --> 03:06:01.680
going from like individual projects up to the meta project this time, you know, that

2770
03:06:02.040 --> 03:06:04.180
was a, you know, that was a nice leap.

2771
03:06:04.300 --> 03:06:06.160
So, you know, thanks for that.

2772
03:06:06.280 --> 03:06:06.400
Yeah.

2773
03:06:06.760 --> 03:06:07.320
Thank you.

2774
03:06:07.520 --> 03:06:08.040
This has been great.

2775
03:06:08.520 --> 03:06:08.860
Awesome.

2776
03:06:09.460 --> 03:06:09.880
Cool.

2777
03:06:10.120 --> 03:06:10.600
All right.

2778
03:06:10.660 --> 03:06:10.960
Take care.

2779
03:06:11.120 --> 03:06:12.000
Have a nice day, everybody.

2780
03:06:12.500 --> 03:06:13.080
Thank you.

2781
03:06:13.440 --> 03:06:14.100
Take care.

2782
03:06:15.300 --> 03:06:16.140
Bye-bye.

2783
03:06:17.900 --> 03:06:18.420
Bye-bye.

2784
03:06:18.480 --> 03:06:18.540
Bye-bye.

2785
03:06:18.720 --> 03:06:19.120
See you.

2786
03:06:19.200 --> 03:06:19.780
Thanks a lot.

2787
03:06:20.380 --> 03:06:20.640
See you.
