#229: Portal Gun Development
00:00:00
◼
►
So I'm a big fan of hiking.
00:00:01
◼
►
Um, anyone who knows me knows that I love hiking.
00:00:04
◼
►
I love being out in the wilderness, walking around, climbing mountains, and just generally
00:00:10
◼
►
enjoying being outdoors.
00:00:12
◼
►
And so I tend to end up with these sort of like analogies or
00:00:16
◼
►
metaphors in my mind as I'm kind of working through my work recently, um,
00:00:20
◼
►
that involve that kind of thing, that involve metaphors and thoughts about what it's
00:00:24
◼
►
like to be outside.
00:00:25
◼
►
And recently, this has taken the form of kind of an idea that I'm
00:00:29
◼
►
calling portal gun development, which will make sense in a moment, but that's sort
00:00:34
◼
►
of the generally where I'm gonna go and what we're gonna talk about today.
00:00:36
◼
►
So let's get started.
00:00:38
◼
►
So when you're out hiking, if you're going on a journey, you're walking around,
00:00:43
◼
►
um, very often you need to know where you want to go.
00:00:46
◼
►
I mean sometimes you're just out stravagging, looking any which way you'd want to
00:00:50
◼
►
go and you're just wandering.
00:00:51
◼
►
But most of the time you have a destination in mind.
00:00:53
◼
►
You have a place you're trying to get to, and so you're gonna walk
00:00:56
◼
►
um in that way.
00:00:58
◼
►
And traditionally, the way that one would navigate to do that is you know,
00:01:02
◼
►
you'll reach a junction, a point, there'll be a some decision that you have
00:01:06
◼
►
And you'd pull out your map in the old days your map and compass,
00:01:09
◼
►
now maybe more your map on your phone.
00:01:10
◼
►
But anyway, you'd reach a point where you'd have kind of like, let's just
00:01:13
◼
►
say, your map and compass, and then you'd be deciding where am I gonna
00:01:17
◼
►
What is my next move from here?
00:01:20
◼
►
And you'd think and you'd look and you'd look at the weather and you'd
00:01:22
◼
►
decide, ooh, you know, this is what I feel like.
00:01:24
◼
►
Do I want to go up this hill or do I want to go
00:01:26
◼
►
around the mountain?
00:01:27
◼
►
What am I thinking of?
00:01:28
◼
►
And then once you'd reach that point, you would decide, okay I'm gonna go
00:01:32
◼
►
this way, and then you'd walk, then you'd hike, you'd climb the mountain, you'd
00:01:35
◼
►
go up the slope, you'd go down the hill, whatever it is, you're gonna
00:01:38
◼
►
walk through the bog, you're gonna do the journey from where you were, where
00:01:43
◼
►
you made that decision, to the destination that you chose, hopefully, unless you got
00:01:47
◼
►
But generally you're deciding I'm gonna go from here to there.
00:01:51
◼
►
That some ways is a very good analogy for what I feel like traditional
00:01:55
◼
►
software development has felt like, you know, for the last 20 years.
00:01:59
◼
►
There's an element of you you would be treated with a problem, whatever that
00:02:04
◼
►
You're uh a bug you're trying to solve, a feature you're trying to build.
00:02:07
◼
►
You would and at many points throughout the day or throughout the week, you
00:02:11
◼
►
would say, I want to get from here to there.
00:02:13
◼
►
You know, what is my next s sort of segment of this journey.
00:02:16
◼
►
And then you would go and decide which segment you're gonna work on, and
00:02:20
◼
►
then you would go and build that.
00:02:21
◼
►
You would walk that road in the you know in the metaphor um between
00:02:26
◼
►
where you started and where you'd ended.
00:02:28
◼
►
And that was just sort of this process that you would repeat over and
00:02:31
◼
►
over and over again.
00:02:32
◼
►
You would make a decision, walk a path, and then make another decision.
00:02:37
◼
►
And the whole process of developing something was a continuous seg, you know, sort
00:02:41
◼
►
of collection of these segments that you're working on.
00:02:45
◼
►
Well, now with agentic development and this sort of this new approach that we
00:02:49
◼
►
find ourselves having to navigate and work through, instead, it's like if you ever
00:02:54
◼
►
played the game.
00:02:55
◼
►
Portal, where anything you have line of sight to, you can get to, essentially
00:03:01
◼
►
instantaneously.
00:03:02
◼
►
You know, so in that context, it's like, you know, you point your portal
00:03:04
◼
►
gun where you wanna go, you make a portal over there you step through
00:03:09
◼
►
your cur your current one and appear uh instantaneously um at the other end.
00:03:13
◼
►
And obviously you're not actually instantaneously appearing there.
00:03:17
◼
►
These things, you know, you you you write a prompt, you hi set it
00:03:20
◼
►
off, and it may take you know, whatever, a few minutes to to until
00:03:25
◼
►
you actually arrive.
00:03:27
◼
►
But functionally, it is instantaneous compared to what it was before.
00:03:31
◼
►
There is this difference in used to you would decide the direction and and
00:03:36
◼
►
then have to walk the road between those two points.
00:03:39
◼
►
Now you're much more deciding the direction and then appearing at some point, functionally
00:03:44
◼
►
instantaneously, compared to the old days where, you know, these things that would take
00:03:48
◼
►
days or weeks to build are now measured much more in sort of minutes
00:03:52
◼
►
and maybe hours for a particularly long, challenging prompt.
00:03:56
◼
►
And I think the result of that has had some really interesting effects on
00:03:59
◼
►
my own life, on the way that I both work functionally as well as
00:04:04
◼
►
the way I feel about my work.
00:04:06
◼
►
Because it's a meaningful difference.
00:04:07
◼
►
Like the end result is the same.
00:04:09
◼
►
I'm still going from segment start to segment finish, segment start to segment finish,
00:04:14
◼
►
over and over and over again.
00:04:16
◼
►
But rather than walking that path, now I'm sort of magically appearing at the
00:04:21
◼
►
next segment end and the next segment end.
00:04:23
◼
►
And that just has a lot of impacts, I think, on what it feels
00:04:27
◼
►
And the first, and probably most significant in some ways, the sun that I
00:04:30
◼
►
really noticed.
00:04:31
◼
►
Is this form of development is just mentally, in some degrees physically, but mostly
00:04:36
◼
►
mentally exhausting.
00:04:38
◼
►
And it took me a while to kind of work out why that was
00:04:42
◼
►
Because in some ways that seems slightly counterintuitive that in the old days like
00:04:46
◼
►
I was having to walk the path, I was having to climb the mountain,
00:04:50
◼
►
I was having to put in the effort to wade through the bog to
00:04:54
◼
►
get to where I wanted to go.
00:04:56
◼
►
And so that seemed like that was a lot of effort, right?
00:04:59
◼
►
Like that's a lot of work that I am now not having to do.
00:05:03
◼
►
But functionally, I think, and why I found it so much more mentally exhausting,
00:05:07
◼
►
is that I'm now doing the hardest part of that old job constantly throughout
00:05:14
◼
►
In the old days, you would make the do the hard dis part, which
00:05:17
◼
►
was making the decision of where you wanted to go.
00:05:19
◼
►
And then the walking part, I mean honestly, as someone who was a enjoyed
00:05:23
◼
►
software development, like that was in some ways the fun part.
00:05:25
◼
►
That was the part where you get to go kind of into the flow
00:05:28
◼
►
state and you're working through it and it's engaging in different parts of your
00:05:32
◼
►
brain and you're s problem solving.
00:05:34
◼
►
And it was enjoyable in a certain way cognitively.
00:05:38
◼
►
And it had a different variable intensity, right?
00:05:40
◼
►
It wasn't this high intensity all the time that having to make the hardest
00:05:45
◼
►
decision, the where are you going decision, constantly leads to.
00:05:48
◼
►
Instead, you just had this feeling of like, you know, sometimes you're going uphill,
00:05:52
◼
►
sometimes you're going downhill, sometimes things are going well and sometimes they aren't.
00:05:56
◼
►
But there's a variance to that that I found very sort of cognitively reassuring
00:06:00
◼
►
and comfortable, which you just don't.
00:06:02
◼
►
And it's like it's a weird thing that I find now where I will
00:06:04
◼
►
come home from work at the end of the day and my brain will
00:06:08
◼
►
just feel like mush.
00:06:09
◼
►
And I think it is because I am making the hardest part of the
00:06:13
◼
►
hardest decisions that I used to have to make constantly.
00:06:16
◼
►
Whereas it used to be maybe I was making, I don't know, twenty of
00:06:20
◼
►
those a week.
00:06:21
◼
►
Now I'm making twenty of those a day.
00:06:23
◼
►
Where you're having these kind of like really tricky and that's like the crux
00:06:27
◼
►
of the job now, is making good choices at each of these junction points.
00:06:31
◼
►
Making thoughtful, intelligent, sort of in t sort of intentional choices that lead you
00:06:37
◼
►
ultimately to the right decision.
00:06:39
◼
►
Because in some ways they matter more now.
00:06:41
◼
►
And and part of that is because you're no longer walking the road.
00:06:45
◼
►
You don't learn as much along the way as you used to.
00:06:49
◼
►
That you didn't have all this time while you were developing something, while you're
00:06:54
◼
►
working on a feature, to be exploring it and thinking about it in quite
00:06:57
◼
►
the same way.
00:06:58
◼
►
You end up with yeah, you have the idea you have the implementation, and
00:07:02
◼
►
now you have to decide: was that the good thing to do?
00:07:04
◼
►
Was it the right thing?
00:07:05
◼
►
You don't have quite as much space in between.
00:07:08
◼
►
And that that's a sort of a blessing and a curse.
00:07:10
◼
►
It means that you don't learn as much, which is bet probably not good,
00:07:15
◼
►
but you also g get the benefit of being able to be sort of
00:07:19
◼
►
more ambitious.
00:07:20
◼
►
You can be more you can try more things than you would have been
00:07:25
◼
►
able to previously, because if you have to walk every path you want to
00:07:30
◼
►
explore, then you have to physically go and walk 'em in the old days.
00:07:33
◼
►
And I feel like now it's the benefit of you can really explore anything
00:07:37
◼
►
with very little risk.
00:07:38
◼
►
Because if you decide you went down a wrong path, if you went down
00:07:42
◼
►
towards a destination that is actually not the best place, the cost of turning
00:07:46
◼
►
around and going back is vr not very substantial.
00:07:50
◼
►
You know, essentially you just turn around, point your portal gun back at the
00:07:53
◼
►
start and off you go.
00:07:54
◼
►
And you're just immediately back there.
00:07:56
◼
►
You haven't wasted the effort and time to get there.
00:07:59
◼
►
But maybe you haven't learned as much on the way, and that's certainly a
00:08:02
◼
►
trade off that we have to deal with.
00:08:04
◼
►
Um the other thing that's also sort of tricky about this is I feel
00:08:08
◼
►
like you can now work on multiple things at once.
00:08:11
◼
►
Like in the old days, you had to own you could only walk one
00:08:15
◼
►
path at a time.
00:08:16
◼
►
Functionally, if you were going to get something done multitasking would destroy your productivity,
00:08:21
◼
►
or at least it would destroy my productivity.
00:08:23
◼
►
I was not able to build multiple things concurrently because the nature of what
00:08:28
◼
►
this is, it's like I would load my brain With all of the knowledge
00:08:33
◼
►
and thoughts and the code base and where I'm going and my implementation details
00:08:38
◼
►
and my algorithms and all the various parts of what I was doing into
00:08:41
◼
►
my brain, and then I would work with that.
00:08:43
◼
►
And that was great in terms of my ability to get the work done.
00:08:46
◼
►
And I would you know had a bit of a reputation for being good
00:08:48
◼
►
at that part because I could once I loaded my brain with all that
00:08:52
◼
►
information, I could then just run with it and do it quickly.
00:08:55
◼
►
Well now, in the time you have when you're kind of working while it's
00:08:59
◼
►
taking well the model is working on whatever your direction you last gave, you
00:09:04
◼
►
can meet sort of context switch and go to another one in another one.
00:09:08
◼
►
Like I think yesterday I was working on three projects concurrently for most of
00:09:13
◼
►
And it's exhausting in that same way.
00:09:16
◼
►
But it's productive as well.
00:09:17
◼
►
Like I was able to get meaningful progress done on three different things by
00:09:22
◼
►
working concurrently.
00:09:23
◼
►
It's almost like I'm projecting myself into this like alternative dimension in three different
00:09:28
◼
►
And so rather than climbing one mountain, I'm three mountains at once.
00:09:31
◼
►
Um, like that's really cool, but similarly kind of exhausting.
00:09:35
◼
►
And I do find that I need to pay attention to when I'm doing
00:09:39
◼
►
those kinds of things.
00:09:40
◼
►
When I'm not um working though in in on one project at once, that
00:09:44
◼
►
I need to be really careful and kind of be writing things down on
00:09:46
◼
►
a notebook as I'm going or to kind of reset where I was, or
00:09:50
◼
►
just generally I have to really pay attention more, which is lots of cognitive
00:09:55
◼
►
ev effort in exchange for productivity.
00:09:57
◼
►
And that is just like a trade-off I have to deal with.
00:10:00
◼
►
Um something else though that is probably also worth saying is that this approach
00:10:05
◼
►
also in addition to allowing you to work on multiple things, it can also
00:10:09
◼
►
make it easy for you to get s sort of sucked down into rabbit
00:10:12
◼
►
holes or unfruitful paths that um on the one hand it's great that you
00:10:16
◼
►
can explore so many things, but on the negative side of that is it
00:10:19
◼
►
means you can explore so many things.
00:10:21
◼
►
And it is easy to lose sight of what is really the destination you
00:10:25
◼
►
were aiming at.
00:10:26
◼
►
You have these ideas and you're like, oh, what about this?
00:10:28
◼
►
What about that?
00:10:29
◼
►
What about this?
00:10:30
◼
►
Um and particularly I've noticed this recently as the kind of I feel like
00:10:34
◼
►
we've crossed a threshold with sort of I guess token budgets or things like
00:10:38
◼
►
that where there was a period where you had to be really thoughtful about
00:10:42
◼
►
what you would burn tokens on, or burn your usage quotas or whatever model
00:10:46
◼
►
you want to look at on.
00:10:48
◼
►
And increasingly I would say in the last maybe it's a f even just
00:10:52
◼
►
a few weeks particularly, but just generally, that has become less and less of
00:10:55
◼
►
a thing that I think about.
00:10:56
◼
►
And I am more able then to do exploratory things.
00:11:00
◼
►
And that's exciting.
00:11:01
◼
►
I've definitely built some cool features that I think I wouldn't have done if
00:11:06
◼
►
I felt like they were, you know, sort of my confidence in them was
00:11:10
◼
►
low enough that I just wasn't worth the sort of relative cost of them.
00:11:14
◼
►
But now I can try those things.
00:11:17
◼
►
But I just need to make sure I think too, that I'm not getting
00:11:20
◼
►
s sort of sucked down a rabbit hole that is distracting from the main
00:11:23
◼
►
thing, that is actually not being productive, or I'm building features because I can,
00:11:29
◼
►
not because I should.
00:11:30
◼
►
Uh maybe if that's what I'm just saying.
00:11:32
◼
►
Like I think one of the best things about building quality software is about
00:11:38
◼
►
making things that are thoughtfully designed and intentionally built so that they you know
00:11:45
◼
►
so serve a purpose and serve it in t with a with a a
00:11:48
◼
►
sense of perspective with a sense of this is what is the best way
00:11:51
◼
►
to solve this problem.
00:11:53
◼
►
And I think a lot of modern software development means that you don't have
00:11:57
◼
►
to be as selective.
00:11:58
◼
►
In the old days, if you wanted to build the thing, you had to
00:12:01
◼
►
You had to commit weeks or you know, whatever to of development time to
00:12:06
◼
►
that project.
00:12:07
◼
►
And if now you don't it may be a bit easy and tempting to
00:12:10
◼
►
just sort of start throwing the kitchen sink at the problem because why not?
00:12:14
◼
►
Maybe it'll be useful.
00:12:15
◼
►
So I need to, getting back to the hardest part, make those hard decisions.
00:12:19
◼
►
I have to make the sort of the tough calls between is this actually
00:12:24
◼
►
a good feature or is it just something that I could make really quickly?
00:12:27
◼
►
Is it actually going to be impactful?
00:12:29
◼
►
Does this app have a sense of a point of view and a perspective
00:12:34
◼
►
that is still meaningful?
00:12:35
◼
►
There's a sense of authorship behind it, or am I just sort of blindly
00:12:40
◼
►
hitting the tab completion in my agentic coder and letting it just keep going
00:12:45
◼
►
and down whatever path the LLM is saying is the highest probability outcome.
00:12:50
◼
►
If I'm doing that, that's really not taking advantage of this opportunity.
00:12:54
◼
►
Because I will say overall, like I enjoy this form of development.
00:12:59
◼
►
Not as much, I would say, like, from a recreational perspective of the old
00:13:03
◼
►
The sense of like flow state, productivity, the sense of you you would have
00:13:07
◼
►
some of my best days I've ever had in my job were those days
00:13:11
◼
►
where you tackled a really interesting problem you know, where you climbed that really
00:13:15
◼
►
tricky path up the mountain and then you got to the end.
00:13:18
◼
►
And you got to the end as a result of your own labor, effort,
00:13:23
◼
►
creativity, intuition, whatever those things were.
00:13:26
◼
►
Like those days are amazing and I do kind of miss them sometimes.
00:13:30
◼
►
Um, but I'm also excited for what this kind of like portal gun development
00:13:34
◼
►
that as long as I have line of sight to something, I can make
00:13:38
◼
►
My limit is my imagination and creativity
00:13:42
◼
►
not the amount of time I have, not the amount of resources I can
00:13:46
◼
►
apply to a particular problem.
00:13:47
◼
►
It is really a question of productivity, of allowing myself to make those hard
00:13:52
◼
►
decisions, learning how to do that in a productive way that isn't just spitting
00:13:56
◼
►
my wheels or going in lots of directions or just burning myself out cognitively,
00:14:01
◼
►
but allowing me to then use that you know, use the advancement that that
00:14:05
◼
►
gives me to build cool and awesome things and to build them in a
00:14:07
◼
►
way that I just wouldn't have been able to otherwise.
00:14:09
◼
►
And so I guess it's kind of these are just a s assorted thoughts
00:14:13
◼
►
on the difference from, you know, m map and compass development to line of
00:14:17
◼
►
sight kind of portal gun transportation uh development, but it is a weird time
00:14:22
◼
►
to be a developer, but I'm enjoying it