Developer Community And Conference Conversations: Mike Hall Interviews Dan North

UGtastic Archive
Full Transcript Available
LIVE CC UGtastic Archive

Press play or click any turn in the transcript to start real-time synchronized playback...

Jump to a moment
Dan North, the father of BDD, shares his thoughts on the evolution of BDD from a flexible practice to a dogmatic approach. He questions the monetization of ideas and emphasizes the importance of understanding context in applying development patterns. #BDD #Agile #DevOps
The Interviewer

Mike Hall

Interviewer, UGtastic

The Guest

Dan North

developer community and conference conversations

The Conversation


Mike Hall Interviewer, UGtastic ▶ Speaking
Hi, it's Mike again with UGtastic. I'm still here at GoToConf Chicago. They haven't kicked me out yet. I'm sitting down with Dan North. Dan is, uh, well, known as the, kind of, the father of BDD. Well, not the, you are the one who wrote the first paper and description and first implementations. Um, and I also think it's fascinating that you're kind of an iconoclast who likes to question dogma. Over the years, over the last seven years, BDD has become dogma. Either you do it or you don't, you know, and you can't do BDD, TDD, you gotta do BDD, and there's all these things, and being that you're a person who questions dogma, what is it like to be someone who created something who's now been accepted as a dogmatic thing?
Dan North developer community and conference conversations ▶ Speaking
As a dogma, I think, yeah. Um, so this to me comes down to experience. So what happens is when you have someone who is new to something, when they're a novice in a particular area, they want to just find a thing that works. They want to be told what to do, they want rules, they want structure, and they want to be able to just follow a recipe, and they want to get quick wins in that way. This is sort of part of learning theory, is that this is how we operate while we gain context and while we gain experience, and once we've got a bunch of experience and a bunch of context, we can start making good decisions.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
Now what happens is people will pick up something without any context and say, "Right, well then, this must be how it works," and they're really uncomfortable, as I was talking about, with uncertainty.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
They don't like the idea of uncertainty. They don't like the idea that we can't know some things, and so they'll fill in the blanks, and this is what we do. So, BDD, I've deliberately never written down, I mean I wrote the Introducing BDD article, but I've never really been that descriptive or prescriptive about what it is and what it isn't, because to me it isn't a set of practices, it's a way of engaging, right, it's a way of trying to get work done.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah, it's a way of thinking about a problem.
Dan North developer community and conference conversations ▶ Speaking
Yeah, and Liz Keir says this really well, she's basically, it's about the conversations, right, everything comes back to the conversations, and so, you know, I said in a talk recently, like the only BDD tool that matters is the one in your head, but that's it, everything else is just detail, and so you get the kind of the camps that are the, you know, the aspect camps, and the J Behave camps, and the cucumber camps, and all these guys, and then, and then, this world of misinformation about, oh, BDD is this, and BDD is that, and you know, BDD only works at this high level, and then you use TDD down in the, whatever, and I think a lot of that is a basic misunderstanding of what TDD is, and what I was trying to do with BDD, and where that's ended up, so, I think with anything, as long, as soon as it's around, for any length of time, people will become dogmatic about it.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
There's, there's, there's a, there's a subset of people, there's a, you know, there's a, there's a type of people, if you like, who are going to pick up on something, and, especially when they start making that their thing, like if they're selling, you know, I'm a BDD consultant, then they've got to sound pretty definite about things, this is, this is BDD, and this isn't BDD. This is why you should listen to me.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah, this is why you should listen to me, this is why you should pay me bucks.
Dan North developer community and conference conversations ▶ Speaking
Right. You know, um, so, I, I have a working theory, it's only a theory, I have no data, only, it's, uh, only observational. Uh, which is that people start selling certifications in things, when they, well, like, yeah, like any of those things, when, when they think it's the last good idea they're gonna have.
Mike Hall Interviewer, UGtastic ▶ Speaking
Mm-hmm.
Dan North developer community and conference conversations ▶ Speaking
So, there's a, um, yeah, I, I'm gonna, I'm gonna monetize this thing. Now, I, I never wanted to monetize BDD, um, because I don't think it's a, you know, it's, it's just, it's a useful thing.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
It's useful thing, you shouldn't monetize ideas, I think, that's, that's crazy, or, or rather, you shouldn't try and lock down ideas. There's, I came across a lovely quote, um, if you want an idea to, to, to travel, you shouldn't try and travel with it.
Mike Hall Interviewer, UGtastic ▶ Speaking
Oh, okay.
Dan North developer community and conference conversations ▶ Speaking
And I really like that.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
And you, and you look at, well.
Mike Hall Interviewer, UGtastic ▶ Speaking
Don't, don't assign it to your personality.
Dan North developer community and conference conversations ▶ Speaking
No. No, very much so. Here you go. So, put it out there. So, um, BDD started as me trying to coach TDD better, because TDD is so awesome. I love TDD. I love the, the thinking that goes in TDD. And I, you know, you, you've heard me bashing on TDD.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
I'm not, I'm bashing on TDD zealots, um, because I'm bashing on zealots. Right. Do you know what I mean? It's like, it's just. It's not TDD. TDD is a pattern.
Dan North developer community and conference conversations ▶ Speaking
It's a pattern in the classic, uh, Alexandrian sense of a pattern. It's a strategy that works well in a particular situation, in a certain context. It resolves some forces, it introduces other forces, and it needs to be used in conjunction with a bunch of other patterns. So, there are places where the, the, it's the first thing I'll reach for is TDD.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
There are other places where it's just going to slow me down, or it's going to be irrelevant, or it's even going to lead me to a wrong solution.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
So, so when people say, well, Dan North is in a TDD, that's, that's, it almost sounds like that dogma trying to find a conflict, where it, it really isn't.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
It's, it's, it's making, it's making up a phantom enemy. And, and that's part of it. But I think part of it as well is it makes a good soundbite.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
You know, uh, Dan North is advocating copying and pasting code.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
I, I am, right? Yeah. There's, there's a certain context in which I want to copy and paste code. Um, and the context is very specific. And I describe it. It's one of my, um, accelerated agile patterns called ginger cake. And the point about it is it's a pattern. It works in a certain context. That doesn't say you should always copy and paste code, or you should never copy and paste code. Because given these constraints in this environment, in this context, it's a useful strategy to have in your pocket.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Mike Hall Interviewer, UGtastic ▶ Speaking
And it, that it's, that when, it's towards that level of mastery where, I wonder if part of the dogma is people just don't feel, uh, confident enough also that there's, well, I'm going to take a step back. And I want to just go back to what you were talking about with the last idea. I've heard, uh, that the reason that they want to charge money for it is because they think it's going to be the last idea.
Dan North developer community and conference conversations ▶ Speaking
Mm-hmm.
Mike Hall Interviewer, UGtastic ▶ Speaking
But I've heard that in, uh, with music as well. I've heard it as an argument why. Is that right? Um, that's how many songs does an artist have in them? And if they don't charge for them, how do they know that they're going to have another hit? And if they don't protect their copyright, how do they know they're going to, you know, continue?
Dan North developer community and conference conversations ▶ Speaking
Ah, so, right. So, so, so, so it's, it's then thinking, I've got a hit here.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
So I need to, yeah.
Mike Hall Interviewer, UGtastic ▶ Speaking
Okay. I like that.
Dan North developer community and conference conversations ▶ Speaking
Yeah. It, it sounds like it's a human way of thinking about problems. It isn't unique to software development. It is, it's just, humans do this when we're, when we're confronted with the fear of, this is all I've got.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. Maybe a center, yeah.
Dan North developer community and conference conversations ▶ Speaking
Uh, Linda Reising was talking about this yesterday, loss aversion.
Mike Hall Interviewer, UGtastic ▶ Speaking
Okay.
Dan North developer community and conference conversations ▶ Speaking
So the, so the idea that you have a thing and you might lose the thing is much more compelling than, uh, so she was talking about reward structures and she said, if you offer someone a bonus for doing something, it actually, it, it ends up being a disincentive. Like all the data says it ends up being a disincentive.
Mike Hall Interviewer, UGtastic ▶ Speaking
Is that the Dan Pink's drive?
Dan North developer community and conference conversations ▶ Speaking
Um, they, oh, there's a ton of, there's a ton of research around this.
Mike Hall Interviewer, UGtastic ▶ Speaking
Okay.
Dan North developer community and conference conversations ▶ Speaking
Um, he's one of them certainly. Uh, and that'll sort of behavioral economics school. Um, but that if you, uh, present it as I've already given you this bonus, but you'll lose it if you don't reach these targets, people will work extra hard to hit those targets.
Mike Hall Interviewer, UGtastic ▶ Speaking
Okay. So it's not even though it's hypothetical.
Dan North developer community and conference conversations ▶ Speaking
It's, it's, it's, here's your carrot, but I'm gonna take it away.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
Yeah. It's, it's, it's the risk of losing a carrot is more effective than a carrot.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. Or a stick.
Dan North developer community and conference conversations ▶ Speaking
Yeah. It's to offer the carrot as a thing that you could lose.
Mike Hall Interviewer, UGtastic ▶ Speaking
And I can see how that is because I can be like, I have this carrot, we're gonna take it away versus I don't have a carrot. I don't lose anything, but you know, I, I, I might work all the way up to the line and not get it. Uh, you know, I have to say even what you described is I've seen these bonuses at companies where now when a company says, we're gonna offer a bonus to you, uh, for performance. I've been in enough companies where all of a sudden at bonus time, it was, you know, we weren't doing so hot last year.
Dan North developer community and conference conversations ▶ Speaking
Yeah. Well, it's been a tough year.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
We're gonna have to pull that, that belt a little tighter. Just, just see my new boat.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. And I, I, I, I, I nearly had that thing and I lost it.
Dan North developer community and conference conversations ▶ Speaking
Right. Um, so it rises over, there's a great interview with, um, Alanis Morissette, randomly, in one of the music magazines. And, uh, and it's about her second album. So her first album is an angry, angry music.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
Yeah. And then her second album, she's met this guy and she's really in love and she's really happy. And it's this album of happy songs. Things have gotten much better.
Mike Hall Interviewer, UGtastic ▶ Speaking
It's gotten much better.
Dan North developer community and conference conversations ▶ Speaking
And it's, it's actually, it's a good album. There's some solid songs on there, but it's a happy album. And, and they were saying like, all your fans are really furious because you, you know, you're, you're not writing this angry music. And she's like, I don't write angry music. I write music about how I'm feeling.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
I was angry. So I wrote angry music. I'm happy as I'm writing happy music.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. I like to cut myself to the first album.
Dan North developer community and conference conversations ▶ Speaking
Yeah. Yeah. And yeah, exactly. And it's like, you know, I, I, I'm a fan of yours and I want to, I want, I want you to carry on being angry because that's what I associate with you. And, and you get, you know, in our industry, I think there's, there's something of that as well. There's a, there's a cult of personality thing where you associate someone with something and, and that can become a reinforcing loop.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
So there's folks, certainly in the kind of agile end of the industry who, who do do one thing and they do the one thing again and again and again and again. And it's like, well, you know, are you stuck there? Like move, move that thing forward. That thing was great. It was a great solution for the problem you had in that context. What's the new context? What, what, what has that move forward? Um, someone who's the antithesis of that, uh, is someone like Michael Feathers, who's always, always on something new. He's always, brains always going. He's always coming up with ideas. You know, he wrote this book about legacy code, you know, about a hundred years ago, which is still a classic and still deserves a place on every programmer's bookshelf. And he's just doing crazy, crazy other stuff now. Right. And he's looking at, uh, how code bases evolve over time and all this. And he's, you know, every time I see him speak, it's fascinating. It's new. It's, uh, you know, it's, it's, it's taking ideas forwards. And so that there are folks who, you know, the, the, the only association I have with Michael is it's going to be interesting. Right. Do you know what I mean? I don't know what he's going to talk about, but it's going to be interesting. And it's the, um, I call it the, the, the noun problem. Once you get a noun as your middle name, that's like, like, you know, you're, you're the, the legacy code guy or you're the BDD guy. Then you're kind of like, well, yeah, I'm doing other stuff as well. BDD was one step on that journey. And, and also, um, if you look at it as a little ecosystem, there's, I'm not, I'm not where the action is. Right. You look at Goyko Ajic with specification by example. You look at Liz Keough with the BDD for life stuff. Um, you look at Chris Matts and Aleph Marson with the real options. And like, all of these things are kind of going off in really interesting, crazy directions.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
And I'm looking at that going, wow. Do you know what I mean? I, I, I'm, I'm really enjoying seeing that.
Mike Hall Interviewer, UGtastic ▶ Speaking
From the other side of it, as somebody who's like, I remember reading, uh, your, your post about, uh, BDD back up, you know, in, in '06 or '07. And I was doing .NET at the time. And I remember just, you know, being like, oh, this is, you know, this is really great. And wanting to figure out how to do this in .NET because it hadn't been defined yet. But I can understand that urge to want to look at the first person. You know, the first person who, who initiated it. And maybe not necessarily trusting those that came after. And when you're looking and you're trying to figure out what this thing is. And you're trying to understand and get something in mind, that I can remember continually going back to your blog and trying to get more information out of.
Dan North developer community and conference conversations ▶ Speaking
Yeah. I need to write more. It goes to the cult of personality thing.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
Um, where instead of me just thinking about the idea and saying, how do we talk about this idea? It was more of, well, how do I understand more about what that person was trying to say?
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Mike Hall Interviewer, UGtastic ▶ Speaking
And then it becomes, well, so I can see how that thought process can evolve in people who are looking at these ideas.
Dan North developer community and conference conversations ▶ Speaking
Well, and this is, and this is why I name drop as furiously as I do.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
Is what I want is that when people come searching for, you know, for me because of BDD, the, you know, the first or second thing they see will be me talking about Liz or talking about Goico or talking about Chris or, you know, these guys.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
Because then they go up. Well, that's somewhere else I can look. And it creates that association. Eric Evans does the same thing with Domain Driven Design. He'll talk about, you know, the folks who have taken that on and evolved that and developed that. So you go and look at pretty much any of his talks. And he's talking about what other people are doing with his ideas, which is fantastic.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. It sounds like . . . It's going to create a generational thing, you know. Yeah. You see these things evolve. And it's a different mindset between that I have to push people down to lift myself up. Versus I'm going to build people up. And as I build them up, I'll come up with them.
Dan North developer community and conference conversations ▶ Speaking
Well, it's the zero-sum game thing. It's like I don't believe in kind of slicing up a pie. I believe in trying to make a bigger pie. Do you know what I mean?
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
Because then that everyone eats.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
And we all have a lot of pie.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. Which is awesome.
Dan North developer community and conference conversations ▶ Speaking
Because pie's good.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. Okay. Well, going to so many different conferences and speaking to different types of audiences, one of the things I've talked to some speakers about is how do they prepare and how do they maybe change the messages? Or how do you or do you change your message when you're talking to a predominantly job audience or predominantly agile practitioners, people who identify themselves as agile people and they come. Do you, when you are going to be talking about your topics, do you adjust what you're going to say for the audience or do you say, I have a message and I'm going to just keep repeating that specific message?
Dan North developer community and conference conversations ▶ Speaking
So, now who was it? I think it was someone like Rebecca Parsons is the CTO at ThoughtWorks. She said to me, when I was talking about BDD and I said to her, I feel like I've been talking about BDD forever. And she said, if you've got an idea and it's a good idea, you'll just find that you keep saying it again and again and again and again because people need to hear it again and again and again and you're going to get lots of different audiences and you're going to keep saying that message. Now, that's if you're trying to get a particular idea across. What I find is, and I was looking back, I've got like, I don't know, 40 or 50 different talks I've given over about, you know, eight years or something across all kinds of different topics and what I'll try and do, even if I'm giving the same talk again or the same, you know, title and abstract kind of thing, so it's the same, it's the rough, it's largely the same message, I'll always try and refresh it. And because it may be that, you know, if it's a talk I gave six months ago, my thinking's moved on. And I look at it and I go, do I still think those things? Or have I tuned that message? Or actually this thing came out a bit ambiguous and so I want to kind of tweak it. So I'm constantly tweaking my talks, constantly tweaking, well, yeah, so trying to move the ideas forward. I mean, I had a massive, I think epiphany is probably the right word, in the last couple of years with the Accelerated Agile stuff. So I went from being a big A Agile consultant in a big A Agile consulting firm. I mean, ThoughtWorks doesn't have a named methodology, if you like. They'll use whatever works in a situation, they're very pragmatic in that way. But there was very much a ThoughtWorks feel of doing Agile. And the kind of clients I'll be working with, these big, heavy, enterprising organizations where you needed to move, you know, help them move at the speed they could move at. And then I ended up in this tiny little team doing crazy stuff. And had to rethink a whole bunch of stuff. So I was, you know, you say the iconoclast thing. There were a whole bunch of, like, for me, real core truths that I sincerely believed about how software gets written that I've found myself challenging. And what I try and do in those situations. So you can either just go, la, la, la, I'm going to go back in my, you know, in my happy place. Or try and assimilate that. And so that's where I've ended up now. And someone was asking me about, like, you know, why have I called it Accelerated Agile and not be past Agile? And isn't there time for a new thing? And I think the main discovery I've made, or the main realization I've come to over the last couple of years is the thing I've been working with and the thing I've been, you know, that I'm now trying to document is Agile.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
As in the manifesto rather than Agile as in the methodology.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
You know, the methodologies. So get back to the core principles.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah, yeah.
Dan North developer community and conference conversations ▶ Speaking
And, you know, and people over process suggests that people and interactions are more important than any process. Ergo, as soon as you start defining that as a process, you've systemically set up to fail. Right. You know, there is a dogma around Scrum. There is a dogma around Kanban. There is a dogma around BDD. There is a dogma around all these different things. XP. XP had the 12 commandments.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
Now, you talk to Ken Beck about XP, and that's the opposite of anything he wanted people to be thinking.
Mike Hall Interviewer, UGtastic ▶ Speaking
Really?
Dan North developer community and conference conversations ▶ Speaking
Right. He's very much, he's entirely values driven. You know, he's very much, like the whole point for him, the whole point of the first book was, you know, communication, simplicity, feedback, or the core values. Oh, by the way, here's some things he did on this really cool project.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah, here's some nice tools that support that.
Dan North developer community and conference conversations ▶ Speaking
And it was experiential. It was like, we've done this, and these are the things that we found that worked. Now, you have to do this. Right. And then that became, you know, and he also had this lovely picture of how they support each other and which ones.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah.
Dan North developer community and conference conversations ▶ Speaking
It was a pattern diagram. It was a pattern, a diagram of resolving forces and patterns. Like, he thinks in patterns. He's one of those guys. And, unfortunately, people wanted rules. And the point about a pattern is it's contextual. And the point about rules is they're not. And so people took all these patterns, all these really good ideas, like TDD, like pair programming. It's brilliant in many situations. It's not a thing you should, you know, there are no silver bullets, right, including that. Automation. Automation has an evil dark side. As soon as you automate something, you're locking that thing. You're now making that thing brittle.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
Yeah. Automation has a problem, which may be okay. Maybe you want fast and repeatable at the expense of malleable.
Mike Hall Interviewer, UGtastic ▶ Speaking
Mm-hmm.
Dan North developer community and conference conversations ▶ Speaking
But it is at the expense of.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right, right. There's always trade-offs.
Dan North developer community and conference conversations ▶ Speaking
Yeah. And all of these things. And so, dogma, I mean, bringing right back to your opening question, I think dogma comes from where we don't have context or where we have fear.
Mike Hall Interviewer, UGtastic ▶ Speaking
Mm-hmm.
Dan North developer community and conference conversations ▶ Speaking
And I think those two things tend to be very closely related. So the more context we have, the more experience we have, the more we understand a situation, the less fearful we are. Or the less irrationally fearful we are.
Mike Hall Interviewer, UGtastic ▶ Speaking
Right.
Dan North developer community and conference conversations ▶ Speaking
So it all comes down to Yoda. It always comes down to Yoda.
Mike Hall Interviewer, UGtastic ▶ Speaking
Yeah. Okay. Well, thank you very much for taking the time to sit down with me. I really appreciate it.
Dan North developer community and conference conversations ▶ Speaking
Thank you. Thanks.
Mike Hall Interviewer, UGtastic ▶ Speaking
Okay. That's good.