Building our Local Developer Community

Its been roughly a year since I started to help co-organize the Norfolk Ruby Users Group. When I started Ken, the sole organizer at the time, was getting a little burnt out. And to no fault of Ken (he’s a pretty busy dude) it was becoming apparent in our meeting attendance (from May to August of last year we were averaging 5 RSVPs per meeting). Our main goal was to grow our community.

Starting out I wanted to accomplish two things: adding structure and being more consistent.

Structure

Originally our meetings had no structure at all. Someone would volunteer to speak and if no one did it would default to Ken. Some meetings would last 30 minutes while others would go on for a couple of hours. This created an unpredictable experience for attendees and it possibly alienated those who had to be at home by a certain time. In order to alleviate this we simply added a time cap to our talks (45 minutes including time for questions).

The positive side effect of this was that it consistently gave us time to go to a restaurant afterwards for dinner and drinks. This unintended side effect is what strengthened our community more. People started to form relationships and our meet ups started to not only become time to learn something new but also a monthly time to catch up with friends.

Consistency

Since our goal was to grow the community I wanted to keep things simple: have eight RSVPs per month for six consecutive months. The challenge for us as organizers was that we had to ensure we were consistently providing value to our potential attendees. Translation: informative topics and engaging speakers.

I didn’t want one person to take the burden of having to speak every month so I decided to never let the same person speak more than a couple times a year. To do this I did everything I could to encourage and empower our attendees to become speakers. No matter where they were in their journey as a developer I wanted them to feel like they had something to share.

The other thing we did, was bring in as many out of town speakers as possible. If I got any wind of interest in speaking from someone I followed on twitter I reached out to them to see if they would like to come visit and speak. For a lot of our out of town speakers we were able to find times when they were remotely close to the area and if so scheduled our meetings around them so they could come and present. Our thought process here was we didn’t have a lot to offer them with swag or reimbursements so we would go above and beyond to make things work with them. This included driving an hour here and there to pick them up.

Education

For my own interests in teaching I also hosted a Coderetreat and a RailsBridge. After each of these we saw a slight bump in attendance. But the more powerful effect was that it created an infectious attitude about teaching. As a group we decided to add 15 minute lightning talks to our meeting agendas where the topics were geared to beginners. We always tried to record these talks and put them online to maximize our outreach.

I’m happy to report that a year later our average RSVPs for the past 12 months has been roughly around 13 with one month peaking at 20. We’ve revamped our website and our doing a fundraiser (only 8 hours left !) to help cover our costs as well as those of out of town speakers.

The Future

My most immediate goal is to continue to welcome new members. I’d like to get that average up a couple more and it is clear the only way to do that is to continue educating. We’re going to start having weekly hack nights for people to learn more from one another.

Long term wise I envision us becoming more of a polygot group. Even though we’re in a smaller area there have been a ton of other user groups that have come and gone. I want those people to feel like they could come join us regardless of the languages or frameworks they work with because we could learn a ton from them. Hopefully with enough growth I’ll eventually be able to train my replacement. :)

We’re All Impostors

I love the title of this post so much. Its a quote from Avdi on the Ruby Rogues’ Impostor Syndrome episode from several months back. Its so powerful on multiple levels. For one its an acknowledgement from a prominent figure in our community (writer, podcaster, conference speaker and generally awesome guy) that he too suffers from impostor syndrome. Secondly it alludes to the fact that we all suffer from it on some sort of level. The problem is that we just don’t talk about it.

Hello everyone, my name is Ryan and I’m an impostor.

I’ve been out of the game for a couple months. Nothing catastrophic, I just took some time to take care of my family. To help warm up to coding again I’ve been doing some open source contributions and working through exercism.io (its awesome, go sign up right now). Just today I was working through one of the exercises and it struck. The little voice in my head started to say things like “don’t submit this, people are going to think you’re an idiot”. I froze, I walked away from the computer, and immediately went to the living room and started watching television. My avoidance mechanism was kicking in and I felt like an impostor.

What is this all about? For me its this deep fear of not being accepted. I know for a lot of others its a deep fear of looking dumb. Maybe as developers part of the way we’re wired just makes us naturally susceptible to it. I mean we spend our days telling our computers how things should be done and maybe that just leaks out into our interpersonal relationships as well. Maybe this just makes us elitists on some level: “Hey my brain is bigger than yours”.

I’m not really sure what the solution is or even if there is one. What I use to cope with it will definitely not work for someone else. But I do know it made me feel a whole lot better when I heard other people I respected acknowledging it.

A wise man once told me that we are all on our own journeys. We’re all at different at stops on the journey but what connects us all is that we share similar experiences, passions, and even pains. Lets just try and be a little vulnerable and open up about our personal pains.

How to Win at Conferences

This is a spiritual successor to my friend Corey Haines’s talk at Steel City Ruby last year. If you haven’t check it out first.

How does one win at a conference you say? For some the purpose of going to conferences is to learn but for most its to expand their network of like minded individuals.

Last week’s Madison Ruby was the first conference I focused solely on meeting as many people as possible as well as catching up with friends who’ve I’ve met at other conferences. I was coming off a two month stint of focusing strictly on watching my kids so it seemed like the perfect opportunity to get back into the community.

I had a blast and left with a ton of new community friends and here’s how I did it…

Focus on Real Relationships

Introduce yourself to as many people as possible. It doesn’t have to be anything fancy just a simple “Hi, I’m <name>. What is it that you do?” Bam! That’s it.

To take it to the next level you listen to the other person talking, see what they’re excited about, and see if you have anything to contribute to the conversation about the things they’re excited about. If you follow this format you’ll meet a ton of folks.

In all the conferences/meetups I’ve attended I think there have only been a handful of people that weren’t receptive to this. And for these cases I just attribute it to bad timing: maybe they were hungover, maybe they were trying to get somewhere or maybe they just flat out didn’t like me. I have no idea. All you can do is improve everyday and be nice to people. You can’t control who is receptive to you and who isn’t. But just as long as you’re nice and are receptive to what someone’s passionate about you’ll have a new pal 99.999% of the time.

Heroes Are People

If you see someone that you have looked up to go and introduce yourself and be sure to follow the same format I described above. Just don’t expect them to solve your career crisis (I’ll talk about this another day) or fix all the problems you have with your code. Chances are they are just regular folk that never asked for the burden of having ‘fans’.

Also don’t expect a meeting in person to result in them following you on twitter. Remember the focus here is to build REAL RELATIONSHIPS and not new twitter followers. There are a ton of people I admire/respect who I can say is a conference buddy but not one of my twitter followers.

Be in All the Places

Make sure you’re always moving. Don’t always sit with the same crowd of people or have lunch with the same group. Madison Ruby did an excellent job of facilitating this by having people go out for lunch rather than having everyone sit in the same room. I moved around so much to meet folks that I even introduced myself to a bunch of college kids crashing one of the parties at Bendyworks.

The Swag Trick

Have cool stickers. I had no idea that these things were so beneficial. I tweeted a pic of the ones I had to share and mentioned if anyone wanted one they should come find me (this doesn’t work if your twitter avatar doesn’t resemble you). It even evolved to a cool game of sticker exchanges.

I’d imagine this works with other kinds of swag (ie t-shirts) but as an extra tip I didn’t have much success with Sriracha packets.

Roomies

YMMV but room with a random stranger. It worked out really well for me. Not only did I get a discount on my stay but I met an awesome new friend. We got to have breakfast together, have nightcaps, and walk to the conf together.

If you’re the room host make sure to notify your roomie when you’ll be in town. My buddy Adam was extra generous by texting me when he got into town and instructing the concierge to give me a key when I got there. If possible you’d want to meet before the morning and avoid the possibility of waking up to a Gnome. True story.

Volunteer

You heard about this a couple of days ago. This shows that you’re willing to put your free time and energy into the community and people receptive to that.

So that’s my pro guide to attending conferences and meeting new people. Hope it helps!

TAing at a Canonical RailsBridge Workshop

Earlier this year I hosted a RailsBridge workshop. While it went well I definitely felt like it could have gone better. I decided that I would not  host another one until attending one given by a more experienced leader. This past weekend I got to help out with one hosted by the very person who sparked my idea of hosting a RailsBridge in the first place, Desi McAdam. In terms of RailsBridge workshops they don’t get more experienced than her as she’s known to travel the world hosting workshops.

The environment was awesome. We had 10+ volunteers and so many attendees for the installfest we filled six offices at Bendyworks. There were so many attendees we killed their network (note to self put downloads on USBs). Some attendees may think of the installfest as a painful experience but I like to think of it as us generating a topic for the attendees to use to meet one another. Or at least as something for them to rally together against and revolt. To each their own.

At the end of the evening Desi got all the teachers together and used their feedback to organize the attendees in different experience groups. She also considered pairs of people that would enhance each others educational experience.

The second day we held the workshop at the Madison College. We had a huge room with about eight tables to subdivide the groups. Each table had its own teacher while Desi took on the role of floating and leading the class with introductions, shutting down the class etc.

I was charged with helping out the beginners. One good tip Desi gave me was not to take anything for granted. To even consider explaining exactly what’s happening when one types a url in to their browser and presses enter. This blew my mind as I consider myself to be pretty good a bridging the empathy gap but I guess the lesson here is we can always be more empathetic.

Other tips from the workshop

  • Its essential to have TAs of various genders, races, and backgrounds. Their stories can serve as inspiration for those considering to join our community.
  • With beginners each person works at their own pace so it was better to have two stopping points for the day rather than ensuring everyone is at the same spot all the time.
  • You can change your tone and energy depending on the group you’re teach. An expert level technique in my opinion

UPDATE: It was kindly pointed out to me that the workshop was held at Madison College. That’s what I get for showing up a couple minutes late.

A Dude’s Review on Running a RailsBridge Workshop

Several months ago I put together a workshop focused on teaching women to code. I wanted to improve our male/female ratio for our local Ruby User Group, 757rb. Fortunately for me I had the resource of RailsBridge. RailsBridge is “an organization that works to increase diversity in tech by putting on a variety of awesome free events.”  One of these events is a Ruby/Rails Workshop where we spend an evening and a day working through Ruby and Rails concepts.

The RailsBridge community is extremely helpful. They have guides that include the course curriculum, how to secure sponsors, and other things to consider when deciding to host an event. I was even approached by several members (thanks Mary Jenn and Desi) to help ensure that I was comfortable running the event.

Overall the event went well. We had six female attendees and all of them gave a score 6 or higher (on a 10 point scale) suggesting they would recommend the workshop to a friend (the average was 8.6). We haven’t seen a bump in our female attendance for 757rb but past attendees of the RailsBridge workshop have asked me when we’re going to throw the next one because they’ve been telling their friends about the workshop.

I want to thank Alicia LauermanMichael Buckbee, and John Dowd for helping out. Without them the event would not have been as successful as it was.

For me, I had a ton of fun. Seeing people achieve things they didn’t think they could is one of my ultimate highs. I’ve found that through teaching I’ve been able to vastly improved my ability as a developer (more on this in a future post).

If you’ve been trying to figure out how you can give back to our awesome community you don’t just have to write code, you can teach. There are a ton of RailsBridge workshops to help out with.

Further Reading:

Remembering a Mentor

Yesterday I had to say my final goodbye to a mentor. He served as a professor during my time at VCU and I feel deeply saddened that I didn’t get to have one last insightful conversation with him.

To honor him I wanted to share my favorite lesson from him: listening deeply. Dr. Primeaux was regarded as a great friend and a superior conversationalist. We would talk for hours regardless of the topic: genetic algorithms, Vols football, and student politics. When we challenged him as students if he didn’t have the answer right away, he would pause, cross his arms, and close his eyes as if meditating to find the answer. You could tell he was considering all the aspects of the question and formulating a strong response. After he had taken enough time to find a suitable answer he would open his eyes and deliver it to us. His responses were always deeply informative.

As developers this ‘soft’ skill of listening and responding appropriately is often overlooked. We solve problems. This is what we are paid to do and we want to get to a solution right away. But something we often forget is to consider all the aspects of the question or problem.

Do you sometimes misunderstand requirements from a client/manager or bump heads with a colleague concerning their solution? Try taking your time and listening deeply before providing your response. The recipient will more often than not be appreciative of your insightfulness, I know I was.

Facilitating a Coderetreat

Bootstrap Hero, xTuple and the 757 Creative Space

My thanks to our food sponsors xTuple and BootStrap Hero as well as to the 757 Creative Space for letting us host the event in their space. Each of these organizations are filled with awesome people and if you’re interested in getting involved in the Hampton Roads area you should check them out.

What is Coderetreat?

Coderetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of ‘getting things done’, the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time. – http://coderetreat.org/

Facilitating a Coderetreat

Coderetreat is so easy a caveman can do it. No seriously. This is especially true for the Global Day of Coderetreat. Corey and Jim Hurne (a coderetreat superstar) have set it up so anyone (including people who have never come to a coderetreat) can facilitate and host one. You get a checklist of things you need to have done by and what day. You get people willing to teach you and support you when you have questions and concerns. And even a step by step list of things you need to do the day of coderetreat.

I took advantage of all these things and the day went off without any major issues or problems.

What’s in it for me?

It was also a great opportunity to measure my skills against others. I found areas that I could improve on so I could one day explain or teach them better. The entire experience was a bit of a confidence builder because I was uncertain I could ever lead one of these events and I was surprised to find how knowledgeable I was in some of the topics we covered throughout the day.

The coolest thing though was seeing the growth and light clicking in some of the developer’s eyes as the day passed. We covered topics such as throwing away code, pairing, design and testing. I found early on the group wasn’t familiar with TDD so I made it a goal for the day to challenge them in this aspect. There was some resistance at first but during the closing circle a lot of people mentioned how they wanted to add TDD to their workflow. Mission accomplished!

Everyone expressed how they loved the experience and we all left the event with a number of new friends and practices to try out at work.

So what are you waiting for? No matter where you are in journey as a developer there is a ton you can pick up from attending or facilitating a coderetreat. Find one today!