Corey Haines, author of Understanding the Four Rules of Simple Design
An interview with Corey Haines, author of Understanding the Four Rules of Simple Design
In this interview, Leanpub co-founder Len Epp talks with Corey Haines about his career, his book Understanding the Four Rules of Simple Design and other lessons from watching thousands of pairs work on Conway's Game of Life, and at the end they discuss Corey's experience writing and self-publishing a book.
In this interview, Leanpub co-founder Len Epp talks with Corey Haines about his career, his book Understanding the Four Rules of Simple Design and other lessons from watching thousands of pairs work on Conway's Game of Life, and at the end they discuss Corey's experience writing and self-publishing a book.
Transcript
Corey Haines is the author of Understanding the Four Rules of Simple Design and other lessons from watching thousands of pairs work on Conway's Game of Life. In this interview, Leanpub co-founder Len Epp talks with Corey about his career, his book, and his experience self-publishing on Leanpub.
This interview was recorded on November 18, 2016.
The full audio for the interview is here. You can subscribe to this podcast in iTunes or add the following podcast URL directly: http://leanpub.com/podcast.xml.
This interview has been edited for conciseness and clarity.
Corey Haines
Len: Hi, I'm Len Epp from Leanpub, and in this Leanpub podcast, I'll be interviewing Corey Haines. Corey's based in Chicago, and is the co-founder and CTO at Hearken, where he works to enhance audience engagement in journalism, specifically by helping journalists interact with audiences earlier in the editorial process than they would normally.
Hearken is a powerful tool for journalists and news rooms, that engages with readers to help news providers write the stories that meet the actual interests and explicit needs of their audience - and fill the information gaps that people really want filled.
Corey is the author of a Leanpub book, *Understanding the Four Rules of Simple Design, and other lessons from watching thousands of pairs work on Conway's Game of Life. Based on his five years of extensive interaction with developers through the Coderetreat training format, the book is focused on exploring ways to, and I'm quoting here, "build flexible, adaptable software systems by better understanding Kent Beck's four rules of simple design."
In this interview, we're going to talk about Corey's professional interests, his book, and at the very end, his experience using Leanpub, and any ways we can maybe improve it for him and other authors. So thank you Corey for being on the Leanpub podcast.
Corey: Hello, thank you, it's great to be here.
Len: I usually like to start interviews by asking people if they could tell us their origin story. I can see from your profiles online that you've had a really varied career. You started out studying mathematics, and ended up in software development in various CTO roles. I was wondering if you could tell us how you got into software development from mathematics, and how you got to where you are today?
Corey: Sure. I was one of the really lucky people in the late 70's, early 80's. My father had gotten into programming, and so he made sure we always had a computer around. So I grew up with computers, and actually started programming when I was about 12. Mostly cheating at games, because back then we had- the source came with it, and so if you couldn't get past a point, you could hit break, look at the source code around there. And then over time, I figured out that you could change the code, and rather than figuring out what you needed to do, you could just change the code to put a jump or a GOTO past that point. And sort of "resume line 200" or something.
And then over time I got into BBSs and found a mentor on there that helped me learn C. And then I moved into C++. Then, I had never really thought about being a programmer. And I have always wanted to be a theoretical cosmologist. So I wanted to study physics and the Big Bang and all that. And then I got into college, and found out that physics actually requires experiments.
It wasn't really that fond of that. But I loved the math part of it. My math professor had taken me under his wing, and I switched over. Actually I took trigonometry, and found the beauty of the unit circle, which is probably a pretty nerdy thing to say. But I remember it being like, "Oh, this is something that I find beauty in." The purity and the abstractness of it. And that shifted me over to mathematics.
I had planned on continuing on to get my PhD in math, and be a professor. But I ended up spending my last year of university in Hungary, on a program studying mathematics called the Budapest Semesters in Mathematics, and fell in love with the country, so I decided to stay. I needed to find a job and started teaching English.
And along the way, I started programming again. I mean, I had always programmed here and there in C and done this and that, and was programming, and got tired of teaching English, because I was a very bad English teacher. I went and looked for a job, and found a job in Hungary at a web studio. And I ended up - I actually started as a salesperson, trying to sell - this was in '96, and so I was trying to sell website development to companies in a country where I think less than 1% of the populus had internet access.
So this was '96, and the web was just at the beginning. Nobody knew what it was. I remember talking to one company, and they were like, "Yeah, we'll take a half-page ad." And I was like, "Well, you don't really take a half page ad on the web." This was pre being able to take a half-page ad on the web.
And so, I went through that, and ended up getting fired - unsurprisingly. But along the way, I had done a lot of Excel programming for our sales team. Half the company was leaving to start a web studio, and the person who was going to be running it, who was the lead of the sales team, he asked me if I wanted to come as their programmer. This must have been the beginning of '96, the end of '95, or so. Somewhere around there.
And so then I learned HTML, learned CSS, learned a little bit of - we were on the Microsoft stack, so this was pre-ASP, and I learned how to do that, then ASP came out. And I just kind of built up this web studio in Hungary. We ended up being the largest web studio there.
I got into like every day, writing code, and building for customers and all of that, and just sort of never looked back. It was like, "Well, this is something I love doing." So when I came back to the States in '97, I found a job, and started programming. I went up through the Microsoft stack, 'til about 2008, then switched over to Ruby for - well, still. I know a bunch of languages, but I have been doing Ruby for a long time.
Len: And that was 2008, was a year before you started the Coderetreat? Is that right? I was wondering if you could talk a little bit about how that got started, and what that experience was like?
Corey: Yeah, so Coderetreat came about because - there were four of us, me and this guy Gary Bernhardt, and Patrick [Welsh], and a guy called Nayan Hajratwala - we were at a conference I go to every year called CodeMash. And I would say we were doing what programmers do, which is complain about other people's code. And had this idea - why don't people practice?
I was at the very beginning of what would end up being called the Pair Programming Tour, where I spent a year travelling around, programming with people in exchange for room and board. I took a year off of work, and just did that. And so, I was thinking a lot about practice - the software craftsmanship movement was just at the beginnings of people talking about it, and practice was a big part of it, and that was my focus.
The four of us decided just to put on a workshop, and see what happened, that was focused very much on practicing software development, rather than sort of learning a new technology. And since I was travelling around, I had the opportunity to take the ideas that we had, and some of the learning we did on the first two of these Coderetreats, and really help define them and take them around, do them in different places.
I went to Romania, did one in Romania, where a guy named Alex, and his wife Maria, they took over, and started running them in Romania. And so the two of us - or the three of us - got back together in the next year, and started really fine tuning the format. And then by 2010, we had a format for the workshop that was really solid. And then I just started travelling around doing them. And kind of seeing what they were.
They were very much focused on practicing software development, and very much focused on the sort of minute-by-minute decisions that you make while you're writing software, during the
