Every claim below is a statement made in this
recording, quoted word for word and linked to the second it was said, so
you can hear it rather than take our word for it. The wording comes from
the transcript published alongside the recording; the sentence above each
quote is our reading of the claim, not their wording.
Their wordsMy response is that that's a statement by someone who doesn't understand software engineering. Coding is part of what you're doing, but it's only a small part of what you're doing.
Their wordswe're accumulating code faster than we're accumulating trust and that sense of trust comes from me struggling to understand some domain concept I get it. I represent it in the code. I have I write tests that demonstrate that I really did understand it. And now I trust my program.
Their wordsYou look under the underneath though at the code and it was just a horrible unmaintainable mess. But the fact that people could program the programs that they wanted was a a significant step forward as opposed to I'm going to write a thousandpage requirements document and then wait 8 years and not get what I want which was the alternative that we were offering at the at the time.
Their wordspart of the goal of programs is to communicate intent to other human beings and now to models as well which which is a much more open-ended problem. We understand a lot more about how to communicate to other human beings whether we apply that understanding or not. We don't understand at all how to communicate effectively to models
Their wordsYour understanding of somebody else's problem is bounded because you're not in the middle of it. You don't have the same skin in the game. If you're not semiconductor test engineer, you don't have as much skin in the game as somebody who is because they're going to have to be using this interface for a long time after you're gone.
Their wordsSo a a big challenge in object-oriented programming is dividing the responsibilities because you're moving the computation to where the data is. Saying, "Well, this object does this and that object does that is a really critical decision because you want to you want the computation near to the data so that there's less coupling between them." which is a lesson that I I think uh kind of got lost in the noise. That's the fundamental design move in ob in designing object-oriented programs and I I think I stand behind that.
Their wordsSo beforehand because of this social divide between programmers and testers. There was a lot of incentive for the testers to have their own language. This is my tool. I know how to run it. I'm going to run it.
Their wordsand I thought programming sitting fingers on keyboard staring at code that's that's where I do my learning because that's where you can no longer fool yourself that you actually understand either you compute the correct value or you don't compute the correct value. So I wanted to elevate that moment of reality meets program and that's where the programming comes from.
Their wordsAlways try your stupid ideas if you can do it cheaply and reversibly. Jumping off a bridge is not a reversible decision. Not talking about that. I'm talking about stuff like this where you're just like, "Here's a stupid idea." 99 times out of a 100 it'll fail. But that one time you won't have any competition cuz nobody else is stupid enough to try this idea.
Their wordsAnd then there were people who used it as a moral cudgel. Like you should be if you're not using TDD, you're not professional. And that's just such People can write very good software with a wide variety of workflows.
Their wordsIt's when you have this rapid alternation between I do a thing, I learn a thing, I do a thing, I learn a thing, I do a thing, I learn a thing. That's where TDD is really powerful. But it's not a moral decision. It's a practical decision.
Their wordswhat I don't like about it I didn't like about it then and still don't like about it is it's not defensible. Nobody's going to say I'm not agile. Oh no, I prefer rigid development. Oh, I prefer inflexible development. No, everybody's going to say that they're agile, which extreme doesn't have that problem.
Their wordsThe agile manifesto is the intersection of the ideas of the people in the room. I think there's a lot more to software development than is contained in the manifesto. And I've written books and books and books about what I think those things are.
Their wordsAnd there were people who were willing to say, "Nah, no, no, don't worry about that. This is easy. You can do this. Anybody can do this. Twice the work in half the time." From my perspective, that's just a lie.
Their wordsAnd what I had to learn was the reason that people come to me with those out of proportion responses is because that's what they need. They need a hero or they need a villain. and their need for a hero or a villain has nothing to do with me. If it wasn't me, they'd be contacting you. They'd be contacting somebody else. It really doesn't have anything to to do about me.
Their wordsThen you had code review which gave you another level of feedback. You could roll out internally more frequently. And everybody was using Facebook for all kinds of stuff, personal and internal business stuff. So whatever feature you developed, people would start using it immediately. So you get another round of feedback. Then we had this phased roll out process where you'd start rolling your stuff out. If there was a problem, the blast radius would be limited to a a few million people.
Their wordsIf you accomplished everything you set out to accomplish, people, you know, you're sandbagging. you're not trying hard enough. You're not risking enough. You didn't learn anything over the course of the six months.
Their wordsIt's not always pleasant. It's not a pat you on the head and you're going to be fine. It's a It's a don't like no, you're screwing this up. Go try this thing. Tell me how that works. Oh, you didn't try the thing. Oh, you don't want to work on this? Okay, we're done. Quite uncompromising. uh I say coaches are are there to identify and induce productive discomfort
Their wordsThere are people who say, "Well, it's up to the rest of the world to adapt to the ways that I'm weird." It's just not because I mean, it's not going to happen. So, learning empathy, learning how to read body language, learning how to read tone of voice, this is not natural skills, but they're skills. They're learnable.
Their wordsSo one of the things is that the pace of development is definitely accelerated. One thing I wonder the pace of business hasn't accelerated though and that mismatch is going to become more and more apparent.
Their wordsOkay. So now we have people who've been able to rely on switching costs to protect their profits and the switching costs just drop to zero. Their profits are going to drop to zero and and some people aren't going to survive that change.
Their wordsSo, we're going to see people get into those where they're like, "Well, I vibe code the tip of the iceberg. I throw away the rest of the iceberg and now I'm in trouble because now I don't know what to do. Now I get to these downstream problems that I didn't even know existed." So, we're going to see on the on the side of the the the vibe coding replacers, we're going to see that kind of a naivity play out.
Their wordsSo how you write code, how you manage projects, who you hire, how many people, what the org structure is is completely different in the three phases.
Their wordsNobody knows now. That playbook has been wiped clean and people whose identity is I know the playbook are now terrified. Who who am I? Now, it turns out that the skill of writing a playbook is completely different than the skill of applying a playbook.
Their wordswhich is why when I see manifestos today I'm just like too soon. Not a bad idea. Would love to have one just too soon. It took 15 years for the technical change of object-oriented programming to come before we could say here are the consequences of it. Here's how in a simple way we can express how to effectively use this technology that we've been using day in and day out for 15 years. The genie comes along. People are like, "Well, what's the new manifesto? It's just not manifesto time yet.
Their wordsthe genie runs out of g runs itself out of options it can't make further forward progress and so I'll wipe it away start over I won't try and tweak I'll start over and say all right well if I implement things in a different order. If I implement with this markdown file or if I implement it with this commit hook, we collectively need to try absolutely everything.