What Open Source Development is Teaching Me

I’m learning a lot from the open-source project, LINQ to Twitter, that I started a little over a year ago. Surely not alone in thought, it was amazing why so many people spend their free time writing free software. After all, software development is a good business to be in and make a living by being paid well. Giving away hard work for free might seem crazy, but then again, it might make sense if viewed from other perspectives; such as technical challenge, showing off, and maybe a bit of altruistim.  In the following paragraphs, I’ll share some thoughts on my experience over the last year and we’ll see how far into insanity the journey has led.

Why do people climb mountains? Because they are there. Why would a developer want to build a CMS, and IDE, or even a LINQ Provider? It could be part necessity where you want to use the code for a specific purpose or maybe you just want to tackle a hard problem.  In my case, I was writing LINQ Programming and wanted to show the reader how to create their own LINQ Provider. Looking around, there were already many LINQ providers for all of the major databases and many other data sources, such as Amazon.com, Flikr, and more. One day in early 2008, I was reading Joe Stagner’s excellent blog and saw his Follow Me on Twitter badge. Out of curiosity, I checked it out and noticed that there was a Twitter API. I needed an idea for a LINQ Provider, Twitter had an API, and no one had written a LINQ provider for Twitter yet.  At the same time, CodePlex.com was really cranking up with great projects and offered Visual Studio Team System integration and I had been thinking about doing some open source work for a long time.  Actually, back in 2001, Christoph Wille had told me what a great experience he had with the SharpDevelop project, which is an open-source .NET IDE. It seems like the right set of circumstances were in place and I decided to release LINQ to Twitter as an open-source project on August 26th 2008.  While Microsoft has put important framework pieces in place and provided resources, writing a LINQ provider is no walk in the park. Like the mountain climber, the opportunity to challenge my skills beckons.

Another part of the challenge of an open source project is to show off.  If your work is good, then you might look like a capable developer, but it could easily backfire if your sloppy. I provide consulting and software development services for a living and it’s normal for customers to want to see my work. The problem with showing my work is that most of it is covered under non-disclosure, which is normal.  Therefore, I need something to prove that I can actually code and am not just a theorist who writes books. Open source provides something to show off with for the customer.  However, this is a double-edged sword.  Everyone has their own opinion on what is “good code’. For example, I know that there are idioms in my code, such as using var and m_ prefixes for private fields, that drive other developers batty.  What I decided was that there will always be a percentage of the population that will disagree with me, regardless of convention. That’s okay, because any time you put yourself out into the public eye, it’s only natural that everyone will not agree with you or like your work. Sometimes there are bugs both in my code and via Twitter, but my code is what people are using.  I remember at the beginning of 2009 when the Twitter API changed, requiring the HTTP Expect100Continue header to be set to false.  I hadn’t worked on the project for a while and didn’t notice until people started complaining. This taught me to keep watching for changes and be proactive in resolving problems instead of waiting for it to affect everyone using the software.  Generally, feedback has been very positive and the small amount of negative feedback has opened doors for new learning opportunities. Keeping the code in good shape and continuous improvement are essential and if you’re lucky it might be something that shows off well.

What goes around comes around might sound cliché, but it has normally led to positive experiences for me. There are a lot of people in the community who help others because they feel good doing something for other people. There are people in nearly every segment of society who selflessly pitch in and donate their time to good causes.  There have been a lot of people in my life to enabled me to get ahead, just out of the goodness of their heart. If I can do something to give back and show appreciation for that, then I’m happy to do so. All things in moderation, I have to work to make a living, but will probably always have a strong tendency to give to the community. So, writing open-source software through LINQ to Twitter is one of those avenues I’ve chosen for more community service. Other developers can look at the code and see how parts of C# can be used, such as interfaces, events, and various patterns.  Other developers wanting to write their own LINQ providers have another example to look at.  Of course, we can’t overlook the fact that there have been over 3,000 downloads in the last 12 months and growing of people who can actually use LINQ to Twitter to integrate Twitter into their own applications.  Does this make me feel good; Hell Yes!  As I said, many people do voluntarily provide some type of community service, which is excellent and I believe that people volunteering their time to the community in some way contributes to making this world a better place.

@JoeMayo

Published by Joe Mayo

Author and independent software consultant. Specializing in Microsoft .NET technology. #ai #botframework #chatbots

One thought on “What Open Source Development is Teaching Me

  1. I was going to do some open source work, to get experience, as an unemployed delphi guy learning c#, but found a ‘work for free for now, maybe job later’ opportunity with a software firm. Linq is very interesting. And twitter. But I have found that not having the internet at home works better for me than with it. Though I like that with mobile broadband ‘pay as you go’ I can pop on for a week/month when I feel like it. Still…. bbc radio 3 is a great way to rest the eyes, from looking at a computer screen all day.

Leave a comment