Mike Hall Interviews Adewale Oshineye on Software Craftsmanship | SCNA 2013

UGtastic Archive
Meet Adewale Oshineye, a developer advocate and documenter, who shares his approach to finding and engaging with people in the software community through various platforms and documenting his observations and learnings. #softwarecraftsmanship #developeradvocate #communitybuilding
The Interviewer

Mike Hall

Interviewer, UGtastic

The Guest

Adewale Oshineye

community building and user-group organizing

The Conversation


Mike Hall Interviewer, UGtastic
[Music] Hi, it's Mike with euketastic. I'm here at SCNA 2013 and I'm sitting down with Adewale Oshineye. And he is one of the co-authors of the Apprenticeship Patterns book a few years ago, which is still a popular book in the Software Craftsmanship community. But he's also an avid documenter and he's one of the people that takes his observations and you're able to just, as you said, take them where the people are. And you're a very avid documenter, almost like a casual journalist, I would say. But you're a developer and, as Chet Hendrickson kind of joked earlier, what does an extrovert developer do?
Adewale Oshineye community building and user-group organizing
They look at the other person's shoes, but you kind of look a little bit higher and you're looking at things, I think, in a unique way.
Mike Hall Interviewer, UGtastic
So, first, you know, thank you for taking the time to sit down with me. And, you know, what's, what, when I say, when you kind of said you take it where the people are. Let's start with, what does that mean and how do you figure out where the people are?
Adewale Oshineye community building and user-group organizing
So, the way you find out where the people are is you ask somebody. It doesn't really matter who you ask. They'll tell you something and it's a place to start. It may be wrong, but it's more than you knew when you started. For me, it's about, so in my job, I'm a developer advocate. I work with Google's platforms. I work with external companies, external developers to help them grow whatever product or thing they're making using our APIs. Part of that job means you have to find these people. Now, some of that is putting yourself in a place where they can find you. So, I try to make sure that I'm on pretty much every social network or platform that exists so people can find me. But that doesn't mean I have to be an active user of every single one. So, for example, I'm on app .NET. I don't use it that often, but I'm there if somebody wants to ask me a question. So, it's trying to be available. So, trying to plug yourself into as many places as possible. Well, trying to be in places where you can be useful to people, not necessarily everywhere. So, for example, I look at a lot of the big Chinese social networks, but I realized that I wouldn't be of any use since I wouldn't understand what anybody is saying.
Mike Hall Interviewer, UGtastic
Right. Yeah.
Adewale Oshineye community building and user-group organizing
I think it's Quigo. I'm trying to think of that. Actually, I'm thinking of the Chinese Twitter equivalent. I've looked at that and been like, "Well, maybe I should put you Tessick on there, but I don't know how I can engage there. " So, it's a very interesting perspective. You kind of have to be selective. So, you want to be, it sounds like you want to be in as many places as possible, but not just any place.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
You want to be in places where you add value, where you're helpful. I think you talked earlier about how I'm a documenter. So, there's a couple of patterns in apprenticeship patterns that I'm really fond of. One is record what you learn. The other is share what you learn. And the reason I like them is that often most of the things people think I share, I'm not really sharing them. I'm just recording them. I'm just recording them in public. And it's something that's useful for people. So, for example, I'm interested in a thing called Zuko's Triangle. It's a tricky problem in identity. And I've written about it a few times over the years. I've never found one good source that linked to all of the interesting articles about this subject. And so, I made a post in which I hashtagged it "future me" and then I put it there. So, now I can go to Google and search Zuko's Triangle #futureme and I'll find that. And if I don't find it, it means I didn't actually create it and I'll create it. So, it's doing these things to help me, future versions of me, find the information they need. And then that turns out to be useful for other people. But because you put it out in an open place, it can be there. So, it's that I'm helping myself, but if it might be useful for you, great.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
It's the same reason why I take so many screenshots and put them in Flickr. Initially, it was because I wanted to learn, I wanted to understand how people design software. Why people do the things they do. And by putting them on Flickr and making them public, I found that when people ask me a question like, "Hey, how does this work?
Mike Hall Interviewer, UGtastic
" I could say, "Oh, you want to know how NPR does signing?
Adewale Oshineye community building and user-group organizing
" Or how to do signing effectively if you are using Twitter to do signing, but you need the user's email address. "Oh, I took a screenshot of flavors of the Five Star FM doing that a couple of years ago. " And I search on Google and I find it and I go, "Oh, cool. " And I send you the link.
Mike Hall Interviewer, UGtastic
Right.
Adewale Oshineye community building and user-group organizing
And you think, "Oh, thanks, but I didn't do it for you. " Yeah. I did it for me because I want to understand it two years ago and now it's useful. It's almost like taking your memory and being able to put pieces of it out where it can be utilized. Yes. I've taken the things I recorded, the lessons I recorded, and I'm now putting them in a format where I can share them. And again, that also brings us to an interesting point. Earlier in a post-interview conversation, I was talking with somebody who said that they became a speaker by accident. And I said, "Well, but obviously you had something to share. You didn't have to become a speaker. You just had something to share. " And, you know, that the speaker part wasn't important. It was just that you had something that came up that could be interesting for somebody else. But it's hard to determine what could be interesting for somebody else. So just by putting things out there, you let other people decide. I think people decide about the things that I share that they find useful and the things I share that they find irrelevant. But I focus on recording the things that are most valuable to me. So, for example, I had a day once where I went out and I basically took screenshots of the homepages of every popular social service I could find on the web. And when I had about 50 of those, I told people, "Oh, by the way, I've collected 50 of them. Here's what the front page looks like. " And then people started saying, "Oh, you missed this one. " And I never heard of it. And they're like, "Oh, cool. Thank you. " And now I have about 80-something of those. And I mentor this startup. They're called the Backscratchers. And we were having a discussion about what the design of their front page should look like.
Mike Hall Interviewer, UGtastic
What should it say? What is it trying to achieve?
Adewale Oshineye community building and user-group organizing
And I was trying to explain and waving my hands. And then I remembered I had this album of 80-something front pages of sites. And I update this over time so you can see the evolution of these sites. And I said, "You know, let's go through these. " And by going through, when you go through 80-something of these, you can start to see, "Oh, these people are focused on making it easier for people to sign up. " Right. These guys want you to basically buy stuff. They want to make it very clear that they sell things. These people, you know, they don't expect you to ever hit their front page because they're assuming they signed in. And you can start to see these patterns. But I hadn't created it to help the startup eyes mentoring. It was something I had created in the beginning because I was curious. And then other people had helped me because it was helpful to them. And now it becomes something useful to all of us. So it sounds like you, you know, you have all these curios that you've accumulated. And one of the risks you have if you have lots of knickknacks around is getting cluttered.
Mike Hall Interviewer, UGtastic
Do you occasionally prune?
Adewale Oshineye community building and user-group organizing
So I don't prune. I actually, I probably should, but I don't. What I do is I throw them all into fairly obscure places. I have a screenshots album of like a, I have a Tumblr called Presentations Potter, which contains random photos that I think might be useful in presentations. I have an album on plus of the front pages of sites. And I put them there and it's electronic so it doesn't feel like it's cluttered because it doesn't get in the way. And I depend on web search to be able to find them again. And often things that I've accumulated and I think maybe I should prune this.
Mike Hall Interviewer, UGtastic
Do I really need, you know, five photos showing the evolution of Flickr's homepage?
Adewale Oshineye community building and user-group organizing
And then Flickr does a massive redesign. And then suddenly understanding the context of the evolution of it. And then this discontinuity in that evolution becomes really valuable. I think that's one of the really powerful ideas I got from this guy called Vannevar Bush. He wrote a paper called As We May Think, just after the Second World War. And he describes something called the Memex, this idea that if you could gather the information and then somehow plot the trails you've taken through that information. And when other people were trying to explore that same space, they could see your footprints. And by looking at the path that they worn into that data set by all these footprints, they would understand what was popular, what was valuable. And maybe even what was safe. If all of a sudden you just see a well-worn path that always ends at a certain point. Maybe there's a bull bear or something. Maybe you find that everybody who reads this article then reads this article and always quotes this article but never that one.
Mike Hall Interviewer, UGtastic
Right.
Adewale Oshineye community building and user-group organizing
Because maybe that article isn't that useful then. And take the shortcut.
Mike Hall Interviewer, UGtastic
Yeah.
Adewale Oshineye community building and user-group organizing
One of the things that also just makes me think about is that trying to write, I recently suffered this with blogging and even with trying to generate content for you, Tastic. Because I think about, hmm, I've got to write an article. It has to be really interesting. But it doesn't sound like you're limited by that. You write and then you take a step back and you let some, maybe some stuff, or this is how I'm inferring it. You let some stuff simmer and then come back and say, oh, okay, there is something useful there. But by the constant writing, the constant generating of content, and then eventually taking a step back and looking at a bigger picture, you can plug them together and see a piece of something that can be interesting. So that part of the problem that we have is that we feel that we have to do this big thing up front.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
And we have to write this big, amazing article up front. But, yeah. I think the way I, it's not that deliberate.
Mike Hall Interviewer, UGtastic
Yeah.
Adewale Oshineye community building and user-group organizing
I wish it was that planned out. It's more that I record. And sometimes I record in public, sometimes I record in private, sometimes I record on paper, sometimes I record digitally. And every now and again, I share. So, for example, I came in this morning and I was talking to somebody and they were saying how they come from a non-traditional background and I wish there was some kind of roadmap on the things they don't know they don't know.
Mike Hall Interviewer, UGtastic
Right.
Adewale Oshineye community building and user-group organizing
And I said, no, I did a talk about this two weeks ago. And I promised those guys I was probably going to send them some notes and I haven't. But hey, I don't know, it's on my laptop. And I said, you know what, I'll just post this online. Right, right. Because otherwise I'm going to have to email it to you and to everybody else who went to this talk. And if I put it online, I can send everybody a link and if they want to share it with other people, they can. And if it's of no use to anyone, it's okay.
Mike Hall Interviewer, UGtastic
Yeah.
Adewale Oshineye community building and user-group organizing
And I think that's what you just described as what I was trying to say is that embrace the informality of our information and that let information be naked a little bit. That it doesn't have to be always dressed up in a perfectly intro, point, point, point, summary structure. It can sometimes be here's some information.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
I mean, it's okay to make mistakes. It's okay to publish something and then say, oh, this is wrong. I actually wrote something a while ago and I mentioned Leeds Law. And actually, you know, I was talking about something around community for me. And then Thomas Van Der Waal told me, oh, you don't know about Leeds Law clearly.
Mike Hall Interviewer, UGtastic
And he shared it with me and I went, oh, is there a good explanation of this?
Adewale Oshineye community building and user-group organizing
And he says, well, no, the Wikipedia page is, you know, it's horribly confused, but here are some pages to start. And I've spent the last few months sort of been looking it up and I feel like I have a decent understanding of it now. And so I have this mental note. I should really write that up, you know, not necessarily to help other people, but initially just to clarify it for me. So sometimes I write, not because I want to communicate, but because I want to understand. It's an idea I got from an author called William Zinsser. He has a book called Writing to Understand. And the argument is you write things down so you understand them better.
Mike Hall Interviewer, UGtastic
Because now you have to say, well, what does that mean?
Adewale Oshineye community building and user-group organizing
And once you've written it down, you may actually then say, okay, now I understand this. You can publish that as it is and people may not understand.
Mike Hall Interviewer, UGtastic
You may need to, you may look at it and say, you know what?
Adewale Oshineye community building and user-group organizing
For other people to understand this, I have to clarify. So I'll try and explain Reed's Law to you, for example.
Mike Hall Interviewer, UGtastic
Right. So do you know Metcalf's Law?
Adewale Oshineye community building and user-group organizing
I know that name. So he invented Ethernet, amongst other things. But the general idea, I'm going to mangle this, is that the value of a network increases as a function of the number of connections between the nodes in that network.
Mike Hall Interviewer, UGtastic
Okay.
Adewale Oshineye community building and user-group organizing
If you have the world's only phone, it's utterly useless.
Mike Hall Interviewer, UGtastic
Right. Okay.
Adewale Oshineye community building and user-group organizing
Because you can't phone anybody. If there's another person, well, you can phone that person. If there's two other people, there's two potential phone calls you can make. There's two potential phone calls they can make. There's two potential phone calls this person can make. Now there's six different parts. And that grows exponentially. As the network increases the value. Yes, exactly. So the value of communication, that you can reach the more people.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
I think it's n squared to the size of the number of nodes in the network. So Reid came up and said, you know, there's an interesting thing you can see in these networks. Imagine you could form groups of people within these networks. So in a group with, let's say, five members, I can form a group that's got... There are all these combinations of two people. That's a group. Those are groups. There are all these combinations of three people. There are all these combinations of four group people. And this grows faster than n squared. This grows at 2n. So the point he makes is that if Metcalfe's law grows like this, Reid's law grows like this. And the insight that comes from that is, wait a minute. That means if you're building a social network or if you're building a communication system, if you let people form groups, the utility, the value of the thing grows much faster. So Reid causes a group forming network. In a group forming network, the value goes faster than a normal network. So, in theory, if phones had started off and they'd worked out a way to let you phone multiple people, phones would have increased in value much quicker than because they could only do one-to-one. Or is it because I can, by having a connection to two groups, I actually have for each member of that group, I'm able to communicate directly to them? You can communicate to multiple sets of people. So the set of people you can communicate with. If there's a network that, say, has four members and I can only do point-to-point, then I, as a person, can only have a path to each of those three people. That's three.
Mike Hall Interviewer, UGtastic
Right.
Adewale Oshineye community building and user-group organizing
But if I can have a path to all the subsets, as well as to each of the individuals, that's a much larger number of connections, which means there's a much richer set of things. It means you can take a large community, pull aside little subgroups, and the subgroups can invent things that the whole group couldn't have done. And if you have many of these subgroups, you can do lots of interesting things. So Flickr is one of my favorite examples of this. There are obscure Flickr groups devoted to pretty much everything. So I have my, I'm using my Fuji X100 camera nowadays. It's quite old, but I like it. And there's a community for that. But within that community, there's a community for people who take black and white photos with the Fuji X100. And then there's probably a community for people who take black and white photos with the Fuji X100 in London. And then there's probably one for people who take photos of it like that in North London. And then in, you know, the eastern part of the North London. And then all these subgroups. And there's all these places where people can interact with the things you make. And all these potential conversations you could have. I think the idea of Reads' law is that there are, in a group forming a network, there's more value. And I think one of the mistakes we make is that we think of the internet and we say, this is the internet, it's got two, two point something billion people in it. There are two point something billion connections that can have. But then you look at all the subgroups. All of the, each site is its own little subgroup. And that's why the internet has grown in value so quickly compared to something like the phone or television. Because you could only do one to one or one to many. You couldn't reach subgroups. This is why I think the, you know, the kind of instant messaging stuff we're seeing have grown in value so quickly compared to television. And this is a really bold insight. And the implications of it, I don't, well, I don't even understand the implications. Yeah, it's very interesting. Even at a microscopic level, I'm thinking about even small tools that recently I, the team I'm on, we switched from Campfire to HipChat. And you'd be like, okay, well that's a group, they're both group chatting. It's fine, okay, people can join groups. But in one, I can spin up a very simple, small subset of chats. A team is working on a specific thing. But I don't have to go off into a separate tool to do it. I just, boop, I'm right in there. Or I don't have to go up and it's less complicated. So in HipChat, I can just select these people and I'm in a subgroup. And, but I can still have the main group there accessible. And, but in Campfire, I had to kind of go and it was a little bit more cumbersome. And, you know, I had to set up a completely different room. And I was trying to figure out why, once I showed it to everybody, they just immediately switched over. Every, the whole company within one hour was, everybody was over on the, on the new system. And completely just left the old one behind. And it was, the first thing I saw people using was subchats. Subchats, not having to spin up a separate group and, and having a developer channel. Just all of a sudden, the three developers were in our own little group. So we could talk without being noisy in, in the main group where we were sitting. Well, the thing is you already wanted to have these conversations in the past, but you didn't because they'd be noise to the whole community.
Mike Hall Interviewer, UGtastic
Right.
Adewale Oshineye community building and user-group organizing
In the same way that you can come to SCMA and there are people here who are really into Rails. And there are people here who are really into Clojure. If all of us must always be in that one conversation, then many of the interesting side conversations can't happen. So there's a few people, for example, here who are really into, you know, microservices. And I've been spending a lot of time trying to find those people because I'm really interested in that topic. And in a network, in a conference, in an event that makes it easy to find these subsets, these birds of the feather, it's much more valuable than if there's this one conversation. It's one of the reasons why I like a multi-track conference over a single-track conference. A single-track conference is much more focused and it's easier to manage, but you have less variety. You have fewer, you know, you have fewer interactions. The network is less rich.
Mike Hall Interviewer, UGtastic
Either was I, were you at the Coding Coffee this morning?
Adewale Oshineye community building and user-group organizing
I did. It was really sunny. Well, I came in early to get set up and I got to witness what I think is a description of what you're describing in action. Where we're inside of a larger group. But in the Coding Coffee, what they did was each table was separated. So when I came in, I didn't realize what was going on. I just saw clusters of people sitting around different tables. And I assumed that when I first walked in, I just assumed it was just people that happened to group. But then as I walked around, I saw, oh no, there's a C++ table. There was an Erlang table. And then there was different numbers of people at different groups, but they self-selected and formed their groups. And then somebody went up onto the stage and was able to address all the groups. So it was, we're in this big subgroup, but then inside of that group, there's subgroups and they're all talking and communicating to each other. But when you came and stepped out, you could talk to all the groups. I'm not sure exactly how that maps into it, but it's something now that I'm thinking about when you're talking about having groups of people and then they can have their own private chatter. That's, you know, the stuff that's Erlang interesting is only going to be interesting to the people that are Erlang. But if somebody stands up and they broadcast, they can hit all of those groups and then each group can then decide whether they want to deal with it.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
So this is what we said earlier when we were talking about go where the people are. Let's go where the right people are. So if you are interested in talking about Erlang, you should go where the Erlang people are. If you go to something that's larger, so you might go to Java 1, for example, huge conference, there are probably Erlang people there. They'll be really hard to find. Yes. If you go to an Erlang conference, there will definitely be Erlang people there and they'll be very easy to find. Yes. Now, and this is, I think, one of the lessons from Reed's Law, that you can create these little subgroups where you can do things, you can explore things, and some of these groups will fail. But that's okay because it doesn't affect the health of the overall thing. And that's why I think there's a lot of opportunity for lots of really small, interesting communities and sites, and that's why I use so many different sites.
Mike Hall Interviewer, UGtastic
Yeah. Yeah. Exactly.
Adewale Oshineye community building and user-group organizing
If there had been one table where they put out a banner for a language and nobody went to that, all the other groups would still exist. The conference would still go on, but that one table just… Okay. But, I mean, one thing I would have done differently, I probably would also have given people little pieces of paper where they could have written down the names of groups that I, the organizer, wasn't aware of. So, goodness knows how many of the people who are there were really, really interested in Elixir, for example.
Mike Hall Interviewer, UGtastic
Right.
Adewale Oshineye community building and user-group organizing
And would love to have talked about that. I mean, I know Dave Thomas is interested in that. Well, and then the organizer could have gone and said, all right, let's put the Erlang people next to the Ruby people.
Mike Hall Interviewer, UGtastic
Yeah.
Adewale Oshineye community building and user-group organizing
You know, and then that's a way to connect those two groups.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
So, one of the concepts I'm really interested in is the concept of heterophily. So… Heterophily. Heterophily. Yes. So everybody, okay, a large number of people know about the concept of homophily, the birds of a feather flock together phenomenon.
Mike Hall Interviewer, UGtastic
Okay.
Adewale Oshineye community building and user-group organizing
Which is what we saw this morning with all the Ruby people on one table, the other people at one table, Java people at one table. That's nice. But the reason I'm interested in heterophily, heterophily it says that what happens if people who aren't similar flock together? Mm-hmm.
Mike Hall Interviewer, UGtastic
How do you create that kind of environment? How do you have ideas flowing between different groups?
Adewale Oshineye community building and user-group organizing
So not the same, but similar. But different.
Mike Hall Interviewer, UGtastic
Okay.
Adewale Oshineye community building and user-group organizing
So homophily is people who are similar clustering together. Heterophily is people who are different clustering together.
Mike Hall Interviewer, UGtastic
Okay.
Adewale Oshineye community building and user-group organizing
The idea is that if you live in a homophilus network where everybody, you know, you know is a Ruby programmer, the number of new ideas you run into is going to be fairly low because you all read the same things, you all do the same things, you have relatively similar tools. However, if there's one person in your little community who is also an Erlang programmer, then they bring in ideas from the Erlang community to the Ruby community and from the Ruby community to the Erlang community. And this person is in a homophilus network because they're clustered together with Ruby people and Erlang people. And if you have a few of those kinds of people in your network, you have new ideas coming in from radically different places. And this also makes me think about an interview from SCNA as well from last year I did with Patrick Welch about network weaving.
Mike Hall Interviewer, UGtastic
Is this a similar? Exactly.
Adewale Oshineye community building and user-group organizing
This idea that you have a homophilus network that has heterophilus networks woven through it. And if you do that, if you create this and you go to the trouble of doing this, you can build something much more valuable. So you can say, I'm running a Ruby conference, but I'm going to bring in somebody who's a UX designer to share some of their insights. Or I'm going to bring in somebody who is a concert pianist and bring them in to share some of their insights. And it's different. It's stuff you wouldn't have come up with because you don't belong in that community, that world. And they bring in their new ideas and it changes you, changes your community in ways you wouldn't have organically changed. It's interesting. So like as a user group organizer, you might think about if you focus on Java, bring in a Rubyist.
Mike Hall Interviewer, UGtastic
Exactly.
Adewale Oshineye community building and user-group organizing
If you focus on, or the Ruby Madison, they do something very interesting where they actually bring in people who aren't even developers. You want to build bridges to other communities because that's how new ideas, new possibilities happen.
Mike Hall Interviewer, UGtastic
Well, thank you very much for taking the time to sit down with me. Thank you. A lot to think about. Thank you very much. Thank you.