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