After coming back from a Ruby for Good event, I'm reflecting on how I've experienced firsthand many of the principles necessary for growing and inspiring community in programming.
Ruby for Good is an annual meetup where people donate their time and abilities to "build projects that help our communities." People with any experience level can participate, from those just learning how to program up to those with many years of experience. The fellowship is excellent and the experience worthwhile. As a result of my own involvement, I'd like to share some of the aspects that I believe are key to growing community in the industry.
Consider Your Words and Be Open
Avoid divisive language. It's common amongst developers to have a strong opinion in favor of some technology or practice. If you happen to speak against something someone else is fond or proud of, you've just created division. In order to be able to properly consider another's position, ask questions about where they stand. Questions are the least divisive language and the most welcoming -- at the very least, others will appreciate that you've asked their opinion and shown respect for their understanding. It's also a safe way to get to know others and bond about what you may have in common.
When you do ask questions, be open to opposing views. Considering a viewpoint you may not agree with doesn't necessarily mean yours is wrong -- at minimum, it will help you better understand the other person. Get an idea of how they see things, and not only will you be better able to connect with them, it's possible you'll gain new insights. You'll be growing as a person and making new friends at the same time!
Be Humble and Affirming
Make it a point to be uplifting of others instead of pridefully boasting about yourself. If a point of disagreement comes up, consider your words carefully. Is it more important that you be right and lose a potential friend, or be graceful with your choice of words and keep connections open? Take on the role of an ambassador, and you'll be thinking less of winning arguments and more about winning people.
From our youngest days as a children, we thirst for affirmation. This doesn't go away -- it just may become more subtle as we get older. When you compliment someone on their efforts, it boosts morale and motivates them in future endeavors. Even when brainstorming ideas, give some affirmation toward others' ideas and ask questions about them.
Entrust and Believe in Others
I'm in the field of software development because others believed in me, and someone's recommendation transformed my hobby into a career. There's just nothing quite as affirming as someone believing in your abilities and placing their confidence in you.
Once you know what someone is interested in and what they would like to do, entrust them with that and believe they can achieve it. There is some delicacy required here, of course: If you trust someone, you're not pressuring them about their progress. Trust is showing others that you believe their project is in good hands.
If you're in the position of ascribing a task to another person, consider the language you'll use. When you "tell" someone to do something, it can feel more like a chore and potentially be taxing on morale. If you "ask" them what they would like to do and permit them to have ownership of the task, it's more likely to feel like a challenge to rise to and achieve.
Educate Others About Your Community
If you want to grow community, raising awareness is crucial. Reveal what others can do to help and explain the benefits that are available with what the community offers.
Leading questions invite others to join in something bigger. For example, try asking the question "have you heard of x?" It subtly suggests that someone is missing out on something while also subtly suggesting that many others are in the know. Questions empower people to take the lead in exploring new territory while not encroaching on their will. Allowing people to come to their own conclusions will be far more effective in community growth than a simple presentations of facts.
There's a saying in sales that "facts tell, stories sell." One of the charity projects at Ruby for Good had to do with a species of antelope that is extinct in the wild. The charity wanted an app to help manage data about the antelopes in captivity, including breeding information. The one who presented the idea for the app described it as a dating app for antelope where antelope can swipe right to show interest in other antelope. Doesn't that kick your imagination into gear? How can antelope swipe right with their hooves? Maybe they use their snout, nose, what's it called anyway? Engaging people's minds with more than just facts makes a project (or a cause) far more memorable for them.
The most important thing to remember when connecting with others is to focus on building proper relationships. You can connect with people even if they don't share in your common community goal. Some will join, and some won't. You can't be the one to determine what another person will or won't like. Just be happy with spreading the word knowing that some will respond immediately, some will over time, and some won't ever. That's the best you can hope for.
In all that you do when connecting with others, be sincere. Use compliments and not flattery, care about what they say and believe, and care about them as a person. You may have the goal of sharing and growing your own community, but you should never place the value of that above another person. Be transparent, and don't be afraid to share challenges and difficulties you've experienced. When you're sincere, people will be more likely to trust you and empathize with you.
When you first meet someone, offer sincerity from the beginning by remembering their name. Remembering a person's name demonstrates consideration of their unique identity and indicates that you care more about them as an individual. If you are bad at remembering names, this is probably the most important skill you should discipline yourself in if you want to grow community in programming.
When it comes to growing and inspiring community, considering and caring for others should come before all other goals. Listen to their views on things, ask questions about what they think, share the benefit of your community as well as the stories that bring it to life, and finally allow others to come to their own conclusions.
If you're interested in learning more about the principles I've covered here and would like to have better success in growing your community, I recommend the classic How to Win Friends and Influence People by Dale Carnegie and 25 Ways to Win with People by John C. Maxwell and Les Parrott, P.H.D.