OpenDev 10.2017 | Contributing to open source (it’s not just about code)


– Hello, everyone. Today we are at Azure OpenDev. This program’s totally not going to suck. It’s completely live, which means
you get to see me mess up in real time. I am starting out
with my journey to go, which is really interesting because I get to drone
on a lot about myself and open source. So a little bit about me. I spent most of my life
outside of the United States, and I also come from a long
line of ninjas, apparently. My dad was a network engineer for Nintendo which means
that computers were always a part of my life, and I always had
the best gaming computer. No really.
I really did. Fight me. Dune was always
at my house. I used to build it with
my dad’s spare parts, because my dad always had
to have the latest and greatest. So that was cool for me. But sadly I was a girl in the 90s,
which means that I had to play with Barbies, because girls didn’t
do computers in the 90s. It just didn’t happen. My parents said actually
you have an artistic brain. Computers are fun but you
should do something else. So I grew up and I
became a photographer. I did that for about 10 years. And during that process,
I realized a couple of things. You can’t just go out
and take pictures. You need a website. So I learned HTML and CSS
and built a website. I needed a blog,
so I built a blog. I needed a rank on Google
so I learned SEO. Everything was self-taught
and it was really hard but it was also a lot of fun. What happened though is that I learned
that photography clients were not my target market. Photographers and other
businesses were. Turns out, nobody knew
how to build a website. And just like that, I was a consultant,
because everyone needed a website. Because building websites
for photographers, for hair salons and then eventually
I found myself doing a consulting job at Cisco. So I quit photography, because what’s
the difference between art and pizza? A pizza can feed a family of four,
and art can’t, just so you know. So I made a decision to code. While front end development
is still development, I wanted to do more. I was 32 years old
when I learned to code. That is old AF as the kids say. During that time at Cisco,
I found a couple of small open source projects, Open Stack and Open Shift and I was contributing
doing documentation for Open Stack and some front end work for Open Shift. I found that I really like the tech community,
it was really inclusive at the time. And so I started contributing, but I wanted to make
even more meaningful contributions. But I didn’t know where to start. How was I going to learn? Everything in Open Stack was in Python. How was I going to do that? So you know like when you go to
a boot camp and you super regret it? So I am going to bag on boot camps a little bit, sorry
you people who went to boot camps, it’s not your fault. In 12 weeks, 12 weeks of boot camp
says they will teach you the following things. I’m not going to read it all to you
because it’s a very long list, but I’m just going to scroll
through these really quick. Week one, two and three, this is
an incredible list here guys. Four, five, six and seven? In 12 weeks you are learning
all of these things. It’s not possible, it’s impossible. And just like that,
you’re a software engineer. They give you a card and it says
actually you are a software engineer. And I said, I am not
a software engineer. I’ve been in this long enough to know
what a software engineer is. So I made it my mission
to teach the new developers how to get into
developing on their own. I created this introduction
to programming resources. It’s really great. A lot of it’s free. Turns out these boot camps just teach you what’s
in these books for free. But I do understand that a lot of people
feel like they need the accountability of a class. So there’s lots of people out there
who are willing to mentor you or sponsor you. There was a really great
blog post by Laura Hagen. Just Google it, mentorship
versus sponsorship and you should find it. It’s great. So now we get to Go. I’m an accidental gopher. I was writing Python and I
found myself at OzCon in 2015-ish and I
met Steve Francia. Steve Francia is well known in the Docker
and Go communities, he is now on the Go team at Google. And he said actually I have known you
for five minutes, will you teach a Go workshop with me? And I was like, that is the dumbest
thing I’ve ever heard Steve. Why on earth would I do that? I’ve not even written
a hello world in Go. And he explained to me that he has a hard time
relating to the new developer. He’s been doing it
for a really long time. So it’s my job to ask all
of the stupid questions, and I did a really great job
of asking stupid questions. So we decided to do this workshop at OzCon
and as you could see, it was pretty decently rated. Which is strange, because I had
no idea what I was doing. In fact, I didn’t know what I was doing
the second time we did it or the third time we did it and since then we’ve given the workshop
five times in three different countries and I finally understand it
and I know what I’m doing. It took a long time. Lesson here, sometimes,
I want to caveat sometimes, is just say yes. What’s the worst that could happen? You could end up
in front of 200 people talking about something you’ve no
idea what you’re talking about. But at the end,
you might learn something. And also, nobody succeeds alone. None of you have. I am lucky enough to have a lot
of people invested in my success. This is just a short list
of those people. So thank you all of the people on this list
for helping me and answering my dumb questions. So now we’re going to get to contributing
and eliminating excuses, see live. I’m not a very good programmer. These are all my excuses, but I’d actually
heard some of these from you to. I don’t have a lot of time. My favorite one, I don’t know
what project to work on. This one I hear a lot. Myth, you have to be a programming
wizard to contribute to open source. This is a really
damaging thing to say, especially to newbies. There are lots of things that you
can contribute to in open source. Open source is a community of people
just doing what needs to get done. It’s not always code. There are lots of things
that you can do. So a couple of things. One, we need people
of all skill levels. The wizards are great, but we also
need the people like me asking the silly questions, because if you don’t understand it, it’s likely somebody else
doesn’t either. A small contribution is better
than no contribution. Fix a doc, like fix some grammar. Somebody needs to do that. The best project to start with is
the one that you’re working with right now. So here are some other things
that I can talk about. Strengths. Start with what you’re good
at right now. I don’t suck at graphic design. Go has a really cute
mascot, it’s a gopher. That’s why we’re called
gophers, made by Rene French. So I made lots and lots of gophers for lots of small projects
in the Go community. Eventually it got so overwhelming
that I decided to make a website called Gopherize.me with
my friend Matt Rire, shout out Matt Rire. It’s an avatar generator,
and it turns out that silly contribution had a lot more impact
than I expected. Influx DB uses it as their class photo. It’s crazy. Not only that, people are using the API
in new and interesting ways, and also making cakes. Somebody made a cake. That’s crazy. This repo is just full of gopher images. That’s all it is. It has 772 stars. That’s not insignificant. At least I don’t think it is. I don’t have that
many followers on GitHub. So how did I know that gophers,
these little gopher images, were needed? I didn’t, I didn’t really. I’m going to be honest. But the best way that you can know what to do
with your community is to start by listening. Everything in open source
involves other people. You’re looking to join a team. So shhh, we’re listening. Mailing lists. This is a big one. So for many projects, a mailing list
is the main conduit of communication. You’re going to find out lots of
things that the project needs. Start there. IRC and Reddit,
that’s where the people who are contributing to the project
complain about things. Figure out what they’re
complaining about and see what
you can fix. Blogs. Most of your heroes and core
contributors have a blog. Read it. Working with tickets. Please work with tickets,
please do that. There’s lots of bugs
in open source. Diagnose a bug. Let’s do that. They’re often poorly reported. Please diagnose a bug. Close fixed bugs. Sometimes fixed bugs just sit there,
they just sit there. Clean it up. It saves developers time,
please do that. That would be cool. And working with code. We all know that code is what
makes open source happen, right? So let’s talk about that really quick. Test, beta test.
Please do that. Projects run on many,
many platforms. Test it out.
See what happens. If it breaks, report it. I can’t emphasize this enough
to fix a bug. This is where lots of people
get started in open source, fixing small things. Eventually that adds up. Write a test, more tests, please. You can’t have too many
tests, in my opinion. Some might argue. Don’t do that. Add a comment. As I said earlier, if you are
confused, somebody else is too. Docs. Please, please, please help with the docs. Oftentimes documentation is written
from the point of view of somebody who’s actually
writing that project. It can seem like a manual, so somebody new coming in
has a different perspective. So help with that.
It’s important. It might seem tedious because
it is, but it’s important. Work with the community. Open source is all
about the community. Answer a question. That’s the best way to build people up. Answer my dumb questions, please. Write a blog post. If you find a bug and you fix a bug, or you’re using the project
in an interesting way, blog about it. Tell people what you’re doing with it. Improve a website. Sorry most programmers
don’t have a lot of design talent, and that’s OK. But more than anything,
pay it forward. If you’re using a project
and you’re not contributing, shame on you. I feel like a hypocrite
with this quote. Don’t be too proud to
accept help when it’s offered. I often am too proud to accept
help when it’s offered. However I never
regret it when I do. Also, it’s OK to fail. I do literally all the time. If anyone says that they don’t,
they’re liars. Lying, lying liars. And more than anything,
we are a community of coders. But if all we do is code,
then we’ve lost the community. Thank you I am Ashley Macnamara.

Leave a Reply

Your email address will not be published. Required fields are marked *