Episode 4: Andy Croll - Consultant & Organiser of Brighton Ruby
Things we talk about
- 00:59 - Previous Role: Senior Developer at HouseTrip
- 02:35 - Joining Realla
- 03:19 - Running a Conference
- 07:33 - Processing Attendee Feedback
- Sarah Mei's Talk: How We Make Software *Video Coming Soon!
- 11:43 - Leadership and Management Roles vs Working in Development as a Peer
- Power vs Influence
- 17:20 - Working Remotely
- "Remote Enabled" Teams
- Benefits and Downsides of Working Remotely
- Physical and Mental Health Issues
- Working Remotely vs Working From Home
- 23:33 - Process: Hiring => Making an Offer
- 30:27 - Common Practices That Make Teams Productive
- 34:36 - Shortage of Technical Talent and Making Places Not Terrible to Work
- Training Junior Developers
ALI: Okay, so welcome to another episode of the CTO Show. Today I have with me a very good friend of mine, Andy Croll. Andy is the organiser of Brighton Ruby, which is a really, really good conference about Ruby which is also in Brighton. The last time I saw him I believe I was in a dark room with him and Patrick McKenzie and we were doing our best rendition of 'I Want it That Way' by the Backstreet Boys. Hello, Andy.
ANDY: Hello, and a fine time was had by all. Although, you know, 'Under the Sea' from the Little Mermaid I think was probably my personal highlight.
ALI: It did, in fact, steal the show. So, Andy, tell me, what is it exactly that you do?
ANDY: I would describe myself as a... on my website I describe myself as a Ruby on Rails developer/designer. I would describe myself as a terrible nerd because I am not that into technology, I like building stuff with it.
ANDY: I often have to chat with people where I suggest that they don't actually spend any money on paying me to do a website, they should try to work out whether the thing they're building has value in the first place.
ALI: Right, okay. So your previous role, what were you doing in that, exactly?
ANDY: I’ve been working at HouseTrip, which the short version is it's an Airbnb competitor which has recently been acquired by Trip Advisor.
ANDY: So it was a large and growing start-up when I joined and then things changed and we became a stable in size start-up before Trip Advisor took it over this year.
ALI: Okay, and what were you doing, exactly, there?
ANDY: I was hired as a senior developer remotely, alongside a couple of other people who joined at the same time - they finally opened up to remote working at that point. It was originally designed to be a team leading role and what eventually happened is it became a very unusual team, which is a team of mostly senior people. There was a redundancy event, right sizing is the politically horrendous term.
ALI: Right sizing! Right, okay.
ANDY: So unfortunately we lost a lot of people, about half the size of the engineering team, most of the designers, most of the product managers, and it became a very senior-heavy team. It was mostly a team of peers, I would say.
ALI: So you were doing the hands-on programming stuff more than management or leadership?
ANDY: Yes, I think there's like two streams to being a 'senior' dev and one is that you're still having your hands a little bit in the code and one is the leadership, and whether that leadership is of a team of much more junior people or whether that is taking it in turns to lead your peers in something. I think that's an element we don't really think about very much when we talk about being a senior dev.
ALI: Right, okay. I presume you're no longer working at HouseTrip. What do you want to do next?
ANDY: I have an entrepreneurial streak which tends to lead me towards smaller companies when I’m looking at employment. I obviously have many and stupid side projects that take up evenings, such as running conferences and that sort of malarkey, and I am joining a company called Reallor which is a commercial property focused marketplace.
ALI: Okay, and what are you going to be doing there?
ANDY: I think very similar but in a much smaller team at a much earlier stage. The team is under ten, the engineering team is under five, so yeah, I have no idea how that's going to work out. I will be able to let you know in three months' time when you have me back.
ALI: You mentioned that you organised conferences. I think Brighton Ruby is in its third year, finished now?
ANDY: It's finished now; I’m already booking venues for year four.
ALI: Fantastic. So talk a little bit about what the experience of running a conference is like.
ANDY: It's mostly fine and then it's horrendous for a week and then you feel amazing for two days and then you're like 'Damn, I’ve got to do it again next year.' That's the emotional journey. It's something that I sort of got into by accident. I was living in Singapore from 2007 to 2013-ish and when I was there, part of the Ruby group, I said 'There's no conferences in south-east Asia, we should totally run one!' and the guys I was having a beer with at Christmas said 'Yeah, we totally should, Andy. You should get on that.' So I emailed Matt, who is the creator of the Ruby language, and I thought, you know, 'Let's email Matt, see what happens,' and he emailed me back and said 'Yeah, I’d love to.' I was like 'Oh, damn, now I actually have to put this thing together!'
ALI: Okay, wow.
ANDY: Yeah, so it sort of span out from there. So I ran it for a couple of years in Singapore, called RedDotRuby Conference, and that's still running - my friend Winston leads the team over there now - and when I got back to the UK and realised I didn't know anybody in the UK Ruby community, obviously having 18 month old twins I thought 'I've got plenty of spare time, why don't I put together a conference?' Like an idiot.
ALI: I think I’ve mentioned this on a previous show when we had another attendee on - one of the nice things about is it has still maintained that first run of a conference energy. It's grown in attendees but it hasn't grown in terms of becoming more expensive, I suppose, more focused on sponsors or anything like that. It feels like you've kept it real.
ANDY: It's deliberately done. I don't like massive conferences, particularly. Like I’ve been to Ruby Conf, I’ve been to Rails Conf in the US, and those are insane events, they're massive, and there's lots of good stuff there but the more tracks and the more content you have the more value there is in the hallway, bizarrely, and also I can't run one of those and I have massive control issues so I run Brighton Ruby basically single-handedly.
ALI: On purpose, presumably?
ANDY: On purpose.
ALI: So that you have quite fine grain control over everything.
ANDY: Yeah, and it lets me create the sort of environment I want to create and I think that's quite important and that's something that I think comes a lot from the Ruby community. It tends to be a very friendly community.
ALI: It can be, yeah.
ANDY: It can be. That's my impression of it.
ALI: The overwhelming majority of the Ruby community, I think, in the UK, or at least in the south east, that I know of so far, has been quite welcoming and quite friendly.
ANDY: Yeah, and I’ll also try to project that from the stage. I MC the day, it's designed to be slightly handmade and it's designed to be single track, it's designed to be everybody in the room together. This year was the biggest jump in size, we moved up in terms of room size, and actually I didn’t really feel like it lost anything. I was concerned because it went to 300.
ALI: Yeah, I don't feel that either, that it changed much in terms of the content. Sorry, obviously the content has changed because you had different talks on, but in terms of the general feel of the conference it felt quite similar to the previous two years which was a pretty good thing.
ANDY: I think certainly the content this year was awesome.
ALI: Yeah, the talks this year were really good. The first year, I don't know what you were thinking.
ANDY: I got this guy to do a talk on security and he was rubbish!
ALI: On the other hand, this year, I couldn’t think of a single talk I didn't like so, yeah, it was a good job. I don't know if you did it on purpose - was there something you did? Was it just you handpicking the talks or had you seen some of them before? How did that happen?
ANDY: It's difficult. There's a reason I have 20 minute slots, because I do pick some of them blind. I pick some of them literally based on the abstracts that I get in the CFP. I try not to do repeats year on year, although Sam Phippen is the exception to that, he's become sort of a lucky charm, and I try to do the best I can based on the abstracts and I do watch a few conference videos - there's a folder on my desktop that's full of videos I haven’t yet watched from other conferences. I try to do a good job and this year everybody hit it out of the park and the speakers did a tremendous job.
ALI: You got a bunch of feedback, basically, from different people. What was really interesting when you mentioned that was that some people said certain talks were good and certain talks were less valuable but all the actual talks that fill in that sort of sentence were different for different people, so some people found some talks absolutely amazing and other people found the same talks not valuable at all, so I thought that was interesting in terms of how different people take away different things and are perhaps at different stages in their careers or learning cycles where they just value things differently and it comes through in that feedback.
ANDY: Yeah, everyone attends a completely different event from the one I’ve put on.
ALI: That's what I was trying to get to.
ANDY: I've had a lot of time to think about it. Some people give quite brutal feedback and that's good. It sort of challenges me - is this the event I’m putting on? Is this what I want to be doing? And I think this year it felt pretty good. Some people, they found talks where they didn't connect with the speaker or they found the topic... some people, I think, very much, when they go to a conference, are looking much more for a training experience and I think maybe I need to do a better job of explaining that a conference is not a training experience, and also my conference is not going to be very, very Ruby heavy, although this year I actually thought we went back to being a bit more technical than the year before. You’re never going to learn a programming technique from a talk. It might encourage you to go and look at it so I encourage you to go and look at it, so I go much more for the 'This should expand the mind about your...' I hesitate to use the word craft.
ALI: But you just did!
ANDY: But I just did so I’ll have to put a penny in the artesian jar. Yeah, so it's difficult, you can't please all of the people all of the time, and the fact that I manage to please some people most of the time means hopefully enough people come back.
ALI: There are some talks that go through a laundry list of techniques or whatever but at the same time you're not going to remember those. Even if you take notes, they're not going to make sense after the fact. It's like you said, it's just being there and, at best, the talks are going to tell you something you didn't know or give you an avenue of learning that you didn't know you were able to do that you now have the knowledge to start doing and that is going to be still different for everyone. Like if I give a talk about security it's going to be really basic for maybe 30% of the audience, kind of 'They mostly know what I’m talking about' for 30% and the other 30% are going to be like 'Wow, we need to get on this fast!' So yeah, I’ve had the exact same experience where you can't please everyone at all ever.
ANDY: Some people love those more technical laundry list style talks. That's why I try to include one or two of them every year, as well as the more highfalutin 'Why are we here? What are we doing?' type talks. Some people hate them and I’m like 'But those are the point!'
ALI: Well sometimes they can be a little bit too highfalutin, like for example, this year, Sarah Mei's talk wasn't. Sarah Mei's talk was exactly what everybody in that room needed to hear, whether they liked the talk or not. She just took the metaphors we have for talking about software engineering and told us why they were shit and she gave us a new one that was better. I want to go and watch it again so I hope you have the videos up for that soon.
ANDY: I know you asked me to pick pieces of media and that's actually one of my self-serving picks for later on.
ALI: Yeah, okay, a talk from your own conference, you did a lot of research to find that one!
ANDY: Yeah! That's the most amazing conference talk I’ve seen in years, so...
ALI: It is; it was really quite good. I remember, in the middle of it, thinking 'Wow, this is long,' but then having the sneaking suspicion that it was worth sitting through the build up to get to the conclusion, to the point where, and nobody believes me - I’ve said this to a couple of people - I swear, before she said 'theatre' I was thinking that's one of the only ways this can go and I think it speaks to her ability to build that context and build a narrative talk that I was able to start guessing as to where she was going with it. So, yeah, it was brilliant, I really liked that talk.
ANDY: I basically think Sarah Mei is amazing so there you go. If I could get her back every year I would.
ALI: Yeah, okay, eventually it's just going to be the Sarah Mei conference.
ANDY: It's like the Now 45 of conferences.
ALI: Cool. Okay, so you're going to work at this company Reallor and it's going to be another senior developer, maybe team lead, kind of thing. Do you feel like you want to start going more towards, I guess not just in a job or a contract but in your own products, having more of a leadership or management role or do you feel like you still want to stick to the coal face and actually build the software yourself?
ANDY: I am a pretty good software engineer.
ALI: Okay. Good for you!
ANDY: I'm worth the medium sized money. I would say yes but I tend to think of it much more in terms of mentorship. I think everyone hates the admin of management. I really like the people side of it. That was one of the, tragedy is a strong word, but that was one of the shames about HouseTrip, going through the things that it did. I joined with the prospective of trying to help out, help bring people on in their careers and look out for them and help them coding stuff as well and that's something that I tend to do outside of my job. The conference is, in some respect, is that, it's that energy put into something else. At HouseTrip it was very much contributing and working in a peer environment and doing a bit of leading, a bit of coaching, but not a huge amount because there are lots of people there who had lots of stuff to teach me and I think, yeah, I think in any new role I definitely look to help out more junior engineers or help people out with career decisions or that sort of stuff, the stuff that I think is larger than the day to day drudgery of sticking code in a text editor.
ALI: I think, to me, I think what you're describing is leadership, like that's the whole thing, that's it. I've been reading a lot of management books over the past year or so.
ANDY: Because you hate yourself on some level?
ALI: On some level, yeah. I just hate human beings in general. The definition is there's power and there's influence, those are the two ways to get people to do stuff. Power is when you have the authority to just say 'You do a thing,' and then they have to do the thing; influence is when you are able to convince people to do stuff of their own accord because they see it as in their own self-interest. I think the only way to demonstrate that you have someone's self-interest at heart is to think about what they need or what their longer term goals in their career - this is at work, specifically - would be and do basically everything in your power to help them move towards those goals, if not achieve them. So what we try to do is I try to make it clear that at our company it's okay to leave. We're going to do everything we can to make them happy to work here but people naturally leave companies and that's fine. What we want to know is how can we help you be successful in the next thing that we do and we spend a lot of time in one-to-ones talking about what that might look like, what the timescale might be, what their aspirations are and just having that conversation and sending a strong signal that it's not just about them doing everything for this business, it's also about us trying to contribute to their career in a positive way as well. If you do that then people are much more amenable to doing the stuff you need to get done in the day to day grind of whatever it is, typing text into a text editor. That's in theory. If you ask the people that actually work for me they might say 'That's bullshit, he hasn't talked to us in weeks about any of this stuff,' but that's where I’d like to be as a company.
ANDY: Yeah, it boils down to empathy, as so many things do. You can be quite empathetic at home and people tend to be empathetic when it's in their self-interest as well, obviously. I'm thinking purely in very intense relationships - husbands/wives, brothers/sisters, fathers/mothers - but actually that empathy muscle is an important thing to sort of train and be aware that you're using it. It's something that certainly I don't think I’ve ever been a terrible colleague.
ALI: Okay, I think I might have been.
ANDY: I think we've had discussions about that before.
ANDY: I think that empathy muscle is one we don't encourage in the world of software engineering and often people gravitate to it because they think they don't have to exercise that muscle but I think it's the most important.
ALI: I think it’s being brought to light now.
ANDY: Yeah, so in terms of helping other people in a broader sense I’m always baffled when people are angry when someone leaves but you do occasionally see that, like it's a betrayal. You see it sometimes in big companies, it's like you're part of the tribe.
ALI: Sometimes. Basically, apart from perhaps one, every time I’ve left a company it's been 'Whatever you're going to do next is shit. You don't know what you're missing here. We gave you such an amazing opportunity.' Okay, well think about this in terms of just that person saying those words, that person's network and how that's going to rub off on me, like if I have something of value to give them in five or ten years’ time, how likely am I going to do that if that was my experience of leaving? Purely just talking about their self-interest, nothing to do with me now. In the same way, I know that people who leave our company, who knows what they're going to do? They may found their own companies that end up becoming clients, they may go and work as a CTO at other companies that also end up becoming clients, so just purely out of my self-interest it's better for me to say 'Good luck, let's help you to do whatever you want to do,' and then wait for that to come back, right?
ANDY: Yeah, yeah.
ALI: So, yeah, it's really short sighted to behave that way.
ANDY: It's also, you know, let's all be friends.
ANDY: There's no need for any animosity where there needs to be none.
ALI: Exactly. Right, so you do the mentoring and stuff. You mentioned briefly about HouseTrip there, you were working remotely or partly remotely. How did that go for you?
ANDY: Brilliantly. Remote is entirely the way that we should all be working if we can. I am a strong believer in remote enabled teams.
ALI: Okay. What does that mean?
ANDY: In my head, in the formative talk that's being submitted to various CFPs, remote enabling is setting yourself up to be remote but you don't have to force it. Many of my co-workers at HouseTrip actually enjoyed going into the office. It's not a personal choice for me. I do like to get out and about when I work, at coffee shops and co-working spaces and the like. To enable your team to be remote so that everybody’s effective. Everyone's fridge breaks, right? Everyone needs to wait in for a delivery. Everyone needs their heating serviced. All of those things, and there's no reason you should be any less effective even if your general preference is to work in the office.
ALI: That's a difficult sell, though. I mean for me, so our company is not remote enabled. I need to find a good analogy here. It's remote, full stop. There's no other option.
ANDY: Well there's definitely no issue with being fully remote either.
ALI: But I believe that's actually easier than what you're talking about because I feel like things could accidentally start progressing into the situation where the office now has a privileged communication position and we don't want that. We want us to be equals in terms of information exchange.
ALI: So I don't really want, even if we hired someone in London, for example, to have an office where we get together and communicate in any higher definition than we would online.
ANDY: That remote enablement is very much using remote tools, even if you're in the same place. So our stand ups would all be on Skype, we would use Trello to organise ad hoc meetings, we use Tracker, we use GitHub. It's very easy, in a software engineering world, and the concerns that people have about remote workers, 'How will I know they're working?', the same as if they're at their desk. You don't sit and watch people work.
ALI: Well some people do, maybe.
ANDY: That’s some of the worst management I’ve ever heard about. So remote enabling means that some people just like the more social side of an office, some people don't, but it's about using remote tools, whether it's BaseCamp, whether it's Trello, whether it's Osana, whether it's Pivotal Tracker, any of these things, and making sure that the office doesn’t have that privileged communication position. You make sure that all of your offices, your meeting rooms, all of them have a Mac Mini with a webcam on that's signed in and has everyone's Skype on it so it becomes frictionless to have those conversations, whether it's one to one, whether it's anything - and making sure that everyone at home has a decent enough internet connection.
ALI: That can be difficult. Have you felt any of the downsides of working remotely?
ANDY: Yeah, because it enables me to do more stuff. Depending on the length of your commute and the stability of your commute - I mean I live in Brighton so commuting to London, currently, would be absolutely hellish because the trains just don't work, but I think there's a benefit to a 20 minute stroll or a half an hour drive to listen to a podcast of two dudes talking to each other about technical things, for example. So, yeah, there are some psychological benefits. You have to force yourself to get out of the house, particularly if you are someone who can get very intensely involved in a problem. I constantly feel busy but then I do also have the twins I mentioned before so I’m going to be busy anyway.
ALI: So when I say work remotely I don't mean working from home. I think that's something that people jump to very quickly. Working from home would be impossible because I have two boys at home.
ANDY: You should send the children out!
ALI: They can open door handles, and it's not actually legal to just put them in the road and do the work so they wouldn’t stand for this whole thing where I need my quiet time to focus on work, that's just not in their reality, it doesn't exist. Even if they say they're going to try to do that it's just not possible so I have an office that's a six minute walk from home and that's where I do all of my work. They know where it is but it's far enough away that they aren't able to walk into it to ask me to play or put Power Rangers on Netflix or whatever.
ANDY: That sounds ideal.
ALI: It's pretty good. The other thing, I guess, one of the problems we've had is kind of related to what you said about getting out of the house. Developers who aren’t used to working remotely, firstly they get fat. Basically everybody we've hired has got fat.
ANDY: Everyone gets fat.
ALI: Yeah, everyone gets fat, but it seems to coincide with beginning to work remotely because now a lot of them do work from home and they don't actually end up going out to do anything so they lose even the 5-10 minute walk to the train station they would be doing, so that's one thing, and the other thing we've struggled with is more than one person, I think myself included to an extent, just people having mental health kisses and being really stressed out a lot and we suspect, because we fixed this with somebody telling some people that it's actually because we are primates and we kind of need to see other primate faces once in a while, like in real life, and there's not really much we can do about that. That doesn't mean we have to work in an office, it just means we have to be somewhere where we can see other human beings otherwise we go stir crazy.
ANDY: Yeah, my other half takes the mickey out of me for always being in our local coffee shop. I have a very good relationship with the people who run it because I’ve probably put loads of money through their tills but that's exactly it. I quite like the bustle, particularly if it's not actually going to interrupt me.
ALI: Right. Okay, so you were at HouseTrip for a while, I think. How long, exactly?
ANDY: Two and a half years-ish.
ALI: Two and a half years. And in that time were you in charge of hiring anyone?
ANDY: We did various bits of hiring, replacement hiring typically. We were talking about hiring some genius and that was going to be my area of interest and expertise. Unfortunately that didn't come to pass. I had some good chats with Makers Academy in London, one of the boot camps, having been impressed with people who had been through that before. Yeah, so not really. We did the average amount of hiring if you're just replacing people. I was at the tail end of a massive hiring surge so, yeah, we did bits and pieces.
ANDY: We did pretty good technical interviews, I think.
ALI: Okay, so can you talk me through what that process was like? I guess from the point where you decided you wanted to hire someone all the way through to actually giving an offer. Can you describe what that process was like?
ANDY: Broadly speaking, actually when we went through our last round of looking at hiring I reviewed the job spec, which was a little bit, although HouseTrip was never a bro-y culture the job spec read a little bro-y, a little typical start-up-y. 'We've got foosball tables, we've got beer,' and I was like 'Yeah, well done.' So I took a lot of that stuff out and tried to obviously de-genderise it, de-culturalise it from that white dudes in a room coding thing and I had the benefit of emailing it to Sarah Mei as well and she gave it a look over and gave me another couple of pointers that I’d missed despite looking for those things.
ALI: Okay, that was nice of her. I should send her my job specs now.
ANDY: I can't guarantee she can provide that service for everybody.
ALI: Okay, we'll see.
ANDY: Yeah, so I tried to de-start-up the job spec so that it read like something a human might like to do.
ALI: Okay, alright.
ANDY: And then a fairly typical good process, I think. A coding test, just to show. I wasn’t a fan of the specific one we had, I thought it was badly worded, but we didn't get around to actually fixing that, but typically a half hour to an hour simple problem to show competence in problem solving.
ALI: Did they do that at your office?
ANDY: No, this is a remote, on their own time, type one. Then we had a phone call for just a chat, just to let them ask questions about HouseTrip, really, and then we had a more technical call as well, where we had four or five problems that HouseTrip has and we asked them how they might, at a high level, solve those things, just to experiment with their technical thinking, no whiteboards involved, and then we also had a pair programming, which, for me, was the most important piece. I actually think I would pair program but it was quite funny, like when I would do the pair programming interview and I was like 'I could pair with this person all day and it wouldn't be too bad,' whether they could pair with me is another question, but some of my co-workers were like 'Well, they kept looking at the help...' and I'm like 'I would fail your pair programming,' because I am constantly in the Rails guides, I am constantly in the API docs, I basically store no information in my head.
ALI: Okay, so you're saying that the rest of your team just kind of wing it?
ANDY: I think for one person that was like 'We're hiring a senior, they should know this stuff,' and I’m like 'Yeah, well maybe...'
ALI: Actually I’m in the middle of an interview and if I was there I would probably want to double check to make sure.
ANDY: Absolutely, yeah. It was more of an interview style, and they would a five minute discussion/presentation thing where they would actually come into the office. So typically we would run the last three or four bits that I’ve talked about in the office in half an afternoon or a couple of hours, just so we're not dragging it out so that it's easy for them to do, they could probably pop in for a long lunch or at the end of the day and do that stuff and that would involve more people, just to present on anything they fancied, really, related to technology, like a language they were interested in or a project they had worked on, whether TDD is good, any sort of thing that could provoke discussion.
ALI: And did you find that, going through that process that you've got - starting with the coding test, the phone call, the technical phone call, paired programming, the presentation - did you find that doing all of that ended up being a good predictor of how well they would do at the company?
ANDY: We did not hire any duffers whilst I was there.
ALI: So, hold on, a duffer - what is that? It's terminology I’m not aware of.
ANDY: A pejorative term for someone who wasn't good at their job.
ALI: Okay, gotcha.
ANDY: Like we didn't hire anyone who we, in the Ruby team, were surprised by their level when they came in. The paired programming solves a lot of that. Once you get through those we know what level this person is and we know they're a friendly human who can pair with us.
ALI: I think I probably wouldn't pass - I say this in all sincerity - the paired programming thing, because paired programming just annoys the hell out of me, I’m just not capable of it. Like I can program, I can program computers and I can have my code reviewed, it's just the structure of paired programming, for me, just so easily falls into the cracks of my personality that leads to me exploding that it's just the wrong thing for me. I'm happy to work with other people but my thought process, I guess, is quite critical, so if I have an idea for implementing something then the next second I’m quite comfortable saying 'Well that's fucking bullshit, I’m not doing that,' and then throwing that out, which you can't really do with somebody else's ideas when you're paired programming, well not in those terms at least and not that quickly.
ANDY: So what do you do when you get stuck with somebody?
ALI: I go away, have a walk, come back, write out everything I know about it, like in an empty text file, about the problem and think about the things that I don’t know, go and research those things, probably go for another walk and then come back and cobble together a plan.
ANDY: You don't use other people's brains?
ALI: I should, it would be a good resource, but I’m just not very good with the interface, so just getting knowledge out without offending someone is not something I’m very good at.
ANDY: So it's a good job you're not running an interview podcast, isn't it?
ALI: Exactly! Right. Yeah, so it's a good job that I don't do any programming day-to-day anymore, and if I do all of my, I guess, frustration is kind of smoothed over by the fact that it's just plain text and I deliberately try to edit to remove any needless snark when communicating in a team. On Twitter, that's where all my snark comes out, but when communicating with other people I try to remove it where I can.
ANDY: Yeah, absolutely. Exercise that empathy muscle, right?
ALI: Exactly, or at least supress the snark muscle so that it looks like you're being empathetic. Okay, so you've been on multiple teams at this stage in your career and you've probably been on some teams that suck and some teams that did well. Can you identify attitudes or practices that you think are common amongst all the teams where you felt the most productive or felt most able to deliver value?
ANDY: I think the most important attribute of virtually every good programmer I’ve ever met is strong ideas weakly held. 'I think this is way we're going to go, what does everyone think?' and be willing to abandon that if it turns out not to be. It's the little 'a' agile. I don't really buy massive 'Agile' with a capital 'A' processes, AgileTM processes like Scrum or Kanban or all of these things where you can be certified in it. Being certified is not the flipping point.
ALI: Some people are certified, though.
ANDY: Of course.
ALI: In all senses of the term.
ANDY: Yeah, certifiable rather than certified. For me it's about the practice of what works for you. This is turning into the Sarah Mei fan podcast but she's eloquently tweeted about how the answer can never be 'because that's the way we do it' or 'because that's what professionals do' or any of that stuff. It has to be 'this is working for us to achieve where we're going'. It's about the goal, it's about where you're heading. When we started talking I said I’m a terrible technologist because I don't really care about the technology, I care about the products and things that we're building - it's that heads-up focus on what you're trying to achieve rather than 'This is brilliant, we can build it in Node!' or 'This is brilliant, we need to build a React frontend for this!'
ALI: Or 'All of our problems will be solved if we just implement, I don't know, Scrum, Kanban or whatever.'
ANDY: If we reinvent this in a new technology, yeah. It's agility in focus and ability to move and whenever something stops that movement... In HouseTrip's case in the early days it was very much a dodgy, poorly put together codebase, lots and lots of different chefs at different times with different ideas of how you should even write a Rails app and throughout my entire time there it was implementing and improving as I did it. Lots of the work we did was improving conversion by making it faster. But things I care about when I’m building technology is that it should be fast and it should be stable and it should be useful. Those three things are the things that actually matter.
ALI: I guess I’ve just been scarred so badly, Andy. I've just had so much of the bad end of what you're talking about.
ANDY: This is therapy.
ALI: When I started my own company I was like 'I'm not actually that fussed about being the best place to work or the most productive team or, I don't know, the company with the happiest clients.'
ANDY: Superlatives are dangerous, that's why.
ALI: My goal, one of the primary core values - I’m going to write them out properly one day - is to just be not fucking terrible. That's one of our biggest, highest goals is to just not be fucking terrible. The thing you mentioned about not doing things because professionals do them, that's enshrined as our prime directive, right? It's like you have reasons for doing things which sounds like the dumbest company motto ever but I’ll settle for that. I'll settle for just a logically consistent explanation for doing things that doesn't even have to be correct, it just has to be logically consistent and I’m happy with that because there is so little of that in our industry and for so much money, for so much tax payer money as well, it's really, really bad.
ANDY: Absolutely, I’m fully on board with trying to not be a terrible place to work. It's a terribly British attitude as well but if we can just avoid being rubbish.
ALI: It's difficult to achieve, right?
ANDY: I know, and that's the point. I desperately try to not make the conferences rubbish and try not to be a terrible co-worker. That's sort of the point. I try not to be a terrible husband or terrible father, you know. It's those things that it's about. Again, coming back to the empathy muscle again, it's thinking about how you're affecting the world and the people around you.
ALI: I guess I’m still getting over not having that in so many workplaces that I’m not quite ready or in a place where I can aim much higher and not be as bad as what's gone before. But you mentioned it also applies to not being a terrible place to work - there's a lot of talk, and there has been a lot of talk for a long time, about there being a shortage of technical talent, there not being enough programmers to do the work. I get two feelings from that - firstly, even if these people have programmers to work at their company they wouldn't know what to do with them, and secondly there's also a massive shortage of companies that are decent to work at for programmers. If you pay them enough they will come and work for you for three months or six months on a contract and leave when they don't like it but there are just very few places that can get the most value out of a programmer and nobody wants to be wasted because these are all the years of your professional life and if you spend them doing rubbish tasks that don't actually provide value to anyone then that's not an enjoyable career for the average programmer, I think.
ANDY: Yeah, I feel like, as an industry, we're incredibly coddled. Like I am well compensated for the physically difficult work that I do. Psychologically, some of the stuff I do is quite hard. Some of it's not. Some of it, the effort is in working out what I should be doing rather than the doing, and I think to your other point, making places not terrible, actually managing people is the hardest skill in the world. There is a shortage of good managers of human beings in the world.
ALI: I agree.
ANDY: I see this in my wife's work, I see this in companies I’ve been in, you see it in yourself. The rigour that you have to apply to be a good manager... The current VP of engineering at HouseTrip, I think, has done a really great job on the people side of things. His ability to sit through one-to-ones with all of us, and he had a big team, because it was a team of seniors, there wasn't much higher up, and he was doing 10-12 one-to-ones every fortnight, which is a lot of us moaning. So I think there's a rigour and a slog to management because you're having to work out what people want and trying to lead them, and of course you suffer from the same problem that we were talking about earlier which is you can't please everybody all the time. Some people, personality-wise, you're just not going to connect with but what can you do as the manager of that person that you don't automatically connect with or comes from a very different space than you and what you consider to be humour and charm don't work on them? What can you do to make their lives easier and better?
ALI: Build rapport with them, yeah.
ANDY: But that's not just a problem with technology. The issue you were talking about with people leaving, that's purely a function of being in a bull market for technology, right?
ALI: I think with management there's also the problem that you kind of need someone who has technical skill. I think it's very, very difficult to be in a productive environment with somebody leading you, managing you, that can necessarily do something like the job that you do, to the degree that they at least understand what it is that you do, but at the same time, if you're that good, if you're that senior, you probably don’t want to go into management.
ANDY: No, I think there are people who are forced into management because that's the next step for the next pay rise and that's useful for their family and there are people who are genuinely good at it but I think management is a skill that can be learned.
ANDY: Most skills are, but it's not a natural fit when you previously have been a massive individual contributor. There's not a lot about the life of a typical jobbing programmer that makes you good at communication. It should do but the way that we've structured our teams means that that hasn’t been the case. That's one of great failings, is the lack of mentorship. You see a lot of job posts, right, 'We're looking for a senior dev at middle dev salary,' you see it on the mailing lists all the time. What they're looking for is a middle level dev, what they're looking for is someone who's not going to bother them, who's going to contribute, do a decent job and not bother the manager who's in charge of them, because for me a senior dev is someone who wants to train or mentor, who wants to spent half their time working with junior devs, that's sort of the role of that and when people say there’s not enough devs it's because you're not training any. There's a massive lack of in-company apprenticeships. Like I think the boot camps and things like Code Bot, even the training you can get online, on the eBooks and all that stuff, like the Upcase stuff and Thoughtbot, all of that stuff is great but you need to really understand how you organisation can bring forward genius. If you're in an organisation of five or six you should be looking at genius probably before that. Yes, it's hard, but then that's the point. It's like that is the point.
ALI: And also, if you think about it from the point of view that not many companies are going to do this, if you have a repeatable way of taking a generic smart human being...
ANDY: Of which there are actually many.
ALI: Of which there are plenty, and having a system where you then spend a certain amount of money and spend a certain amount of time and then, at the end of that process, get a programmer, at a large enough company you basically then, at that point, have a license to print money.
ANDY: And you see that at the bigger companies like the Excentias and those larger consultancy companies. They used to have that for business consulting and, to a certain extent, technology but it's more difficult to do for a smaller organisation because it requires individuals who have that will.
ALI: Okay, so we're running short on time - can we get your picks for us?
ANDY: My picks, so, yes, Sarah Mei's talk at Brighton Ruby, I am told by my videographer that it is due imminently, so hopefully by the time this is edited down it will be available and it will be at BrightonRuby.com.
ALI: Yeah, that's my pick as well, for the entre podcast ever. Watch that talk.
ANDY: It is so good. The best thing about that talk is I spoke at Ruby on Rails Conf last year and so I had a chance to sit down with Sarah, because I knew her from previous conferences, and I had the like 'in the bar' version, as it was being formed, and that's the reason I was like 'I have to get Sarah this year because I know that talk is going to be amazing,' because it was really thoughtful in the bar and I was like 'This is great!' As a friend I was like 'That's really interesting thinking,' and as a conference organiser I was going 'I must have this talk!' It was a long time coming for me but, yes, just a terrific piece of thinking.
ALI: Cool, okay. Any others?
ANDY: Yeah, it's another podcast so competition, sorry. It's the Ruby Book Club podcast.
ALI: Okay, by Nadia, yeah.
ANDY: Yeah, Nadia and Saron are doing a really interesting thing, which is they're literally going through page-by-page of a book and chatting and their choice of books has been excellent, so 'Confident Ruby', they've just finished it, by Avdi Grimm, which is a terrific book and actually the podcast is a really great way of reading it through, they do a really good job of explaining concepts and it's always nice to hear how someone else would explain something they've read in a book. It sort of helps reinforce what you think about it. So it's really interesting and it also forces me to read books, which is good. And they're doing Sandi Metz's new book which I am sure, as it's sat on my Kindle, is absolutely marvellous - the last one was.
ALI: Alright, and one more if you've got one.
ANDY: I don't really have one more. I've been watching a lot of 'The Walking Dead', it's very good.
ALI: Okay, how far are you?
ANDY: I am midway through the sixth season so I’m nearly up to date.
ALI: I am up to date but I am also doubly up to date - when I finished watching the series I went out and got the comics to the end as well. There are a lot of discrepancies, though.
ANDY: It's not discrepancies, it's different creative visions, I think.
ALI: That's okay, I don't mind that. They did that with 'Preacher' as well, which I was completely alright with, even though 'Preacher' was my childhood.
ANDY: You had a messed up childhood.
ALI: Yeah, I was a messed up child. 'The Walking Dead' is awesome, I really liked it, but kind of depressing.
ANDY: Kind of depressing. Spoilers - everybody dies.
ALI: Yeah, I don't think anybody who's seen the first season would be surprised at that. Cool, alright then, thank you very much for coming on the show. I've had a lot of fun, I hope you have too.
ANDY: My pleasure.
ALI: Great, so listeners, thank you to you too and we'll see you next time. Bye bye.