DAVE:
One person on Twitter after I wrote my apology, replied to me and said, “Oh, and this time I mean it.” And I'm like, “Wow, Twitter is for *** people in the ***."
CHUCK:
Hi, Angela!
[This podcast is sponsored by New Relic. To track and optimize your application performance, go to rubyrogues.com /newrelic.]
CHUCK:
Hey everybody and welcome to Episode 49 of the Ruby Rogues Podcast. This week on our panel we have Avdi Grimm.
AVDI:
Hello again.
CHUCK:
We also have David Brady.
DAVE:
Howdy, Howdy.
CHUCK:
James Edward Gray II
JAMES:
I'm back.
CHUCK:
Josh Susser.
JOSH:
Hello from sunny San Francisco!
CHUCK:
I'm Charles Max Wood from Teach Me to Code and this week we have a special guest rogue and that is Angela Harms.
ANGELA:
Hello.
CHUCK:
Angela, you are pretty new to our audience. You wanna tell us a little bit about yourself, Who you are and what you are about?
ANGELA:
Let’s see, I make software on a team in Lean Dog in Cleveland. Used to be on a boat but now on an airport temporarily.
CHUCK:
Wait on an airport permanently? Or are you travelling?
ANGELA:
No, no. So we are on a boat. People might know that and it’s been renovated.
DAVE:
You said this couple of times; you have a boat, like, do you guys own like a house boat on the river or something?
ANGELA:
Oh you didn't know that? Okay, so Lean Dog’s offices are on a boat, it is just true.
JOSH:
So when you have to work hard to keep your business afloat, you really— *laughter*
DAVE:
Is your theme song that clip from Saturday Night Live?
ANGELA:
What clip?
DAVE:
The “I'm on a boat, I'm on a boat, I'm on a boat.”
ANGELA:
Yeah, I didn't know that. You just censored yourself right?
DAVE:
I did. I did.
ANGELA:
Yeah, the first week I worked at Lean Dog, I couldn’t stop saying that. *laughter* Anyway it’s a cool place. We got a lot of fun.
CHUCK:
So do you ever apply a patch to your office? *laughter*
ANGELA:
Well, they are doing a lot of work right now to make sure it doesn’t sink.
JAMES:
Lean Dog is pretty big consultancy right? How many people there? [02:17]
ANGELA:
I guess 30. We have a software studio, which is half of those people maybe and then also a consultancy.
JOSH:
Do you do web development or some other kind of development?
ANGELA:
All kinds. My team is working on an Android app, which is not as cool as it might sound. *laughter*
DAVE:
It really isn’t. *laughter*
JOSH:
Now if we can work on REAL androids that would be fun.
CHUCK:
Oh, there you go.
ANGELA:
Although I wonder if they would be even harder to test.
CHUCK:
So, besides Lean Dog, what else? I mean, you came and talk to Mountain West Ruby Conference (at least I was there). You talked about pairing. Are there any other areas of interest that you have or other things that you work on?
ANGELA:
Okay so I'm pretty much obsessed with collaboration and, well, to be blunt, I'm pretty much obsessed with love. I set out to find out whether all the calendar quotes and platitude are true or if they were just crap. And I decided after years of studying that they were true and the word have immense power to change the world. So I decided to pursue it without compromise and that is how I ended up with Agile world (which is kind of weird).
CHUCK:
Cool.
DAVE:
I don’t know how to follow that up.
JAMES:
Actually, I get it. (I got to tell this story because this is hilarious.) When I was doing Ruby Conf, I wanted to come up with an activity to get everybody to socialize with each other. So for the first one, we MD5 your name and put the first few numbers and letters of it on your name tag. Then we gave everybody cards in their check-in packets or something. And then you have to trade and get your own hash and once you have your own hash, you get that, that is how you win prizes and stuff. So we did that we so we can get programmers to communicate with each other and the best part of being the organizer of this conference is got to watch their way. And it is amazing because people would come up to the table and would be, like, “Do you have any F’s?” and they will be like, “No.” or “Yeah.” or whatever. And they would have this exchange, trade some cards and then sometimes, they would get caught by like this twinge of, “Oh yeah, I'm socializing.” and then and they would say something like, “By the way, my name is Jeff.” *laughter* Yeah I guess my question, (there is a point to this I think). I guess my question is, why communication and programming? I mean, we are all supposed to have Asperger’s. Have you not read the memo?
ANGELA:
Yeah I have my own little series of diagnoses. Yeah, with Asperger’s, doesn’t mean that you don’t have feelings or connect with people.
DAVE:
If we all have Asperger’s. Who cares if she has Asperger’s? *laughter*
ANGELA:
So why programming and communication?
JAMES:
Yeah.
DAVE:
Yeah.
ANGELA:
Programming because, the same reason everybody else does it, “Because you can’t not”, right?
DAVE:
Oh, I like her.
JAMES:
That was the best description ever. You just describe all of my thoughts in, like, one sentence. *laughter*
ANGELA:
Well, that my kid said, “Maybe I’ll become a programmer. That seems like a pretty good job,” and I was, like, “You know, that's great if you love it. But if you don’t love it, you are not going to be happy.” Right? Programming, you do it because that's what you have to do. It’s not, like, “What should I go to school for? Let’s see… Oh I know, programming!” That would be, like, a nightmare career. (Talking about everybody that you’d have to work with.)
JOSH:
I tell people I like programming because it’s a people job.
ANGELA:
Yeah, it is.
DAVE:
That is mind blowing.
JAMES:
Yeah. We are pretty far off the map now and I think nobody realizes this.
DAVE:
So to paraphrase an old music joke, I told my dad I wanted to be a programmer when I grow up and he said, “No, son. You can’t have it both ways.” *laughter*
JOSH:
Well, I think as in most things, the hard part of programming is dealing with people. The great thing about computers is when you tell computer to do something, it does it and when you tell it to do the same thing again, it does the same thing.
JAMES:
You have a different model computer than I do. *laughter*
JOSH:
You might want to upgrade James.
ANGELA:
So 1990, I left IT, I left programming because it was hell. The sup who’d been assigned to supervise me said, “You have no choice.” and I was, like, “Oh, thank you for saying that. I do have a choice, I'm leaving now.” And I quit like for a long time, decades almost.
JAMES:
You know, that is actually really interesting. I just got done reading this old science study. I think its place back in the 60s and it’s pretty famous where they had a subject in there and the subject was actually an actor, that they thought they were shocking them and that actor will cry out like he’d been shocked and then eventually he would start mumbling and then stop making noises, so they would think that they knocked him out, you know. And the person doing the study was sitting there, trying to the subject to keep shocking him. An interesting thing you just pointed out is, the number one thing that would get people to stop is telling them they have no choice. Apparently that kicks in some kind of thing our their brain like, “Wait, that is not true. Yes, I do.”
ANGELA:
That is awesome. I had no idea that was true with other people.
JOSH:
Yeah, it’s actually true of all humans; about pretty much the quickest way to get a human to do something is telling them they don’t have a choice.
ANGELA:
Oh, that is beautiful.
JOSH:
And think that’s why salesmen often offer you two bad choices.
ANGELA:
Because we are compelled to choose?
JOSH:
Well, I mean, if you think that you have a choice then, I mean, you think that you can actually play the game to your own benefit or something like that. But if it’s, like, “Oh, this is the only choice you have,” you will be, like, “Oh, screw that.” Anyway, so you were saying?
I left IT because it sucks so bad and then I discovered Agile. Agile, the way it was described to me not-- yeah never mind that.
JOSH:
Oh, I'm glad we are going to get into this.
ANGELA:
It was like a whole different world, it was just beautiful. Kent Beck’s book, “XP Explained,” have you guys read it?
DAVE:
Oh, yes.
JOSH:
Yeah.
CHUCK:
No, I haven’t actually.
JAMES:
I haven’t read that particular one. No.
ANGELA:
If you haven’t read it, you should read it. It made me cry. It was so beautiful. It was like an entirely different vision of how this can work. I mean, I actually did not program for like ten years because it was so painful, the IT work, and I was just, like, “I’m not going to do it.”
JOSH:
I took a break from development for a couple of years, too. It got to be pretty dreadful and I didn't like the way things are going in projects. So I'm right with you. I didn't take off for 10 years but--
JAMES:
What did you do on the side?
ANGELA:
I manufactured human beings.
JAMES:
Oh yeah. Awesome. And that process is very complicated, too. *laughter*
JOSH:
Yeah, but if you break it up into shorter durations, it’s not as bad. *laughter*
ANGELA:
I have the most amazing bunch of kids.
AVDI:
How many children do you have?
Four.
AVDI:
Nice.
ANGELA:
Yeah.
DAVE:
Did you do, lik,e a retrospective in between each one? *laughter*
ANGELA:
You know, I miss the whole Agile thing. I disapperared and let the people with more intestinal fortitude than me create a new world of IT. I have intense gratitude to people like Ron Jeffries, Bob Martin and Kent Beck. Okay, can I say **** now that I said ****?
CHUCK:
Go ahead.
JOSH:
We prefer *****. *laughter*
ANGELA:
Yeah, to make this happen. I just can’t believe that they did it and I'm just so grateful.
JAMES:
So you left during the dark times and you came back during the golden age?
ANGELA:
Yeah, maybe. Sometimes I wonder.
CHUCK:
So I’m a little curious and I think this will get into some of the discussion that we should have about this, but a lot of people have different ideas about Agile. I think most people, if they aren’t really schooled in what it means, they just think it’s whatever methodology they are following, so that is XP or Scrum or whatever. You know, we have the Agile manifesto but what exactly does “Agile” mean for you?
ANGELA:
Agile means the courage to look at reality head-on without a bunch of blame and angst around it and to adapt as you discover things around the world. Flexibility, open-heartedness and constant improvement, listening to each other, making things better all the time because of doing those things.
JAMES:
Wait, you don’t use “git blame”? *laughter*
CHUCK:
No. You use give blame.
Yeah, you can alias that. Can’t you?
AVDI:
Doesn’t it also work as “git praise”? *laughter*
DAVE:
I don’t think it works in git. It works in subversion.
JAMES:
Yeah, subversion has it both ways.
DAVE:
Has svn praise as an alias and when they moved over to git, they realize nobody uses the praise thing. Why bother porting it?
CHUCK:
So, svn praise, is that like subverting praise?
ANGELA:
Praise is a lot like blame. It’s a judgment about somebody and I think what I really want is git discover. Find out what happen and we can talk about it and solve it.
JAMES:
Yeah, me too. Please tell me what happened here, Chuck?
CHUCK:
“git WTF”?
ANGELA:
Yeah, that's what I want.
JAMES:
So that is actually a really good point you just made there. So what you are saying is that even when we praise somebody, that is also a form of manipulation right?
ANGELA:
It is and it’s also setting ourselves up as the judger of what is good and bad, right? With my kids I want them to know whether they are happy with what they’ve done, whether it’s keeping in their own values. I don’t want them to know whether it’s keeping with my own values necessarily or if I do, I’ll tell you, “I like what you did. Did you like what you did?” It’s not like I'm the arbiter of all things right or wrong.
JOSH:
And you call yourself a software engineer?
JAMES:
I know. She’s missing all the key parts right?
DAVE:
Guys, I don’t think she has Asperger’s. *laughter*
ANGELA:
Did you say you don’t think I have Asperger’s?
DAVE:
I don’t think you have Asperger’s.
ANGELA:
Well, I could tell a few stories. *laughter*
JOSH:
How about start with one?
ANGELA:
A story?
JAMES:
A good story, yeah.
ANGELA:
I don’t think I have any good Asperger’s stories.
DAVE:
I knew it! HAHAHA.
ANGELA:
Painful! Painful Asperger’s stories. You don’t wanna hear them.
AVDI:
You are talking like not saying, “This is good,” than saying “I think this is good. What do you think?” Didn't we talk e-prime at least once before on the show?
JAMES:
I don’t remember.
AVDI:
Yeah, well, it’s basically just a mode of speech when there are not a lot of conjugations of “to be”. For example, the sentence: “The film was good,” can translate to e-prime as “I liked the film,” or as “The film made me laugh.” That is from Wikipedia.
ANGELA:
You don’t use “is” or “to be” or whatever. So they talk about it like a language but it’s really a different way of thinking. It’s the way of using your language to modify your thinking. So if you are saying, “The film was good,” you are making an assertion about the reality of the universe, “That was a good film,” as though it can be measured (which it can). It only comes out of your own *** it doesn’t come from any objective reality. So e-prime encourages you to talk about what you actually have access to, which is your feelings, your own observations and not so much to try and put those things on the universe as some sort of reality that you can argue about.
DAVE:
So e-prime is basically an attempt to take the Sapir-Whorf Hypothesis and say instead of SapirWhorf that happens to you, it’s something that you can use to happen to other people.
ANGELA:
I don’t know what that thing is that you said.
DAVE:
The southern worldhypothesis says that, that the language you grow up hearing shapes the way that you think. And so this is turning that around. This is basically picking up Sapir-Whorf and using it like a tool. It becomes a transitive verb. We can use this to change things.
ANGELA:
Yeah, although when I'm working with people about changing their approach to life, I'm really cautious about changing our language as a way of changing your mind, unless you’re really clear that that is what you are doing. People can get misguided. So non-violent communication is taught both as a methodology and as a way of changing your own heart and the way you interact with the world. And when it’s a methodology, it puts wall to people. It tells you this is how you phrase everything that you say and then you sound like a robot and everybody you love is pissed off at you. But if you change what is going on inside you and then talk normally, it doesn’t work that way. So that is one example. Another one is like the use of “I statements”. I statements can mean you are actually talking about your own experience or they can mean you are phrasing all your own accusations and judgments of other people in terms of an “I statement”. Like, I really think you are a ****, right? That is not really an “I” statement. So it’s not really enough to change your language. That's what I'm saying. It’s very risky to lean on that as a way of improving your connections with other people.
DAVE:
So the second one was changing the language as a methodology and you said that that was double plus on good. What was the changing your language was the good way?
ANGELA:
If you use it as a clue for what is going on in your heart. So e-prime for me for example, if I'm thinking about e-prime and I hear myself start to say something and I go, “Oh wow, that was me using an is. What's that about?” and then I noticed that it was about me making the judgment about the world. That is useful information about me. If I just learn to couch everything I say in terms of, if I learn tricks to get around the language rules, then I'm not getting anywhere.
DAVE:
So what you are saying is don’t gamethe system?
ANGELA:
Yeah, but that is an automatic thing to do if people make it about the language.
CHUCK:
The idea that I am getting from this is that, you can use your language to kind of fuel a retrospective on yourself (so to speak), so that you are looking the way that you are and realizing where your shortcomings are so that you can do better, be a better person and therefore put more good out into the world.
JAMES:
To tie it directly programming, I mean, we talk a lot about on the Rogues how code’s first purpose is to communicate with the reader, right? Well, similarly, you can manipulate your language to communicate your internal states, right? It’s kind of the way I take it.
ANGELA:
Are you guys with non-violent communication, “NVC”?
JAMES:
No, I had to look it up when you used it in an email.
ANGELA:
So it’s often thought as a way to modify your language in order to supposedly increase connection with other people. Okay, I’ll be bold and say it doesn’t work that way. It only works if it’s a way to discover about who you are and where you are coming from and learn to own that stuff and not try to put it out into the world.
JOSH:
I just read something this morning about how the involuntary muscles in your face that communicate emotions, they are involuntary; you really can’t control them. And they were talking about dealing with body language and really the advice was, you got to change what is in your heart about what you are communicating, otherwise you are just going to give yourself away all the time and people are actually pretty good at picking up all of those non-verbal cues.
ANGELA:
You know what is really cool about this? It all ties right back into Agile. I was just thinking how weird it is that we got off to this topic. So IT has this long tradition of trying to come up with sort of “fake” information to make us all feel better, right? We try to create statistics and measurement that will impress people and get funding and keep people off our backs until late in the game. And with Agile, we are supposed to be trying to be honest about things all along and really visible. We try to be really public with all the information that we have so we can figure out what's really going on, right? And this stuff about how you’re communicating regardless and so work out what's in your heart. If you want to think people think you are nice or that you love them, you need to work on that inside because the information is out there. You can’t fake it. There is a kind of vulnerability on a personal level that you might as well embrace it and iteratively improve in the way that you want to improve because you cannot fake it. It’s not possible.
JOSH:
Was it George Burns who said, "Sincerity is everything. If you can fake that, you've got it made."
JAMES:
That is awesome. *laughter*
DAVE:
I just say I just finished reading about the concept of the Duchenne Smile. Have you heard about this Josh?
JOSH:
No.
DAVE:
This ties into the micro facial communication. A Duchenne Smile is named after its discoverer Mr Duchenne, who found that when people smile authentically, the corners of their eyes crinkle. And when people are faking it, they call it the Pan-American smile, names after the way stewardesses smile at the people that they loath, that are getting on and off of the Pan-American flight. *laughter* And it’s really incredibly relevant, because they went through a high school year book from like 60 or 70 years ago and they concentrated just on women who are smiling and they found which ones are Duchenne Smile and which ones are Pan-American smilers. And the Duchenne Smilers lived 19% longer on average than the Pan-American smilers. And this is from “Authentic Happiness” by Martin Seligman (which is going to be my pick at the end of the show) because this is just a phenomenal, phenomenal thing. It all ties back to, Angela, your comment about non-violent communication. I think the secret to non-violent communication is to become non-violent. I don’t think there's any other way around it.
ANGELA:
Yeah, and it takes a long time.
JAMES:
I'm wondering if Duchenne is the same guy in Duchenne disease is named after. (Sorry, sidetrack).
DAVE:
I bet he was really unhappy when he find that out and, like, frowned all the time.
CHUCK:
Crinkled the side of his eyes when he frown.
DAVE:
Yeah, it’s the early events of crow’s feet disorder.
JAMES:
So when you’ve been giving a bunch of talks on pair programming. I saw one at Ruby Midwest and I know you did it again at Mountain West Ruby Conf recently. So pair programming is about communication right?
ANGELA:
Yeah, and actually in Tech Week in Chicago in June and San Francisco Agile in June, for the record.
JAMES:
You'll be giving the same talk there?
ANGELA:
I will be giving a talk that there. I don’t know if it will be the same talk. It wasn’t the same talk at Mountain West than it was at Midwest Ruby for sure. Because Brady ****ed it up.
DAVE:
I did. Angela, I don’t think you can give that talk enough honestly. I thought I know pair programming pretty freaking well and you schooled me so freaking hard. It’s like I totally discovered pair programming since then. I absolutely love you and I am grateful for that talk. That was freaking amazing.
AVDI:
What was some of the gist of the talk?
ANGELA:
Well, let’s see, okay I’ll tell you how David screwed it up. He got up there like the second talk of the conference talking about love and mushy crap and like it had to be from your heart and I'm was like “Oh, damn it!” So I write this talk and I'm going to all organized and outlined because that's how you do talks right? So I have all this what he calls left brain stuff about here’s how you pair program and here’s what matters and here’s how you fix problems . Step 1, 2, 3, right? But the real thing is really about “confident humility”. It’s about knowing that you belong in a world and be willing to take your place and connect with the other person. And having the courage to say, “I don’t know what's going on”. And so we need to do this again or figure it out or talk about it. Courage to grab the keyboard and that is a loving thing to do and the courage to give it up and that is a loving thing to do. Those are the things that make the real difference. In the end, it’s about taking the people what I said is if you are one of the people who loves pair programming or cares about wants to happen, whether you are junior or a senior, it’s your job to take the lead into teaching the other person how to collaborate because collaboration is a beautiful thing but most people don’t know how to do it. So if I give it right, the gist of the talk is, it’s in your hands to teach the other people to collaborate and then make the world better by doing that.
JOSH:
It loved the talk too, that was great. I worked with Pivotal for years and we pair programmed all the time and all the pivots had been there a long time, you ask them, “What is the most important thing to pair successfully?” and it was uncanny how many people would say. You got to get your ego checked.
ANGELA:
Yeah.
CHUCK:
There was a lot that came out in Angela’s talk, too, that was really about that. That was just you had to have this empathy for the person to working with. You have to care. You can’t just sit there and say, “Okay, well, my brain and your brain,” but it really is about, “Okay, I am going to act in your best interest. You’re going to act in my best interest and it’s going to be this benevolent collaboration.” So it’s not about being right or whatever getting credit. It’s really about making it a full on collaboration where you’re actually, (it’s really hard for me to boil down what I learned because I guess I internalized it to a certain point where I can’t articulate it), but really where you have those kind feelings towards each other and really it’s about doing the best in each other as well as for the project. I don’t know if I'm saying that well or not.
DAVE:
I think you are, Chuck. Angela’s complaint that I screw up her talk is that she went back and basically unstripped all the context back into it and I love that. The most challenging thing from her talk for me is that, if you are the junior programmer and you’re feeling that you are having a bad time with the pairing, you have to have the courage to turn to the senior and say, “Give me the keyboard because I need to teach you how to be a better collaborator,” and the really the toughest part for me was as a senior, I zone out all the time and she pops up this slide “What happens if your pair is zoning out? I'm interested, what happens if you are zoning out? And I have always just assumed that it’s because I have ADHD. I zone out all the time. I zone out when I'm not medicated enough and she basically said, “No, you zone out when you are lost and you don’t have the guts to tell your partner, ‘I'm lost.’” and especially if you are the senior partner, if you are the guy who knows what is going on and you become detached with what is going on, it’s really freaking hard. I'm going to stop saying “you”--when “I” get lost. It’s really freaking hard for me to look at somebody as my junior or even worse, a client who is paying me $3/hour, three figures an hour to be the smart guy in the room, it’s really hard for me to turn to them and say, “You know, the smartest thing I can say to you right now is I don’t have a clue what you are doing.”
AVDI:
So I keep hearing echoes of mindfulness, like mindfulness practices here in this whole conversation and I curious Angela, do you find inspiration with some of the mindfulness or Zen with for any of this?
ANGELA:
That is a trick question?
AVDI:
No, I honestly have no idea. I had no idea that e-prime was a big thing in Agile either.
ANGELA:
Yes. I’ll say yes. I spend a long time going to a Zen temple every day until I’ve changed and I started doing things. But yeah, it’s a huge part of how my life changed and then I figured this crap out.
DAVE:
Guys, can I just say this call has gone to a really weird and wonderful place? This is not what we started talking about and I am absolutely in love with where we’ve gone.
CHUCK:
Yeah, I'm actually going to change the title from “Agile Development” to “Agile Communication”.
DAVE:
Yes!
CHUCK:
But at the same time, I mean, this is an area that isn’t often explored in programming and I think there are a lot of benefits that we can get from things like this. Because most of the time when we are talking about programming, we’re talking about the code. We are talking about how we can do this or how we can do this better and all of this stuff, but here we are actually talking about the code or the pair that is coding.
AVDI:
People over process.
CHUCK:
What was that?
AVDI:
People over process.
DAVE:
And more importantly “ourselves”. We are not talking about the people, we are talking about ourselves.
CHUCK:
Yeah, but at the same time there's so much value because if you can change the coder then you implicitly and inherently changed the code and there’s so much power in that just because you’re changing the originating point of everything that we talk about normally on the show.
ANGELA:
So that reminds me of something about collaboration that I like to say, and I wanna say that about people. Somehow, people have the idea that when you are collaborating with somebody, everybody puts their idea out and you figure out which one is the best one and you pick and it wins. But the thing about collaboration is, it’s different from cooperation or that’s sort of calculus. It’s more that you put ideas out and they change. If you put ideas out and you have openness about it and you are not clinging to your ideas to being the right one, all the ideas change and they improve from the actual interaction that you have. So you end up with something that is totally different from anything that anybody started with. Pair programming, when it’s two people taking turns writing the code, it’s totally different from when two people are getting together and producing codes that either one of them could’ve made on their own.
CHUCK:
Yeah, and I've seen that with pairing with Dave in particular or he’s the person I've probably paired with the most.
DAVE:
There have been days, Chuck, when you and I have gotten to the end of a long, gruelling day of programming. It was something that took both of our brains and therefore neither brain alone can understand how we got from there to here and it’s weird and magical and kind of freaky and fun and kind of like this call.
JOSH:
Well, there was one thing that you said in the talk, Angela, in the Mountain West that I loved and I wrote it down. It was, “If you are working on your own, the best you can come up with is the best you can do.”
JAMES:
That's cool.
JOSH:
When you start collaborating, you get to do more than what you can do on your own, which is I
guess the whole point.
ANGELA:
I wanna mention that the fact that I gave that talk is really weird to me and the fact that somebody wrote down the thing that I said is really weird to me.
JOSH:
And I tweeted it to thousands of people.
ANGELA:
That is just crazy.
JAMES:
So pretty much if you are wrong about that--- *laughter*
JOSH:
I have a record.
ANGELA:
Oh, I love my mistakes to be big and visible.
DAVE:
Nuclear engineering is probably not for you.
JOSH:
So Avdi said that “people over process” and I think that is worth saying just a little more about. I look at the heavy weight processes that many of us have worked with in the early years. That it’s really about controlling people to manage their limitations and say, “Okay, if we can have these perfect programmers, we could just let them loose and we wouldn’t need process but people suck so we are going to create this process to mitigate the damage anybody can do on their own.” or it seems what it is in a lot of cases, but the Agile practice that I've been involved with is really about improving the programmers, improving the way that programmers can work so that you don’t need all this process to pump up people who you assume is going to mess up if you don’t watch them.
CHUCK:
Yeah, I think we've all been in those situations and I think we've probably all been in the situation where the heavy process has Agile scrolled across the top.
AVDI:
Well, that’s something I'm curious about. Yeah. It’s, I mean, here we are in 2012 and for a lot of people, especially a lot of people that are younger industry, Agile is the establishment that they--
DAVE:
It’s the man.
AVDI:
Yeah, it’s the man, exactly. And I see a lot of complaints about Agile that are very similar to the complaints are you the rational unified or whatever heavy weight process from before. I think some of them may be unwanted or some of them are maybe some of them are a bit more wanted because of the way Agile has sort of been used almost as a bludgeon. What is the best thing that I can do? And any of us can do to gently bring Agile back to its roots or to help people understand it better or just generally sort of come out of this combative Agile is trying to control my life with stupid practices idea.
ANGELA:
Yeah I'm really glad you brought that up. Okay, let me get controversial. Just ignore me if you don’t like it, but I've wondered this about Christianity and Buddhism and lots of other things that have been ways that I can discover how to be open and connected with other people and have all kinds of beautiful things emerge and also I've seen used as a bludgeon. (Josh, that tweet is a little distracting, just saying). *laughter*
DAVE:
Don’t you Tweet it during the call! *laughter*
ANGELA:
I didn't mean to.
DAVE:
It’s a mind killer. Learn from my mistakes, Angela. Learn.
ANGELA:
So we want to have everything worked out and the state of being open to whatever happens. So there is a Buddhist teacher whose name is Pema Chödrön, (I don’t know if I am pronouncing it right), but she talks about sitting in this groundless place where you’re open to whatever happens. You’re embracing reality and being in that place is really difficult. It’s not solid; it doesn’t give you something to cling to and people want to cling to something, right? So we took this beautiful message and we try to make it to something that is a set of rules that you can follow without thinking. It doesn’t work. I guess my answer to the question about what you can do is to stay vulnerable and to stay present with your own heart all the time even though you are being asked to make things rigid and being asked to create structures and things that you can avoid connecting with people because you have this nice wall of charts and stuff in between you. Like, you just make the decision to stay present all the time, even when it hurts. That’s what I think you can do to make it different.
DAVE:
Can I follow up on that a little bit? Avdi, you talked about agile, I like it capital “A” and lowercase “a” Agile. Where “Agile” is like the religion, it’s like the racket that got started as a result of “agile” which is more like the spirituality of it. I think if you step away all the context of Agile and reduce it to little rules, but if you keep the context, then you have to stay human, you have to stay in meshed in it. I'm realizing that a lot of people, when you strip away the context, Agile stops working and that is the problem with it. The really frustrating thing is (and I don’t wanna invoke the wrath of uncle bob) but I'm seeing a lot of people that is going to software craftsmanship and the clean code movement not because they want to embrace context again, but because this set of context less rules didn't work. I want an, all new set of context less rules. So I think what Angela said on staying present on the moment, yeah for me agile suddenly just became instead of embracing change, embrace context.
JOSH:
I wanna know which development tool is going to empower me with that kind of communication. *laughter* Should I be using RubyMine or Emacs?
JAMES:
It’s all Microsoft products.
CHUCK:
Visual Studio. *laughter*
DAVE:
What if we all died and went to heaven and we find out that the Visual Source Safe is the one true source control editor?
JOSH:
Glad I'm not going to heaven. *laughter*
CHUCK:
Oh man, that just reminds me of that South Park episode.
DAVE:
Turns out it was Microsoft SharePoint.
JAMES:
So I'm going to purposely try to stir the conversation in a different direction because I know something about Angela that is kind of neat.
ANGELA:
No, don’t say that. Don’t tell them that.
CHUCK:
Yeah, we only have few minutes till picks.
JAMES:
Okay, I’ll try to be quick. So Angela, you are unschooler right?
ANGELA:
Yes, I am.
JAMES:
Can you tell people what that means?
ANGELA:
Well, it only has that name because everybody else assumes that school is how things work. So if you can imagine that school isn’t how things work, then that’s what we are like.
JAMES:
That is a good description.
CHUCK:
Okay, so why don’t you wave your hand out a little bit more and maybe I’ll---
ANGELA:
Okay, so here is a really easy way to tell you, so we don’t do any schooling unless the kid of some age decides to do some schooling and they do. I can tell you that my kids learn to read, (there are four of them) one of them began reading at 3, which I think I also did according to the stories. One of them started reading around five, one of them started reading, more like was actually able to read, probably at 10 and another one didn't read until he was about 14 and he has diagnosed with dyslexia. But none of these kids were taught to read. The one that read at 14 actually spent a couple of years in school because he was my step-son and I wasn’t there. But none of the ones that learn to read were taught to read in any way, the same way that they are taught to speak or walk.
JAMES:
By “taught” you mean is like what we view in school as deliberate instruction, basically?
ANGELA:
If you don’t teach kids to read, they won’t know how, that theory, yeah. Yeah, they were not taught to read.
DAVE:
So I'm going to ask a serious question, how do you learn rocket science that way?
ANGELA:
Oh, awesome, so my oldest kid--
DAVE:
Yeah, it’s a serious question.
ANGELA:
Yes, and I have a serious answer.
DAVE:
I know.
ANGELA:
Oldest kid is researching AI; he taught himself, he took some sort of trigonometry at a community college or something. After that, he's taught himself Calculus and then he’s taught himself Math that I don’t even know the names of. So if you wanna know category three ask him and if he doesn’t know he’ll look it up and then he’ll tell you. And, like, now he’s taken the Stanford classes after doing very well last quarter, last semester, whatever and he is brilliant. He learns whatever he wants. These kids are completely free to learn whatever interests them. So one of them is a political philosopher. He is really obsessed with political philosophy and will talk your ear off. Another one is an artist; oh, the political philosopher is also a musician. The other one is an artist and then there is an AI researcher.
JOSH:
So I actually brought this up, obviously there's lots of ways to do schooling and stuff but I was wondering if you can tell us if you think that those relate to programming in some way.
ANGELA:
You know, we didn't talk about TDD and how emergence is an amazing thing in the universe that gives us stuff that we couldn’t create otherwise, but one of my picks will address that. But I will say it’s a way of remaining open to the world. Like instead of being boxed in studying what they are told to study and having to switch contacts whenever they are told to, they get to think about what they think about and explore in question, that's what good programmers do I don’t know what it has to do with programming except that what it would have been like in high school if you can code all day long ain't that be amazing?
JAMES:
Well, I did actually do that in high school, but it just means I would have spent less time in the principal’s office. *laughter*
CHUCK:
Well, I think that it’s interesting, you know, that you have all these people that do go to school, I mean, they go, they get their high school then college education, they graduate, they go get a job somewhere, they figure out they hate what they studied and they wind up with something else. It is really interesting, like, kind of going that route where you have a degree in English and you wind up being in the IT professional. If you can just explore where you are at and who you were and figure that out and then you know just learn to excel in that area. I don’t think that this is so farfetched in that sense because there are more so many people that wind up doing something that they didn't think was suited to them, due to education or due to the expectations that people have with their education.
ANGELA:
What they are available to. Like right now, there’s no reason I can’t self-educate right, like, through the internet.
AVDI:
Yeah, that's easier than ever before. Just data point, Chuck, what you just describe as a possible idea, that's basically me. I was essentially unschooled. There were some chunks of my upbringing where there were a little bit more structure but, yeah, I was largely for large portion of it unschooled and I basically kind of chose my own path and found something’s that I love.
CHUCK:
So one thing that I wanna point out too is that I have a bachelor’s degree in Computer Engineering which you would think, oh gee that is related, but really what it did is it provided me with pattern to software engineering so when I graduated an IT guy, I was going to manage servers and networks and stuff. Because I had taken a bunch of computer science classes and I was just, like, I don’t wanna build these toy programs, I wanna do something else, something that has meaning. It wasn’t until I was out in the professional world and had have tool that my boss would buy for the department I was running that I started to program in because I could. And that’s what changed my mind it was all of a sudden it was like “Oh, this is kind of call and it actually matters.” and I think there were definitely some valuable things I learned as a part of my education both in high school and in college and I got certain opportunities because I was in those places but ultimately, I don’t think that they really drive you toward that level of exploration. I think that is kind of a sad thing because the opportunities that a university or high school can really offer would be terrific if they were geared a little bit more about, “Okay let’s let you explore and figure out what makes you tick.”
JAMES:
Yeah, and the other reason I brought it up is, if you are one of those programmers who earn your bachelor’s degree and you assumed they loaded your brain with what you needed to know and then you just went forward in your career with that, then probably you don’t get it whereas, those of us who are into it and were like, “I’ll take this and figure out asynchronous communication between process” or things like that. With that process of how we learn new things. New languages, if you stay with the languages you learn in school then you will be writing all your programs in C and Java unless you went to a pretty good school, Pascal maybe. But you know, that's not really the way that programming works. It grows and changes like a living organism. Everybody is obsessed with AJAX and we have to learn that and adapt that and how we do and now it’s all JavaScript development.
ANGELA:
Yeah, you have to be a lifelong learner to be happy here.
CHUCK:
Yeah, and if you don’t believe this, get out of academia and go get a real job.
DAVE:
The thing that is blowing my mind just is absolutely completely out of my skull here is that this is BDUF versus Agile written into the educational spectrum. BDUF is Big Design Up Front or Waterfall Development. Chuck, you got a BDUF education, you got a Waterfall education it’s very formalist.
CHUCK:
They mentioned Agile once or twice.
DAVE:
Well, the education itself was BDUF.
JAMES:
Yeah, but you were talking about the cheerleader, Chuck.
CHUCK:
That's why it was so interesting.
DAVE:
Anyway, the point is that (they completely resets me that am awesome) *laughter*
CHUCK:
(Sorry.)
DAVE:
The point is that you are one of your education we can prove to some governmental standard that you had gotten your proper first year of your education and then your second year is your proper second year of education. And it’s just like designing a program formalistically bottom up. You can prove that step of the way that you are building a logically sound, correct, provable program but when you are done, you discovered you build the wrong program or in your case you finish with your education and you prove that you got the wrong education. And it’s not until you went out and said, “Hey, we are going to decide, we are going to learn. We are going embrace what is out there,” then you start building what is right.
JOSH:
It seems like a lot of these processes are there to protect people from having to be accountable or responsible for failure, not to create success.
ANGELA:
Well okay, so the thing is, the world is really complex, are we at picks? Because this is about my pick (sort of).
CHUCK:
We are at picks so if you wanna make the transition, that's fine.
ANGELA:
The world is really complex and a place where we cannot do things by designing upfront, we don’t know enough and we can’t know enough. The only way we can do things is by following practices that allow emergence to work to our benefit right? That is what TDD is about, that is what Agile is about, that's what the way I educate my children is about. It’s about looking for the brightest path and following it and seeing where it leads and it changes over time. But when I try to plan in advance I'm always wrong. I always miss something and to be just a little bit more esoteric, I’ll say that my practice is to try to sense whatever seems to me to be the most loving thing to do in each individual moment and then to go that way and see what happens. And sometimes weird stuff happens but it always ends up to be the right things I've done.
CHUCK:
Nice.
ANGELA:
If that wasn’t too connected. So my first pick is a TED Talk which is The God Complex. Actually I'm going to Google it because it’s not exactly called that. It’s called “Trial, Error and The God Complex,” Tim Harford. It’s a TED talk and it’s about what I just said that we can’t figure things out upfront, that the way we get really amazing solutions is by embracing emergence. The other one is Vulnerability another TED talk by Brene Brown. She does this TED talk about vulnerability. She’s written books about it and stuff. She is a researcher, so she talks about mushy stuff with research behind it and it’s a beautiful one. And my last one is Kent Beck’s XP book. If you haven’t read XP explained because you are young and it was a long time ago, really should do it. It’s thin and it’s beautiful and it would probably make you cry here and there. It’s about software development that really works the way it works in our hearts.
CHUCK:
Yeah, I have some friends out here that are going to disown me now because I said I haven’t read it.
ANGELA:
I'm told the second kind of sucks but the first edition was much better. I haven’t read the second edition, I've only read the first edition, but it was beautiful.
CHUCK:
Cool, I’ll get a copy of that. Avdi, what are your picks?
AVDI:
Alright, let’s see. My first pick this week is having an assistant. I read a blog post about that this week which I talked about how I discovered how I really needed a part-time assistant and how I wound up about finding one and some of the things that has helped me with and how that’s freed up a fair amount of time for me and had been really worthwhile. It’s something that you don’t always think about as a programmer. You think of that as something that executives have, but depending on what your life looks like it can actually be really worthwhile.
CHUCK:
How did you find your assistant? I'm just curious, is it through a firm or did you hire someone from oDesk or what?
AVDI:
I did use oDesk. I had some good luck in oDesk in the past and also, personally, I really wanted to form an individual relationship with someone that wasn’t like just I have a relationship with this agency and different people from the agency help me. I wanted an on-going relationship with someone that could learn my business and really support it.
CHUCK:
Yeah, I'm with you there. I have someone assigned from an agency and have kind of gotten the same thing but if he ever quits or they ever try to assign me anyone else I would probably leave the agency.
AVDI:
Right. Yeah, and also from a practical perspective, those cut out the middle man. So there's that. Another pick, TV pick, we've been watching Stephen Fry’s America. It’s just a wonderful documentary series. It’s Stephen Fry, the English actor; I don’t know what else he does (writer, I guess) but he basically tours the 50 states and visits a lot of places. It’s one of those things that really shows off the fact that sometimes the best way to get to know the place that you live is to see it through a foreigner’s eyes. It’s just a really well done series. Finally, this kind of popped up in my head during this call; we talked about e-prime a little bit, made me think about Alfred Korzybski, who is just an interesting person to look into. He is an engineer, I think, in the 1930s who more or less reasoned his way into Zen Buddhism completely independently as one way of putting it. He doesn’t get a lot of credit these days, but he actually introduced a lot of ideas that we tossed around. Like, he invented the phrase, "The map is not the territory." And if you look into some of his work, there is a lot of interesting food for thought there.
CHUCK:
Cool. David, what are your picks?
DAVE:
I just have one today and that's a book by “Authentic Happiness” by Martin Seligman and all I have to say about this is that the amount of happiness that we experience in life is not entirely under our control, there is some genetic predispositions or psychiatric boundaries. The psychological approach or amount of control we have over is absolutely staggering. He is the guy who wrote “Learned Optimism,” which I think is a required reading to somebody. And what I'm really, really enjoying as I read through this is he talks about the kind of happiness that you get from taking a shortcut is not really happiness it’s like momentarily pleasure but the happiness that you get by basically earning it through whatever mechanism (he refers to that as “gratification”). So he makes some really interesting recommendations on how to basically earn your happiness and happiness that you have earned is happiness that stays with you and feels, for lack of a better term, “authentic” and the whole book tells about various ways to go about increasing just the general level of happiness that you have and as I mentioned earlier in the call, why would you want to do that. Okay, first of all, if I have to explain to you why do you want to be happy, I don’t know that I can help, but if you really must have a completely removed in context and isolated data point, you'll live 20% longer and here’s the big secret; The secret to happiness is that you can’t remove things from that context, in order to have authentic happiness you have to keep things in context.
CHUCK:
Cool. James, what are your picks?
JAMES:
Yeah, I just have a couple of really good picks this time. I’m always looking for things I listen to while I program and stuff and I think I made a lot of picks about that in the past. Depending on what I am doing, if I'm doing something really complicated while programming, then I need to listen to something that doesn’t have words or talk to me very much so I can concentrate. So I tried some new ones I think they were posted by Adam on Twitter this week to some podcast by some DJs and they just do, like, electronic music. I didn't even know I like electronic music, but it turns out I kind of do for programming. So it’s pretty neat stuff, so if you wanna try-- the cool thing about podcast is if you listen to this same CD over and over again, then it kind of loses some of its appeal. This podcast is, like, 200 episodes and these guys and they are, like, an hour or 45 to an hour each, so just tons of great music that varies over time. So anyways, the Garreth Emery podcast is the one I've been liking the most. There is also Tiesto Club Life, both kind of pretty similar stuff so check those out if you are looking for something to listen to while you program.
CHUCK:
Cool, Josh, what are your picks?
JOSH:
So, James, I have a build on your music pick. If you like electronic music will recommend a classic to you and it’s Jean Michel Jarre, French musician, and he has some albums out in the ‘80s that are magnetic fields and oxygen were some of my favorites and he is great to program to.
JAMES:
Sweet. I’ll go look for those.
JOSH:
Okay, so I guess that was my first pick. Next, so I talked about Rock Health a bit lately in a couple of my picks and I have a new pick for them which is that they just announced a new program that they are doing in Boston, Massachusetts, this summer. So if you are somebody that wanted to do a health IT related start-up company, then check out Rock Health. It’s just a three -month program. It’s not five months like the program in San Francisco has been, but it’s going to be great. It’s the same kind of deal where you get a small grant, you get office-based work for 3 months and (I think it’s going to be at Harvard) and we get a lot of good help and mentoring advice from people so rockhealth.com/boston is how to sign up. I think the san Francisco program that we pick about 3% of the applicants will be in the program, so there's definitely competition and the thing that I would say is put some effort into doing a video, do, like, a 1-2 minute video just selling our company because that makes a he difference. It’s kind of like a Kickstarter campaign all just in the video. That is number one and number two is sort of an and antidote for last week we are talking about and I draw something a lot and one of the things I like about Draw Something was I got to practice my drawing, which is something that I’ve always wanted to practice in a while because I was insanely jealous with people who can draw. And it turns out there are a lot of really good artists in the Ruby community like Mike Moore and Jim Weirich, people are awesome in drawing. So I've been using paper on the iPad for the last week and this is from a company called “53” and it’s an astoundingly good drawing program on the iPad and I’m really looking forward to them wrapping a real application about this really cool drawing that they have because it needs stuff like copy and paste and moving stuff between notebooks and synching with drop box and all that. But the that they put out is amazingly compelling and I just really like it and I'm going to be doing a talk at a conference this summer and I think I'm probably going to try and draw my slides by hand.
CHUCK:
Josh, can you do me a favour?
JOSH:
What?
CHUCK:
Quit spending my money, because I'm going to go buy that. *laughter*
JOSH:
Well, the application itself is free and then you have to pay for the extra drawing implements so you get started with or without paying, yeah, but its $8 something. Sorry about that. I’ll buy you a cheeseburger next time I see you.
CHUCK:
Okay, deal. You heard it here, guys, you owe me a cheeseburger.
JOSH:
No problem. Okay, that's it for me.
CHUCK:
Alright, so I've got a couple of picks. The first pick and (I think it’s been picked on this podcast before, but I think it’s been quite a long time) it’s kind of the back-up to my digital audio recorder because when I record on my digital audio recorder, I record in full wav format so it’s totally lossless and that is what I give to my VA to edit things, but I forgotten to clear it off a couple of times and so what I wind up doing now is I actually turn ECamm Call Recorder and I would record it both on my computer and on the Edirol recorder just to make sure that I have a copy in case something happens. So that's my first pick, ECamm Call Recorder. It’s actually a really cool program if you are doing things like recording interviews and things like that. Basically, it will do video in the whole so if you're doing, like, a two-way video call on Skype which you can do for free if you have you have to pay for multi person conference video call deal but with ECamm Call Recorder it will record both sides, it will put the pictures side by side so you can see the two people interacting. It’s really cool, so that's one program that I really like.
So one other pick that I have is Balsamiq Mockups and I've had it for a while but I had a client that was using it recently. It’s just a really nice program for figuring out your layout and stuff. The thing that I really like about this its low fidelity. So all the elements look like they are all hand drawn and the nice thing about that is that nobody is going to get confused and think, “Oh, his is the real app.” I've had people do something similar with Keynote or Photoshop where they have something they actually have like hi-fidelity designs and when you click r on the PowerPoint it will take you to the correct slide and they had clients confused like they had already finished the application so then they have to explain this is just a mock up. So it’s nice when its low fidelity because it is like look this is how it’s going to work but this is clearly not how it’s going to look and so there's no confusion. This is a mock-up, this is just a concept, this is something we can show you so you can get an idea of how this is going to work and I think it’s terrific for that and I think it’s nice because you can drag and drop elements, you can set up menus in the whole nine yards and make it look the way you want and then from there you can hand it off to a designer or something to make it look pretty. So those are my picks and we’ll go ahead and just wrap this up. Thanks again for coming, Angela, this has been a really, really terrific episode.
DAVE:
Yes. Yes.
JAMES:
Thanks, Angela!
ANGELA:
It was awesome.
JOSH:
Thanks very much.
CHUCK:
Just wanna remind you all, we are in iTunes. We've had 90 something reviews and I just really, really appreciate everybody who’s gone in and left us a review. We have been in the Technology What's Hot section on iTunes for a while now, and that is totally because you people are going out there, you are telling people about the podcast and you are leaving us those kinds of reviews or ratings. So we really couldn’t be this without you and I really, really appreciate that. I just wanna thank you all and make sure you come out and see us at Rails Conf.
JAMES:
Yeah, wait, should we announce that we got moved to one of the plenary (Is that how you say it?) sessions, so no matter which track you are in you are going to see us.
DAVE:
Yeah, that's awesome.
JOSH:
That's awesome.
CHUCK:
Yeah, we get to talk to all however many hundred or thousand people are there, so it’s going to be really fun and I’m really looking forward to it. So keep an eye out for us and if you are at Rails Conf and you see one of us on the hall or something, just stop us and say hi. Let us know what you think of the show, because we really appreciate it. For me, at least, one of the big reasons I do this is because I love interacting with you guys and I think everybody else on the show feels the same way. We love meeting the listeners and finding out what you are up to and how we've influenced you and helped you and we want to hear about, so if you have any feedback or anything just let us know.
JAMES:
Yeah, just one more announcement. Chuck, can you do the next book?
CHUCK:
Oh yes, I forgot. The next book is (I don’t remember what it called) I have to go look at the website again.
JAMES:
“Working with UNIX Processes,” is that right?
AVDI:
By Jesse Storimer.
CHUCK:
Yeah, and I think he said he was going to get us a discount code. Anyway, we’ll put a link up in the show notes. As soon as we know anything more about discount codes, we’ll have that in the show notes as well.
JAMES:
We’ll be discussing it, like, late May, I think.
CHUCK:
Yeah.
JAMES:
It’s a really quick read. I went through it in about 3 ½ hours maybe.
CHUCK:
Nice. We haven’t set the exact date but, yeah, that's going to be toward the end of May. So with that we’ll wrap this up and thank you again for listening.
DAVE:
Thanks everybody.