As an under-grad student @ Cal Poly San Luis Obispo, some 18 years ago, I first experienced the power of the technical community. I was working on a group project to build a little app for the Mac. The class was Software Engineering, CSC440, which covers the entire software lifecycle – requirements, design, implementation and test. My group’s project was to build a search utility for the Mac. Each group member played a different role on the team. I was responsible for writing the code but I was having trouble enumerating all of the hard drives – I couldn’t find the right OS API for this. I know, it seems silly now. I fired up my modem and connected to the university’s newsgroup server and used the comp.mac Usenet newsgroup for help. In the matter of a day (pretty decent latency back then) I had the solution to my problem. Over the course of the next couple of weeks I posted more questions and received answers very quickly.
Community is an important part of a software product. It can serve as tech support and training. Show me a popular product and I’ll show you a strong community standing behind it.
I often get asked the question “if I’m not an expert how can I contribute to the community?” I think a lot of people feel this way. My answer to this is “if you are passionate about the product/technology then you can contribute a lot.” The key, in my book, is to approach it systematically. Here are the steps I recommend to anyone who wants to get involved:
- Pick a community (UseNet newsgroups, MSDN forums, SQL Server Central forums, etc)
- Pick a topic you are passionate about (PowerShell, T-SQL programming, query performance/tuning, SQL Server Agent, etc)
- Pick a few questions that have already been answered and try to find the answer yourself – check your answer
- Pick a few questions that haven’t been answered and answer them – this is probably going to take some time as you research the problem and answer.
- Pick a few more questions and answer them
- Expand to additional communities and answer questions
- Collect the more interesting questions and blog about what’s interesting about them
- After a few months write a short article on the topic incorporating what you’ve learned over the past few months
- Develop a presentation for the article and submit it as a session to a conference
- Repeat 5-9
My participation ebbs and flows a bit. When I’m in the game I set aside time each day, 15 minutes or so, answering questions in the forums. You should do the same. And remember, if you use a reference (such as a book) to answer a question site the reference. One other thing – try to use the same username in all of the forums you post and the blogs you write. This gives you name recognition over time. You can go with something dry, like dtjones (my alias @ MS) or something fun like SQL Batman (one of my favorites).
I ended up getting the search utility working and we got an ‘A’ on the project and in the class. If only I had the insight back then to recognize how important and valuable search would become…