Viktor
00:00:00.000
I feel that that's the direction our industry is moving to. before you were just developer or just tech lead or just product manager or just manager. And I think that we are moving to the world where you are all those people at the same time and the rest is done by agents and that's going to be a tough change.
Darin
00:01:27.001
You're probably getting ready for the holidays, Christmas, whatever, and you're thinking, you know what? I think I'm gonna vibe code something this holiday season 'cause I can, and then you're thinking, well, you know what? I vibe coded it. Everything's good. Let's launch it again. Not so bad. We've talked about this before until. All of a sudden you have to maintain things. Vibe coating is not gonna help you maintain things. Magic, hand wave, it can, but you have to keep doing it or something has to keep doing it.
Viktor
00:02:02.773
I feel that your phrase was wrong. It is not going to help you. I do believe it's going to help you maintain things. It'll not auto magically maintain things. Right that probably going to back to supervise the unsupervised so it, it'll not, oh, I'm up coding it and now it's automagically maintained that that's not going to happen anytime soon, but it can help you maintain.
Darin
00:02:27.132
Yeah, you weren't listening to the nuance in my voice, I was saying help, not help.
Darin
00:02:38.977
No, it was still the wrong word to use. That's that's the key part to this. Let's say that in an organization you've been Vibe coding. Again, we are not anti vibe code. There is a place for it, but it's not going to maintain itself. Well, okay. In theory it could if you've got your agents right, but most of the places aren't there yet that.
Viktor
00:03:01.807
Are we now talking of the use cases, like I'm hr, for example. Right? And I need some silly application to do to help me out with something. That type of life coding, right?
Darin
00:03:13.425
I think there's two levels. I think what the one you're talking about with the hr, that's small, silly, internal application. Even less than an internal application.
Darin
00:03:22.065
I actually see three levels. Right. I see. These things. Little tooling for me, my little team, the next level is internal applications, which is still for a team, but usually under a much better structure. And then the public facing, we're on the public internet type application. That's, so we see three different levels.
Viktor
00:03:42.750
if you could clarify it as those three levels, I would say that second and third level that requires. A real human engineer to do it with or without ai and the first category, hey, uh, I think that's power to the people type of situation can. Yeah. You need something that will help you. I know crunch numbers in Excel, right? Go for it. Five coded, that's perfectly fine. From that perspective, I'm not sure whether it even changed anything with ai, there were people to whom I would in the past recommend some kind of low-code, no-code, and there is, there are other people to whom I would never recommend, low-code, no-code. Now, I can easily argue that the AI became much more powerful and better than low-code, no-code solutions we had in the past. No doubt about that, but the logic is still the same, right? Uh, if it's serious application, meaning seriously used application, that requires an engineer, hopefully very skilled, an experienced engineer behind that application, whether that person wipe coded it, or, uh, partly written by ai, partly by that person or fully by that person, doesn't matter. A person who knows good from bad and then everything else. Yeah. You don't know. You're not a software engineer. You vibe code it. I think that's absolutely amazing. As long as we understand the, the differences. it would be like saying, Hey, only chefs can, cook. No, everybody can cook. But if you want really, really, really, really good meal, then yeah, you go to a, restaurant, that has a really good chef and that person is going to make a meal that probably you cannot make yourself. It might be only 10% difference between what that person makes and you make or 500% difference. pending discussion. But yeah, everybody should be able to cook and some people are very skilled with cooking and they cook better.
Darin
00:06:03.005
The other way around where the ordinary person thinks that they're cooking as well as a chef.
Viktor
00:06:09.476
Oh yeah, yeah. That happens all the time. Most likely you don't, but you can think whatever you want.
Darin
00:06:17.840
I guess the point here I'm trying to make is there's sort of that illusion of getting things done. Yes. I in fact. As we're recording this today, I will make lunch and it will be three eggs and it'll be some black beans
Viktor
00:06:41.055
right? You get, you're fed and you probably enjoy it and that's amazing, But now what if you would have to cook for, I dunno, uh, meal that, or meals that are eaten by an average couple of hundred people every day. Slightly different scenario. Would you agree you would not give them eggs with black beans everywhere? Everybody gets eggs in black beans.
Viktor
00:07:14.782
Exactly. And I feel that that's very similar to the examples I mentioned before. Right? Kind of for you or maybe a few people around you. You have zero experience with software engineering and you wipe code it, and I think that that's great and you get what you need. And we are at the level where more or less that is happening. But that's not the same thing as, oh, I'm going to put this in production. It's going to have, uh, 10,000 conent users.
Darin
00:07:42.895
I've seen this meme, you've probably seen it as well. Unfortunately, it's not a meme. People posting on Reddit going, well, I vibe coded this thing, but I still have to hire a developer to take a look at it to actually get it running in production. And they're just completely aghast that they actually have to do that.
Viktor
00:08:02.650
Yeah. Oh, and you know what that developer will say before it gets to production. Okay. Now let's, start over. I understand what you want. This, this is, this was such a, that experience, most likely that experienced person would say, what you just did is extremely valuable, but not for the reasons you think it's extremely valuable, because this gives me a better idea of what you want and what you need than any other way you could have explained it to me. Thank you for that. And now this goes to trash. And we are starting over because it's going to be faster, especially now with AI if we start over. But I know what you want.
Darin
00:08:49.480
We've reinforced this over and over on the show, vibe Coding Powerful for proof of concepts, powerful for small tools that are for you. It's gonna be a lot better than you writing up a Word document for me to implement.
Viktor
00:09:04.765
It's similar, you know how I, I forgot the names. If those tools that people would use to mock, the website that they would create, you know, kind of like, oh, I want a logo here. I want the search box here. Uh, basically wire framing in a way. Right? And they would do many iterations on that. Until they figure out how functionally all that should work and what do they do with it? They don't convert it into, into the final website. They just use it. Okay, now we know what we're doing right now. We understand what we want. Now let's do it. Ignoring that thing.
Darin
00:09:46.809
They use it as reference, but that's about it. Now, stepping back for a second, AG agent AI is starting to make that possible to turn into a real website. Let's not go there. Actually, we could, let's, let's, let's actually go down that rabbit hole for a second. Let's say we use Ag agent AI to take that figma, that balsamic mockup.
Darin
00:10:15.834
And then there's a new version of Chrome or Firefox that comes out, or safari that then causes everything to break because of how that site was written. Mm.
Viktor
00:10:26.079
But let's backtrack for a second. Who took that fig mine? Converted it into real website.
Darin
00:10:32.949
More than likely it would have been not the person that did the Figma or the balsamic
Viktor
00:10:37.989
Yeah, but digital software engineer, hopefully experienced one right behind the helm supervising the ai, let's say, giving instruction to ai, right? That that person would hopefully, probably likely, uh, avoid the scenario that you ended up with, right? Kind of. Oh, what happens when we open it in mobile? Right? That person already knows. Because that person did it right? That person would be redirecting ai kind of. This is Figma, but Figma is not everything there is to it, right? There is me as well. That's the important part. We have Figma and we have Me and me and Figma are going to give you the information and steer you in the right direction.
Darin
00:11:19.498
I think we went down the path too far there. let's drop back to, we got something vibed and. Now, and I don't have anybody else. I'm, I'm, let's say a junior developer. I've got two or three years experience. Not a huge amount, but I'm comfortable with languages. I can do things
Darin
00:11:40.288
and I vibed a solution. Looks good to me. I, and things start breaking and it's just outside the reach of things I haven't seen before.
Viktor
00:11:52.728
Okay, but you're already kind of like engineering mindset, right? You already understand the principles of software engineering, right? You're not that inexperienced. You have experience just not necessarily. At certain scale or certain number of years and so on and forth, right? If that's the scenario, then that's that conversation with ai you would be doing, okay. I, I know that something is wrong here. I dunno what, right. Let's let, let's, let's try to figure it out, right? it'll probably take you, maybe that person would need a full day with its agent to reach the conclusion that you would reach within an hour with that agent, right? Uh, if, if the person is skilled, that person will get there eventually. same thing is without ai, just to be clear, right? You would go there and say, oh, uh, within 15 seconds, kind of, oh, okay, so this is the problem, right. Kind of you forgot this and that. But it's not that the junior alone without you would never necessarily get to that conclusion. It's just that that person would need to. Go through Stack Overflow, Google it, uh, this and that experiment, come up with seven wrong conclusions and eventually get to the same place where you were in 15 seconds. Right? That's the difference between experience and inexperience, but everybody can eventually get to the same point. I'm not even now talking about ai, I'm talking about humans. The major difference is that experienced people. Can avoid being in that situation in the first place, or when they get to that situation, they figure it out much faster.
Darin
00:13:36.447
Let's assume that my vibed solution was fine and I continued vibing to create new features,
Darin
00:13:45.927
right? I'm going down a separate path here, and I've been successful in vibing these things out. Now I have a fully vibed app. And I go to create this new feature, but then it goes completely sideways. We talked about being rogue in a previous episode, let's say. It's not as rogue, but it's just, it's just not right. It looks right, but it's not right and I can't, no amount of vibing is getting me to right. Am I finally getting to the point to where. Maybe I've got to do, because effectively I've been refactoring, right? I didn't know the word just because I've been vibing. I'm not really a great engineer, but I don't really understand the concept of refactoring. But I've been refactoring along the way, and now I'm getting to the point to where, dang, do I need to rebuild this thing?
Viktor
00:14:37.794
Yeah, at some point you might or might not get to the point where you need. Help from somebody who is more experienced than you. I don't think that that's specifically, uh, related to ai. I feel it is the same thing. Like you could be using hosted WordPress right before. Whichever, there are dozens of similar services that allow you basically to create a website by, you know, picking from a template, moving things left and right, and so on and so forth. And you can get a hundred percent of what you need, right? And tomorrow what you need might change and you might still be able to do it. And then day after that, what you need changes again. And then you get into a situation where you cannot move forward anymore. Right? You might never get to that page. It depends what you're doing or you might get to that space. And if you do, then you need help from somebody else, right? It's, uh, it's the same like with anything you know, like you can fix probably some things on your car, right? Change the tire. You don't need an expert help, I'm assuming here dar, that you're not a car mechanic or experienced with mantling with cars, right? But there are still things you can do. and you do it and, and it somehow works, but then, all of a sudden engine does not start and the five things that you need new how to, to do related to engine or starting is not working. And then you go to a mechanic, there comes a day when that happens. Maybe never. Maybe you sell the car before that happens for all you know, depends.
Darin
00:16:12.804
So here's a different way to look at it. Let's say team a HR. Has vibed out something
Darin
00:16:21.294
and it wasn't just a single vibe. They had vibed for a while, and let's say it was six months worth, but now it's at that refactor replace point.
Viktor
00:16:31.520
Let stop you there just for me to under, to get the context. Huh? I'm throwing a bit here. Did that hr, whatever they were doing, whichever way they were accomplishing that task before they started Vibe coding, they were also doing it by themselves in the past. Right. Can I assume that Okay. Like Excel or whatever? Yeah. Cool.
Darin
00:16:55.035
Okay. So they've done the solution and, but they've, they're now at the point to where they're stuck and they need to hand it off to real developers. So maybe this is where we're moving towards that internal application team that will help solve the problem. There's two things that I see here. First off, yay, we've got something that works. Semi works did work in the past. That's no longer working right now. Right? One of those three states. That's still a yay because, but then the flip side is, it's a what have I gotten myself into? 'cause I do have something. But my reaction is going to be sort of like the old Saturday Night Live move. When something's not working, just shove people outta the way and rewrite the thing. But then the problem's going to be is if it's still working, then you rewrite it, then it's gonna break. If it's not working and you try to write it, then you don't really know what you had because it's not working. So as the development team, you're banging your head. Thinking, okay, great. This was working. I'm trying to unravel the spaghetti that was vibed into existence and now I'm expected to actually make it work.
Viktor
00:18:18.312
There is another possible alternative. World in which, okay, so before all that, you read copy and pasting from emails into Word documents and then parts of that Word document. You were copy and pasting into Excel sheet and you know you were completely doing it your own right. And now you could vibe, code lovable or something like that, and your process all of a sudden became better. By doing that, you realize that, oh, now my needs change. Oh, now I realize that I can do also this and that, and you eventually hit the roadblock because every time you do something, some new doors open, right? No matter how skilled you are, or no, right? The moment you did a, you realize, oh, I did not know that I can do B and C as well. Right, and you hit that road roadblock and you cannot proceed further, then you need some experience, engineer what's not. But let's say you say no, kind of, okay, so this is how far I got, and my life is still much better than it was before. Before I was on my own. I'm still on my own, but me on my own now is better than me on my own. Before I would like more. I cannot get that engineer, but I still improved my processes. I improved my work situation you could have asked for that experience engineer before Vibe coding, just to be clear. And you didn't,
Darin
00:19:55.691
and I didn't. So therefore, it's okay that I'm stuck. Now I have to make the decision. Do I stay stuck? Do I try to press through myself or do I hand it off to somebody else?
Viktor
00:20:08.478
Not necessarily stuck more often than not these days, you'll not be stuck. You will have what you initially thought that you should have. It's just that having that. What you wanted to have created some new expectations. Oh, but I would also like this. Right. And that might be the part that you cannot do anymore, but you're not stuck. your new newly unfulfilled fantasies cannot be done.
Darin
00:20:39.912
Well, again, we were talking about vibing. This, this is no different than low-code,
Darin
00:20:45.565
we had spreadsheets, then we went low-code, and now this is just the next natural progression in getting things created.
Viktor
00:20:52.990
Yeah, but the point I'm trying to make is that before low-code, no code, you had a limit that depends on from one person to another, and then with low-code, no code, you also had a limit. But that limit is probably higher than it was before. And now with wipe coding, you also have a limit and it's probably higher than before. And at any moment in time, right. Uh, you could have asked for expert help. So it's not that now you need to ask only because you're vibe coding. You could have asked for expert help and you were doing no-code, low-code and before that when you were doing it in noted right? So expert help was always there. And if anything, I would argue that if you do choose expert help, that expert is more likely going to be capable to help you with your vibe coded up. Then with your no-code, low-code up before, and then with noted before that.
Darin
00:21:49.051
I, I wanna stay in that case right there to where you have been vibe coating something, or you're starting to vibe code something and you're able to get somebody to pair with you that is experienced as a software developer. I think that pairing in an organization is gonna be the strongest pairing that could ever exist within an organization. You've got somebody that knows the business cold.
Viktor
00:22:14.194
Correct. Basically, somebody who comes and looks at what you did and tells you you should write this prompt, it never occurred to you to write that, that specific prompt, but that person knows, oh, you should tell you to do this. that that was, I cannot say impossible, but now that is more likely going to work than what that person could have done when you were low coding.
Darin
00:22:43.048
I think our concept of pair programming is going to be changing. When we think pair programming as software developers, we think it's okay. Two software developers. I don't think it's that anymore. I mean, it can be, but I don't think it's that anymore. It doesn't have to be that anymore. It's going to be somebody that knows the business well, and you've got somebody that knows the software well.
Viktor
00:23:07.346
I've been in the past. I, when I was writing code more, that was a while ago. I loved pair programming. That was my favorite thing, Usually I was doing pair programming by one of us writing tests. Another one writing implementation, going back and forth, right? And then with ai, I feel that I'm, pair programming again, which is that my pair programmer is now an agent, how I pair program slightly changed. Conceptually still the same. But then I was, and this is real, I'm not going to name names. And then I was asked by, by a person, can we do pair programming on this thing? And that happened relatively recently, right? So me, that person and an agent. And that did not work. 'cause then it's not pair programming anymore. Now it's what's the what the expression? Mass programming now crowd.
Darin
00:24:06.232
I have a really not safer work way of putting it, but I'm not gonna say it. that doesn't surprise me. 'cause you have three people, three organisms, three good grief. I don't even know what to call it. Trying to come to consensus on something.
Viktor
00:24:25.282
It's also not on the same level. It's on different levels, right? Because that person is telling the agent what to do and I'm telling that person what to tell the agent what to do. Strange. But going back to your initial question, pair programming, I feel that I'm pair programming now with the agent really? Just the time. I'm more demanding anymore because before I was mostly like equal partner, right? Kind of, I'm going to do as much as you do now. I'm kind of, I'm, uh, I'm, I'm the person in charge. Kind of like, ah, yes, yes, yes, yes, yes, yes. No, this is wrong.
Viktor
00:25:05.889
I'm the boss. I'm the boss. But let me tell you that actually, I, I never liked being boss of people. I always, I had few cases where I was kind of managing people and that did not end up well, and I really, really disliked that part. But kind of being a boss of a, that feels slightly better than, much better actually than people, less demanding.
Viktor
00:25:36.525
Oh, I prefer paying money than, than, uh, than listening to quarrels and then silly requests and trying to make everybody happy, even though I know that half of them are just silly.
Darin
00:25:48.049
are some things that we can do to really prepare for the technical debt wave? I think that's going to be coming at us as software developers.
Viktor
00:25:57.088
That's the part I've been, I'm not sure, to be honest, right? If you ask me that question, let's say half a year ago, I would probably have a rant about the importance of clean code, well structured code, readable code, you know, the all the good things about code that we're writing. Now, I'm not so sure anymore. I'm not so sure how much those things are important because we are accumulating that in any, in any case, right. No matter how we do it and what we do now. In the past, I think that it was very important that code is written in certain way and organized in certain way and what's or not, so that when we realize that the depth, and when we choose to pay it. We actually do it easier or faster than we could have right now, I'm not so sure anymore. Like I see myself less and less being okay. So, you know, like before I could, I, I could have very strong opinions how functions are named. Oh, it needs to be Camel case, right? Or it needs to be this, or it needs to be that. I, I find myself caring less and less about those things. If, if that's what you mean by depth or, yeah. When I catch it repeating a code that already is used elsewhere, and it's very similar, I tell it to, not to repeat a code, but if it does, so what? Right. 'cause it's going to be so much easier for me to fix problems, uh, with AI than without that. I'm willing to give it. A kind of bigger leeway as well.
Darin
00:27:42.217
I think the key part to this is we're focusing on vibe coating here, so there's no need for documentation if you're vibe coating. Hm. Again, five coding.
Darin
00:27:52.931
The problems would be if we were doing spec driven development or document driven development, whatever, it's, whatever the name of the week is for that. That's different, right? You, you already have assets in place, but if you're just vibing something, I'm starting to get into your campus, like, does dry even matter anymore?
Viktor
00:28:09.545
Yeah, because why did it matter before, right? It mattered because if you have in five places the same thing, we have to spend five times more time to fix it, right? Or to change it. But now if it takes, okay, so it takes a full minute instead of 10 seconds. So what.
Darin
00:28:35.737
Exactly. It's not, it's not that we don't want dry principles to be in place, we're. Taking that as the example, but if we see that after vibing things and it's like, oh, I learned about dry. It's like, oh, I see we've got this code everywhere. Once you consolidate that, that way we're not having problems in the future.
Viktor
00:28:54.082
Exactly because, but before you couldn't do that easily, right? Because you could say, okay, you know what? I just actually have a hundred thousand lines of code and 50,000 of those hundred lines of code that repeat all over the place. Let me consolidate that, right? Let me apply dry principles. And the answer would be, I didn't say that. You think that I'm going to work for a month now. To actually fix your non dry mistakes, the answer would be no. First of all, works. Second, if it doesn't, I did not figure it out earlier. I figured it out. Now, let me tell you to find the patterns that are repeatable and extract it into a separate function and then refactor the that code to use the function. Okay, so I'm halfen hour, uh, in, and I'm done. As a matter of fact, that's actually one of the easiest use cases for ai. It's much harder to vibe, code, or, context engineer or spec driven, whatever. Whatever the naming is, it's much harder. To actually make, make an agent, implement the feature that you wanted, then to refactor the code later. Refactoring is so now.
Darin
00:30:22.329
Well, and along with refactoring, probably the thing you would do should do is, Hey, we're getting ready to refactor this, but I don't think we have enough tests to make sure that the refactoring doesn't break. So go ahead and write the test now to make sure everything is working as expected. Then we'll do the refactoring later go.
Darin
00:30:41.666
Then all of a sudden, your test suite is much bigger. Yes, it may take you an extra day, two days, whatever, who cares? But then when you tell it, okay, now go and make it dry again. We're sticking with the dry example here. Then all your tests are working well. What did you get outta that? You got better maintainable code in theory. You got a heck of a lot more tests in theory that you didn't have before. It's all an upside. So are we pro vibe coding? Depends. Are we pro working together with agents? Yes. I'm still trying to think through my example. 'cause I still, I still think a business person. An engineer working together in association with an agent is good, but I haven't actually done it myself. your example is a little bit different 'cause you had two engineers working with an agent. Maybe one of you needed to have changed roles. I don't know. It's, it's a tough call to make.
Viktor
00:31:52.527
I, feel that, and this is, and I repeat this, the word feel, that our roles will be shifting and that we will be in multiple types of a, uh, managers at the same time. I feel that that's the direction our industry is moving to. before you were just developer or just tech lead or just product manager or just manager. And I think that we are moving to the world where you are all those people at the same time and the rest is done by agents and that's going to be a tough change.
Darin
00:32:33.648
Some people will make it. Some won't. Head over to the Slack workspace, go to the podcast channel. Look for episode number 3, 2 9, and leave your comments there.