Welcome to another amazing Dev XP Session brought to you by Ingressive and DevCenter.
Today's session promises to be exciting as usual and we have @Jessica Rudder and @lee-dohm joining us from GitHub to talk about growing in the community. Welcome to Square Jessica and welcome back again Lee 😃
We would start off with an introduction, tell us about you and your work.
Thanks! My name is Jessica Rudder. As @acekyd mentioned, I’m an Application Engineer at GitHub. My team is currently working on all things related to who you, as a developer, are on GitHub. This includes profile pages, hovercards and more exciting things to come! Before this I worked at Flatiron School helping to build their online learning platform to teach other people to code. That had a special place in my heart because it was the same place that I had learned to code!
👋🏽 I'm Lee Dohm, Open Source Community Manager at GitHub. I've been involved in and run many communities over the years, both hobby and professional. Most recently, I participated in the Atom editor community, was eventually invited to be the moderator of the message board, and finally hired on full time to be a Community Manager at GitHub where I've been for the past two years.
Awesome!! This is interesting. Thank you for intro.
Lets get down to the business of today. We have questions from some of our members.
@lee-dohm Do you still participate in the Atom community... And trick question Atom or VS Code
Yes, I still contribute regularly to Atom. I'm frequently found in the Atom Slack team. Work with the dev team to make sure that the community's concerns are heard. And Atom all the way (though I understand the attraction for VSCode for certain uses, I'm just not much of an IDE guy ... I'm old-fashioned that way 😀)
What got you involved with the community @Jessica Rudder , you mentioned building the online learning platform for the same place you learnt to code, was this a big push?
I think part of it was wanting to stay in a place that felt safe to me. I’d previously spent 10 years working in marketing and Flatiron had been the place that finally helped me achieve my dream of becoming a programming. I really loved the idea of joining their engineering team and helping other people make that transition as well. There was definitely some imposter syndrom too though….a fear that I wouldn’t be good enough to work anywhere else (which ended up not being true at all). One of the things I saw while working at the school is a lot of people end up feeling this way, but they all go on to join engineering teams and do fantastic jobs even without CS degrees.
Question from @walecloud
@lee-dohmm Forgive my ignorance towards atom but, I will like to know how if it has an embeded terminal something similar to vs code right from the box without an add-on
No, it doesn't. But I think that's an advantage, personally. It means that we can concentrate on making the editing experience better without getting bogged down in trying to make a terminal awesome too. (I'm suspicious of programs or hardware that tries to do everything ... the expression "jack of all trades master of none" comes to mind.)
One of the reasons i think and I've seen some developers prefer vscode currently to even sublime is the integrated terminal that comes with it cos it saves time switching between between your IDE and the terminal.
I use VS Code and still don't use the embedded terminal though. I like the real estate and I don't mind a swipe to switch to my iTerm.
You have to hit a key combo or use the mouse to switch from the editor pane to the terminal pane within an IDE ... or do the same to switch between the editor window and the terminal window. So to me it's six of one, half-dozen of the other.
Out of curiosity for me though and a feedback for the the atom and maybe github team. Can there be like a survey to seek developers view on their ide of choice and why, if they moved and what made them switch.
You can always send in your personal feedback to email@example.com and that will get to me and the rest of the Atom team. The thing to keep in mind though is that Atom isn't trying to be all things to all people. I've always said that if another tool is better for you than Atom is, then please use that other tool. I just want you to be happy 😀
Question from @dayveadams
@lee-dohm Great work with GitHub! how do you measure success in your role as community manager?
Mostly, do people feel like they can come to the community, ask anything, and not get their head bitten off
Seriously though ... one of the biggest walls that people have to get over when attempting to join a new community is trying to understand the community's unwritten rules. I do my best to ensure that the main unwritten rule is that everyone is welcome, unless they're being a jerk to other people. Once that's firmly established, people can handle the rest themselves a lot of the time ... talking, trading ideas, etc. At that point, I try to get out of the way and not insinuate myself into every conversation (sometimes that's hard because I'm always a participant in a community before I'm the "community manager")
Community was one of the hardest ‘features’ for us to build into our online platform at Flatiron. There was an active Slack channel, but, we couldn’t figure out how to take the friendships people make during in-person courses and get that online.
By the time I left, it was still something we were struggling with. I think the team still hasn’t figured it out a year later. We required things that would make you participate in the community (e.g. you had to write 5 technical blog posts in order to graduate). We added social sharing (allowing people to easily tweat about what they were learning). We made a “Find a Pair” button that would search for someone that was working on the same lesson at the same time and ask them if they wanted to pair. If both of you wanted to pair, it would automatically drop you into a screenshare with each other.
We had projects that we encouraged people to pair on as well.
Probably the most successful things we did to build community was to have in-person meetups for people to work on the lessons in the same physical space. That’s not really scalable to an online program where you might have only 1 student in an entire country though.
The students that joined the slack channel and regularly participated there were definitely the ones that most felt like they were part of a community.
Question from @Touchstone
Sometimes I feel like joining an open source community to contribute but usually don’t know where nor how to start. Is it appropriate to seek for on-boarding in such senarios?
I believe most of the students would go through the entire course without interacting with other students. And that’s tough, because community is so important in learning and programming!
One of the things that GitHub has tried to do is make it more obvious when someone is new to the community such as the "First-Time Contributor" badge on new PRs. But it is always fine to say you're new and might need a little more help. One thing to know though is that some projects have made a priority of mentoring new people ... but others don't. Both approaches are ok in my book ... not everyone has the skills to mentor others.
One way to find projects that are reaching out to mentor people is the "good first issue" label on issues ... or the First Timers Only project
Many projects also have detailed “Getting Started” documentation. Reading through that first and then asking questions (if you still have them) is a good way to show the community that you appreciate the effort they’ve already put into onboarding. It also helps them find gaps in the onboarding. If you read the documentation and still have questions, the documentation may need to be updated (and that might be a great first PR for you to do!).
My first contributions to Atom were documentation fixes.
The main thing to know about contributing to open source is that open source needs people who are going to contribute or work with them. If you're willing to pitch in, help, and make the effort to learn, then that's a big first step. See here
Question from @Egahi
What's the role of an application engineer? @Jessica Rudder
It’s mostly an internal GitHub title that indicates that I work on the github.com application itself, rather than one of the other projects like Atom, the desktop application, or the underlying git infrastructure. You could essentially substitute “web developer who works on github.com” for “application engineer”
Tech companies in the United States are very bad at having consistent titles. I’ve been a “Web Developer”, “Software Engineer”, “Engineer”, “Experience Engineer” and “Application Engineer” and every single one of those roles had the same responsibilities of writing code to build a web application.
It it begs a question. How do you communicate what you do on your cv without being misunderstood ?
Some people will use a more generic, industry-wide title on their cvs. For example, I would probably use “Software Engineer” instead of “Application Engineer” because it’s more standard. I think though, because there is so much variation in titles, people mostly rely on the description of what you did in the job to determine what kind of job it was.
Question from @dayveadams
From a personal perspective, designers feel quite lonely regarding open-source projects. In your experience, are there cases where designers contribute, say, a UI redesign to open-source projects? If so, what would be great tips/precautions to not feel alienated by code, pr requests, commits & other dev-related stuff we may not be so used to?
The benefit to being a part of a community is that you get to be there and learn alongside everyone else. This is a huge benefit ... just look at StackOverflow or Wikipedia ... being a part of those communities means that we get to have these gigantic resources at our fingertips. Contributing to a community means that you get to help guide the conversation and make the community and its resources better. And sometimes you even get fringe benefits, like being asked to speak in chats or at conferences, or even get contract or full-time work from them.
I have definitely seen designers play an important role in the success of open source projects. Projects that have well designed interfaces and information sites are much more likely to gain wider use (which means more people will know about the project and join the community working on it). I think many open source projects think of design later because they’re often started by engineers that are focused on fixing a technical problem (since that is the skill they have). I can’t speak for all engineers, but I know I’m always thrilled when a skilled designer gives me a UI that I can build (rather than relying on me to design it). We definitely value our designers highly at GitHub and I wish more open source projects would do that as well.
Atom would not be what it is today without our designer `@simurai`. He is a _huge_ contributor and so very knowledgeable about a great number of things that the rest of the development team just can't cover. We tease him and say that he makes everything that we do look pretty ... but it is _so_ much more than that. He makes things not just pretty, but useable. If you need help with learning the "dev-related" stuff so that you can contribute to open source better, I can suggest some resources that helped me and perhaps that will help get you over the hump?
Aha quite interesting.. @lee-dohm sure, would love that!
I would start here ... it is the thing that helped me understand Git and it's specific brand of source control
If that's still too "dev-minded" for you, let me know and I can find other things. Also let me know if it's more than just source control you're stumbling over
Question from @Egahi
Speaking about communities, how is github managing the users who are skeptical about anything microsoft ?
But seriously, a lot of us at GitHub have been in the industry for quite a while ... we know Microsoft's history. Many of us used to work there and have seen it from the inside. We understand that there are people that can't or won't forgive Microsoft for its past actions. Sometimes, you have to take the bad with the good. And we feel that, on balance, this change will allow GitHub to do more good than we've been doing and hopefully will allow the awesome culture of GitHub to continue pushing the greater Microsoft company and community in a better direction than it has gone in the past
Don't you ever get overwhelmed as a community manager ? How do you deal with it ?
I have a bunch of different strategies ... one is that there's a hotel/spa/resort place that is near my house where I go to just wall myself away from the world. I watch movies, eat good food, read a book, and ignore _everyone_ for a few days. Sometimes I go there to work on hobby projects or just to have a more relaxing environment from which to do normal work.
Another is I devote some amount of time every day to frivolous things, like playing video games or watching "guilty pleasure" TV programs.
I wrote an article that goes more in depth to this when an Atom volunteer maintainer asked me a similar question
Question from @QuadriPhobs
Cool. How but the place of humour, sarcasm and making fun of people. Here do you draw the line ?
I’d certainly draw the line at making fun of people! The other two are definitely going to be harder to define where it’s too much.
One of the basic rules in enforcing a code of conduct, for me, is "talking about people instead of ideas is across the line" ... saying an idea is stupid is one thing, saying a person is stupid is quite another. So humor that doesn't target a person or group of people is fine. (You can see some of my own examples above 😀)
Question from @Touchstone
In my opinion, time management is a great skill required amongst others when contributing to open source projects and working on other personal projects. How do you cope with that ?
As I stated in the article I reference above, your well-being has to come first ... or you're just going to give yourself a heart attack and then you won't do anyone any good. The 40 hour standard work week was established based on research that shows that people do their best work when they _only_ work 40 hours a week. Work them more than that and they actually start making mistakes that _costs_ more work than you gain from having them work longer. (Henry Ford sponsored a lot of this research in the early 1900s BTW.) So if you keep that in mind, and remember that you're only human, then you can start to make positive strides toward keeping things under control. Or at least, that's how it worked for me.
Question from @walecloud
How do measure developer success at github. What I mean is how does github handles developer growth ?
I’ve been very impressed with GitHub’s committment to ongoing education for all of the employees. Part of our benefits package is a budget for education/training in our field. We can spend it on books, courses, conference tickets, etc. For conferences, GitHub covers travel/hotel/food as well in order to ensure that people are able to attend. For developers, there is a week each quarter devoted to ‘hacking on something interesting’. It’s a great time for trying out a crazy idea you have that isn’t on the product roadmap that might be an interesting product/feature. The only rule is that you don’t work on something that’s currently part of your assigned work.
Most engineers have 1-on-1s with their managers to regularly check in on their growth. There are also formal checkins twice each year so you know how you’re doing. In my experience, it’s been a great time for my manager and I to sync up on where my skills are at and where we’d like them to be by the next 6 month check in. Then we make a plan for how to get there!
I don’t mind going over some as well.
What's the action plan like for developers that are below their required expectations after a lets say Qrt target sync with the Manager ?
I’m not sure. I know that it’s important at GitHub that people not be surprised at being let go. So, they make sure that people know they are performing below expectations and they make sure managers have been working with the employee to help them improve. If it’s a bad fit on projects, they might try moving the person to a different team. If that’s still not working, they will let someone go.
Question from @Egahi
Problems! How do you deal with an issue that escalates quickly in a community. Say there's a fight and a lot of people are making fun of it ?
I do my best to make sure that it doesn't get to the "fight" stage :slightly_smiling_face: I've been around online communities for over thirty years now, so I can tell when things are heating up. I'll step in and warn people to keep things civil, or lock the thread
I love communities but I dread being overwhelmed. So I stay anonymous, any word for me?
Here's the thing ... there's the 90-9-and-1 rule in online communities of all sorts. 90% of the community just "consumes", 9% "participates", and 1% "contributes" ... I believe the rule was coined at Flickr where they noticed that 1% of the community would upload albums or photos, 9% would comment on other people's stuff, and 90% of their traffic would be people just coming to look and never saying a thing. This rule has generally held true across all online communities. So if you're just "lurking" as they say, you're in the vast majority!
There are plenty of communities that I just lurk in, and only a few that I spend a bunch of time in. This is just the way our brains work (look up the "Dunbar number" for the biological underpinning for why this is ... or the Monkey Sphere for a humorous and layman's view
With that we have come to the end of today’s session! Thank you for being here with us @Jessica Rudder and @lee-dohm
Thank you guys for your time today, it's an exciting and educating sessions.
Thanks, everyone for a wonderful session!! Until next time! Do have a wonderful day! 😃