I've been a technical consultant for a long time. I've been actively involved in the Development Community for almost as long.
For those who aren't familiar with the phrase, the "Developer Community" refers to a loose-coupled network of software developers who communicate at user groups, technical conferences, and via various social media channels. Some people are only involved enough to show up and listen to presentations or to take part in the conversations initiated by others. Other people are actively leading these conversations: They are blogging; speaking at conferences and user groups; taking leadership roles in community organizations; and organizing educational events, such as code camps and give camps.
I fall into the latter category. I run a user group, maintain an active blog, speak wherever I'm welcome and often initiate conversations with strangers at conferences. I've been on the planning committee of a bunch of events and I led the planning of the recent GANG10 conference.
All these activities take a lot of time - time that could be spent billing customers or other tasks directly related to my day job.
So why bother? Why spend all this time and effort? Does my consulting career suffer because of my community involvement?
I have a lot of reasons for participating in the Development Community, but I won’t hide the fact that my own enjoyment is one of them. I'm involved in the community because I enjoy it. It's a lot of work, but I get gratification from helping others to learn and from showing off what I've learned. I also have made a number of friends in this community of bright people and I love the social interactions it brings me.
But is enjoyment or helping others enough of a reason? Is altruism sufficient motivation for community involvement? Can a consultant actually boost his career by spending time in the community?
I have found several tangible benefits of community involvement. Here are a rewards I reap from my community involvement.
It helps one’s reputation. If people see me active in the community or hear me speak, they are more likely to remember my name. If I’m doing a good job in public, that provides credibility. I've been on a number of projects where the customer knew about me in advance because of a talk I gave or a blog post I had written or because of my involvement with user groups.
Education. I can only learn so much on my own. Interacting with smart people is a great way to transfer knowledge. Not only can others teach me the nuts and bolts of a technology they've spent time with; but they can show me how they have applied that in a real-world situation. There is simply not enough time to gain real-world knowledge in every technology. Learning from the trials and errors of others is a way around that limit.
Knowing who the experts are. Every day, I encounter new challenges. Sometimes I can conquer these challenges on my own; but sometimes I need help from someone who has been there before. Recently, I needed help on a security issue. I reached out through Twitter and a developer in Columbus, OH volunteered to help me out for a few hours. I was in my car the next morning happy to make the 3-hour drive in exchange for his help. If I have a network of experts in a variety of topics, this exponentially expands the amount of knowledge that I have available for my customer.
Exposure to new technologies. New software is released every day and this can be overwhelming. Having a chance to hear what tools others outside your organization are using is invaluable in managing this flood of information. Interacting with people outside your job exposes you to those working on other projects, products, industries, and technologies.
Finding new work. As you interact with the community, you hear about companies looking for work and about consultants looking for help. Each of these is an opportunity for more billable work. I’m seldom actively selling, but I always have my ears open for opportunities.
Recruiting. It's much easier to recruit consultants if they know you and your organization. Community involvement is a great way to get that exposure. The flip side is that you meet many quality people who are looking for work through networking at user groups and conferences. These events give you a chance to get to know them in an informal setting and form an opinion about their intelligence, skill set and personality. I’ve found this better than a formal interview process. Involvement in the community typically means a passion and dedication, which are qualities you probably seek in your employees.
For me, participation in the community and my consulting career go hand-in-hand. One helps and complements the other. In the foreseeable future, I will continue to devote time and energy toward both.
Note: I am grateful to the following people, who contributed ideas to this article. I know most of them through the developer community.
- Matt Ruma
- Brent Stineman
- Keith Elder
- Elizabeth Naramore
- Susan Anspaugh-Yount
- Seth Petry-Johnson
- Samidip Basu
- Rick Schummer