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.
Viktor 00:02:31.512 Ah,
Darin 00:02:32.502 two completely
Viktor 00:02:33.282 This is English not being my my mother tongue.
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.
Viktor 00:03:21.770 Yeah.
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:05:56.095 But isn't that partially an illusion?
Viktor 00:05:58.775 What is an illusion that chefs cook better than ordinary people?
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:33.435 There we go.
Darin 00:06:34.635 and it'll be sustenance.
Viktor 00:06:37.185 It serves your, it serves the purpose,
Darin 00:06:40.575 Yeah.
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.
Darin 00:07:10.132 that's not slightly different. That's extraordinarily different.
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.
Viktor 00:10:05.534 Mm-hmm.
Darin 00:10:06.024 And turn it into a real website.
Viktor 00:10:09.669 Yeah.
Darin 00:10:11.094 Let's assume that that actually worked.
Viktor 00:10:13.864 Mm-hmm.
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
Viktor 00:11:38.553 Mm-hmm.
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,
Viktor 00:13:44.557 Mm-hmm.
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
Viktor 00:16:19.374 Mm-hmm.
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:53.055 Yeah.
Viktor 00:16:53.445 Now continue.
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:51.701 Correct. I could have asked for them earlier
Viktor 00:19:54.581 yeah.
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,
Viktor 00:20:43.812 Yeah, yeah, exactly. Same thing.
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.
Darin 00:25:04.434 You're the boss. You're not a
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.
Darin 00:25:32.100 Well, it depends how much money do you have to pay them.
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.
Viktor 00:27:52.631 Okay.
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.
Viktor 00:30:40.256 Correct.
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.