PodSearch

Developing Perspective

#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:05 ◼   ► to make.

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 ◼   ► go next?

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 ◼   ► lost.

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 ◼   ► is.

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:26 ◼   ► like.

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:41 ◼   ► the case.

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:13 ◼   ► the day.

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 ◼   ► the day.

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:27 ◼   ► places.

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 ◼   ► It's fun.

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 ◼   ► build it.

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 ◼   ► All right.

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:02 ◼   ► days.

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:37 ◼   ► it.

00:13:37 ◼   ► Right?

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