How do other open source projects spend donations? [closed] - open-source

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 8 years ago.
Improve this question
I'm a developer on the Synergy+ project, and today we received our first donation! Now, I did write at one point that we would spend the money on advertising, in order to find new developers - but I'm not really sure how to go about this, or if it's the best way to spend the donations. We would spend it on hosting, only we use only canned hosting for our site which is free. Maybe in future we'll have some hosted services, but I don't know if it'll ever be necessary.
Does anyone have any experience with handling donation money from end-users? I'd like know what other projects have done about this (e.g. Ubuntu). Should we just save it for a rainy day? Also, I'm accepting the PayPal donations to my personal account, which I'm a little wary about, since the project doesn't belong to me - it has a collective ownership really. Is it normal to have a single person who is the treasurer?
Update 1:
Thanks for your comments! In response, I have changed our statement about how donations will be spent.
"We are currently establishing a funds reserve, so that we can hire professional open-source developers to fix the most critical bugs, and move the project forward. We promise to spend your donations very carefully, and discuss how the funds should be spent between all of our key project members. Not only will your donation help our project to move forward, it will also boost moral and community spirit - because it shows that what we're doing really matters! Thank you."

Pizza and Beer?
In all honesty though, I think the open source community respects honesty above all else. If you said you were going to spend the money on something, you should probably follow through.

I wouldn't spend the money on advertising to attract new developers: I think that's way too small a target market for the advertising to be at all effective.
I'd either save the money for future contingencies, or spend the money on advertising meant to attract general users of the project. Or I'd pay myself for the time I put in (after checking with the donor to make sure that wouldn't piss them off). Last resort would be a huge party with strippers and coke.

Speaking as an occasional donor, I really don't care what my money gets spent on. My one and only goal when I donate is to encourage the developers to continue working on the project. If that means they all used it for beer money that's fine by me. :)
So my advice would be, spend it on whatever you think will encourage you and the rest of the community to continue developing and let everyone know the how&why.
For a first contribution a few beers seems like a great idea to me. "In celebration of our first contribution and a lot of hard work by all..." etc.

Many large open source projects have setup a foundation that solves most of the problems you ask here.
If you really received such a large donation and need developers, I would actually put that money into hiring a developer. Instead of spending money on advertising, spend money on the product and the current developers so they don't get bored of maintaining it.
An open source project should be successful by merit, not by advertising money.

Many larger open source projects that request donations have incorporated as a non-profit corporation, and the donation goes to the non-profit. A great example is the Apache project.
Often, a single developer-led project will accept donations. Technically, in this case, the developer (in most countries) should treat the "donation" as income. This gives complete freedom to do nearly anything with the money - but usually it should be funneled back into the project in some form.
Normally, I'd recommend using the money to pay developers, pay for infrastructure (like hosting), or potentially even use it for something like stipends for student contributors. The latter is my personal favorite - I enjoy giving money to groups that help fund new development and encourage students to contribute.
However, whatever you choose to do with the money, I believe it is very important to be public about that information. If there is no mention of how the money is spent, I'd expect it to stop coming over time... People are more willing to donate when they know how their contributions will be used.

Related

What are the benefits of contributing to open source projects? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
A year ago I was a big fan of .NET. I was developing custom applications on demand and it was not hard to understand how you can live by doing this kind of job - the customer asks you to make a custom application, you arrange the price, do the job and earn money.
Now I hear more and more people talking about open source projects and collective intelligence which seems a great concept to contribute something to the innovation. But of course as a full-time employee it is hard to find time to work for free and I don't understand what are other benefits of contributing to open source projects beside personal satisfaction.
I would be very thankful if you could explain how the contribution to the open source project could be paid off.
Thanks.
There are a few benefits to working on open source projects. I'll be brief here and allow you to work out the detail as you go.
Experience. You'll get to use some stuff you probably won't get to use in your day job.
Fun. It will be a project you've chosen, so you can enjoy it a bit more.
Freedom. There will probably be less rules about what you can use and how funky you can make things (within reason)
You Need It! You'll probably choose a product that you have some need for but you want to contribute to the features.
Just because something is open source, doesn't mean it isn't "commercially viable". For example, you might charge for the service of installing, configuring and guiding a client who uses the application and the fact that the software is open source is a big selling point. You don't make money from license fees, you make money from consultancy.
As far as employability is concern? Street cred.
Peer-interviewers often take (varying degrees of) stock in a fellow programmer's contribution to open source projects, especially if you're at a junior level. It shows self-motivation, proactive-ness, ability to work in distributed teams, proof that you've actually used some sort of version control, etc.
One other reason: Suppose you use version 1.4 of an open source product and want a feature added to it. You add it on your own copy and do not contribute back to the open source version. When version 1.5 is released with a lot of other goodies that you would love to have, you will again need to patch up 1.5 with your required feature. If you had contributed back and it went into the open source version, you will not have this maintenance problem.
For me to work as in open source projects has the following advantages:
Make you learn more
Shows to the world your development skills
Make you a reference in a specific subject or for a group of people
Give a good impression about you that you work with development because you love it. Love enough to spend your free time on a free project
It can become a product in the future or with a "key module" or plugins that a user must pay for it
One more time: make you learn more, specially if you are doing a project without relation with your "daily job"
For personal use, many people want to contribute to the open source because they use so much themselves. And the only way they can use open source is if people contribute to it. Also if people want a feature added, they can help others by giving it away.
For many companies, creating open source software means they can benefit largely from additions made by other people, while still getting the software they need.
Also there is the great amount of personal experience, and a good item on your CV that helps.
However, in the end, most open source projects are run/created by people that do it make the software they work on better, to help others.
Contributing to open source shows that you like software development, not just the salary - that can make you more interesting to a prospective employer.
Here's my reasons:
Why I spend so much time working on an Opensource project
And my views about the differences between paid jobs and working on open source projects might also be interesting here.
You might also ask, what are the benefits of giving or volunteering for a charity?
In terms of getting paid, some companies employ people to work on open source projects, full time. But the vast majority of minor contributions will see no direct monetary payback, apart from knowing that the software has been improved for everyone using it. Of course, things such as reputation can be built, you learn more skills and potential employers can see your work, but these in themselves will not necessary equal a monetary payback.
If you write you own software and open-source is you can still sell it, and sell support services for it (e.g. helplines, support, paper manuals, custom programming) This is a common business model for open source companies.
Help to improve code
You can get all updates to you software. You can find out pitfalls and defects in your code if someone else edited some functionality in your code.
Added functionality
Any one can add functionality to your software. By this you will be aware of what all things you missed in the design and can contribute to your future software development.
You might like to try reading The Cathedral and the Bazaar, by Eric S Raymond (a big open source contributor). It's a very good overview of the history of the open source movement, how it works and where it might be going, written in an informal and approachable style. I'm pretty familiar with the ins and outs of open source (my husband's last two jobs have been in open source based companies) but I still learnt a lot from it.
you will be listed as contributors in the project website (if any) and this is great because you can tell your clients that you are the contributor of that open source product. It would add value to you.
it would be good for your portofolio/resume if you are involved in open source project in the past / present.
for fun. you help eagerly to make a better software for yourself and others. it also fun to see your open source project grows and being used by many companies.
experience that you would have for being work together as team. also you can learn from others how to code.

Inducting Fresh Computer Graduates as Programmers [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
What are the key practical concepts that a fresh graduate should be educated with when he starts with his first programming job and how soon should you expect him/her to be productive and actually deliver the code you expect ?
source control and testing
Get them started with checking out code and writing unit tests first, learn what its about, and then go from there.
Yeah, that's a subjective question. We have done several summer and during-school internships as well as hired recent grads in CS.
If we start with a student who knows:
An OOP-ish language (Java, C#, VB.NET, C++)
How to fire up a compiler/debugger
How to work with our Source Code Control
Then given a defined problem domain with prerequisites (for example, for a recent intern, the problem domain was "adding autogenerated annotation metadata to TIFF files using self-describing barcodes"), the student needed to therefore know
How to generate and parse XMP
How to read/write metadata into TIFFs (we have tools for that)
How to read from a barcode scanner
Write unit tests
We saw progress in a week and saw demo code in a month. This was all within expectation. I mostly let him work on his own, but stepped in and course corrected some of his style and coding practice.
The important part of this is how goals were set and met. I made the important parts crystal clear (ie, requirements) and left the less important parts up to his design. After all, who wants to do paint by number all the time? For setting goals, I try in general to follow the SMART guidelines. A good goal is
Specific
Measurable
Avhievable
Realistic
Timely
It's very important that the project has a good feedback loop for communication. We were somewhat wanting in this regard.
Don't assume anything.
I made it through college without source control. Testing was stepping through the code with the debugger. No paperwork was needed for any assignment.
These 3 things are vital for production-grade code.
Just my thoughts and experiences:
Mentor. Assign a senior or lead programmer to mentor them. Not everyone is geared for this sort of assignment and a good mentor makes a difference. We have a mentor assigned to every new programmer - regardless of how long they have been coding - just to get the new employee familiar with our systems.
Start small. Depending on how your organization / team / etc is configured have the new grad start on some small maintenance projects, with a mentor reviewing their code and guiding them.
Get them training in the development environment your shop works in - expect that they will know a little about a few languages but that most of their development experience will be with school projects - not exactly solid production code. They will need a solid base to work from in the environment you use.
Code review and best practices - give them guidelines and make sure that they stick to them - if you are not using best practices internally, then start. Makes a huge difference when a large development group is involved. Review code frequently - this does not have to be a large group of developers in a meeting - one on one reviews, informal inspections, etc work wonders.
Develop an environment of cooperation - allow developers to mingle and talk and brainstorm - give them the opportunity to discuss ideas and thoughts that might not be related to the code at hand - they will rely on each other more then plants in the cube farm and production will higher quality. Allow them to read blogs and sites related to their craft - sights such as this one, coding horror, hacker news, etc. Support them going to local user groups and developer conferences.
Productive? That depends on the individual - some new graduates will never be productive coders but might be productive analysts or managers - some will be code machines out of the gate but will quickly churn out 1000 lines of maintenance nightmare code where 20 would suffice. I would say a fresh programmer out of school should be productive in 6 to 8 months - this is to say up to speed with you average programmers on staff, able to take a new project for your product, design and implement it, and able to handle any maintenance task required. It takes time to get the experience required to be productive - experience that can only come from actually developing in a production environment.
First: If you are a fresh graduate or a skilled developer - you always can gain new experience. So developers should be ready to always learn.
For the question: If your dev-team Practices Test-Driven-Development the first thing should be to show him how to write tests and how it can be useful.
Naturally the freshman should be able to use version-control, so if he relly has no skills at version-control a short introduction for this should be made.
Here are a few things I've found to be important for recent grads as well as new hires that have experience:
be proactive about including them in the corporate culture, don't assume they will fit in on their own
include them in meetings even if they are only there to listen
encourage them to interact in meetings when appropriate
be careful when dismissing their ideas as bad I've seen this discourage people from mentioning good ideas later down the road
Use of source control would be first on my list as very few schools need or rely on this. Really sit down and explain how to use the product you use and why it is necessary. Then for at least the first month, make sure to frequently check to make sure they are using it.
Next would be basic database skills. I've yet to see anyone come out of school really understanding how to query a database.
Third would be an introduction to your database and code base, explaining how things are done and organized and why.
Fourth, testing procedures and policies including how to do a code review, unit testing, QA etc. Tesing is not something that most students need to worry about either.
Fifth, assign a mentor if at all possible, someone the new person can go to for advice, to ask questions about company basics. You probably need someone to give them the basics of professional behavior as well. What is acceptable in terms of dress, attendance, etc.

How are open source projects managed [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I am working in a small team on some projects in my spare time. We are having the problem that we seem to go in circles and are not able to get our products developed - however this is not a problem during my day job. The lack of face-to-face communication seems to have a real impact on productivity.
Any examples of software or methodologies in use by the open source development community would be appreciated.
If you read the history of most open source projects, they start with one person doing a lot of the initial work. If there's a team, it's small, and one person actually leads the team.
To pick one example. In the Python community, they refer to Guido van Rossum as the Benevolent Dictator for Life (BDFL). His word is (more-or-less) final. In many cases there are folks don't agree with him -- but for the sake of the Python community -- they seem to acquiesce to his judgment.
I think every open source project has a (singular) lead programmer who assures that decisions get made, and made in a consistent way.
Back in the olden days, Fred Brooks (The Mythical Man Month) described "chief programmer teams". Same concept. Someone is in charge of the technical content. Emphasis on the one. Nowadays we call the the "architect" or some such term.
No real methodology here, but I think 2 things are important:
Have well defined goals and
responsibilities.
Let each developer
have the last say in how their
allocated part should be done.
In open source projects the only real and strongest motivation is the fun to be had coding the product. Relating to #2 above, if people are told what to do, and they don't agree with it, the motivation starts lacking. Of course there will always be a bit of give-and-take like in any other type of relationship.
Also about the face time, Skype is great for having face to face meetings, which I recommend at least once a week or month (depending on the size and momentum of the project)
This is a difficult question to answer because "open source projects" is a very broad selection of projects. I think the defining characteristic is the project has a single unifying goal (perhaps, a set of related goals).
Are you on any open source mailing lists? I am subscribed to my favorite distro's mailing list and the developers e-mail each other many times a day. Also, there are other avenues of communication such as IRC / Instant Messenger.
I am not a RoR developer, but I would suggest skimming through Getting Real for some inspiration.
My guess is that your private projects are all run and coded by developers. Developers are known to... keep on developing. The big difference, in my experience is that a company has experienced managers that can define when things are DONE. I'd recommend putting someone on the task of defining goals and decide when things are done.
I've been on some projects where we had a lot more talkers than developers. My inclination is to ignore the talkers and listen to the coders. Even then there's usually one person who is in charge of accepting patches. There may be political issues they have to tread lightly around, but for all intents and purposes they have final say.
Linus has had some fairly famous issues with the same problem. Take note of this thread from 2006: Talk is cheap. Show me the code.
One more thing. Since you say in the comments that you do have code, just a lot of rewrites, I'd highly suggest you read Eric Raymond's The Cathedral and the Bazzaar. Eric's a bit of a nutter actually, but the essay is priceless for anyone wanting to run a Free Software project.
I'd have a think about your and your team mate's motivation and goals in this project. Are they to:
a) Create an awesome product
or
b) play around with software, and learn some new things
Both answers are equally valid, and i'm guessing it'd be a mix with a leaning towards one or the other.
If it's more of (a) then look at suggestions on methodology etc. Maybe even consider forming a company around your awesome idea. Because making such a thing takes work.. and well you probably get enough of that at work.
If it's mostly (b) then you're going to have a harder time making an awesome product, but an easier time in that you can forgive yourself for not getting there right away and suffering multiple re-writes. And you will all be learning new skills each time you look at it and work together which are very applicable to your long term careers.
Firstly i suggest you all be clear with each other on why you are there. Then look at paring back on what you are planning on doing, and release early and release often. If your project is made up of three components and one is complete, then release that as a separate component and start building a community of users. This will pay off as these users will possibly help you with your code, plus form a solid core of users for the full product and let you assess how you are going early rather than later.
Good luck.

Open source political campaign management software? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Does anyone know of any active open source projects working on political campaign management software?
I looked on sourceforge but didn't see anything relevant from the queries "political", "politics", "donations", "campaign", or in the categories "accounting", "politics" or "voting".
I'm involved with a political campaign that is currently paying out the nose for some horribly designed SaaS (whose Name i Guess i should Protect, ahem) to basically just keep track of donations people have made now, donations people have made in the past, donations people have pledged to make, contact information, the way they will likely vote, etc.
It's a bit much to manage in spreadsheets, but doesn't seem like it's something complex enough that political campaigns should have to pay for (especially low-budget local ones).
I'd love to help out if such a project exists, or start/revive one if it doesn't.
Any hints, places to look, etc are much appreciated.
Drupal CMS has modules which can probably help. Although I don't have any experience in using these modules you can look at CiviCRM.
A search at drupalmodules.com also revealed some other modules.
I don't know of any exactly. However, you could probably use some off the shelf open source solution that is not targeted specifically as campaigns. Perhaps you could use many kinds of project management or even bug tracking type of applications to help. As far as tracking donations, you should be able to find some open source project to fill this need, even if it is not that specific. You could even write this without too much trouble if needed.
Edit, here is one CRM project that purports to work with campaign management:
http://sourcetapcrm.sourceforge.net/
CiviCRM is a Drupal, Joomla or standalone software package to help nonprofits.
It can:
run mailing lists
subscribe members
process donations
manage event registration and payment
It shoudl be suitable for a political campaign
I work with CiviCRM a lot
I'm the creator of Voter Universe, a new open source web application for helping political campaigns and political organizations analyze and interact with their voter data. The application is still in active development, but we expect to have our first production release in October 2009 as well as the launch of an affordably priced hosted service.
The first release will not include donor management, but that functionality is a high priority item after the first release.
I created a screencast a few weeks ago in advance of starting to spread the word about the application at Netroots Nation. You can view the screencast at our website, http://www.voteruniverse.com
Jason Lantz
'To basically just keep track of donations people have made now, donations people have made in the past, donations people have pledged to make, contact information, the way they will likely vote, etc.': in the absense of a proper tailor made program I would manipulate QuickBooks - by creating an invoice for pledges on the date they're made while issuing receipts on the dates donations are collected; as well as creating a bank account to deposit all monies and writing checks to track all expences. The contact info part is easy. To track the way people will likely vote I will create party-items which will be used on the sales or service line when creating the invoice e.g. partyA-item, partyB-item, partyC-item etc and will pull up the specific sales/service graph to moniter vote pattern. I trust that you find my advice useful.

What is your contribution to open source projects? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I was always wondering about this seemingly utopic world of open source.
Assuming the vast majority of users here are professional software engineers which need some sort of income source, I assume most of us hold stable, money-making jobs.
So who are the key players in the open source community? Who are the people which devote their precious time to these projects? What is their benefit? Are the majority just people who see a bug, fix it, submit, and forget about the project? Or are they people constantly involved in the process of building the product?
How do you find yourself contributing to open source projects?
I earn my living doing professional projects that are based on either open source frameworks or commercial products, and quite often a combination of both.
A lot of the commercial products I have used over the years end up being really very expensive in the end. Let's say you buy a Single-Sign-On solution for web apps. By the time you're finished with what you have to do, I and a lot of others have experienced that you end up re-implementing 2/3ds of it, and sometimes there's almost nothing left of the commercial product you thought you were going to use.
So the problem with buying stuff is that it never fits, and quite often the purchase decision is based upon function-matrices that compare features whilst not actually considering the suitability of those features in your own environment.
What I'm trying to get at is that mature organizations understand that there's no such thing as a free lunch, even after you paid for the product license. The fact that you spent $1M for a content management system does not mean you're not going to spend another $2M doing 50% planned and 50% unplanned activities related to that.
So we can, will and do write patches for all OSS projects we're involved with. Sometimes we rework subsystems, and most of the time we submit it back. Sometimes we decide we only want 50% of the framework and we just fork of the rest for ourself. But we still want to stay with the framework for that 50% which we use. Try doing that with a commercial product ;) In general we try to stay on the "developers " mailing list, but we seldom bother to get commit rights for the projects.
My greatest contribution to open source projects has not been by contributing code to them, but by just actually using them.
Philosophically speaking, that is probably just as nearly as important to the health and utility of the project, actual users who submit feedback and leave suggestions and comments in daily conversation or in sites like this.
Are the majority just people who see a bug, fix it, submit, and
forget about the project? Or are they people constantly involved
in the process of building the product?
I definitely fall in the first category (focusing on a long term project is just not my thing) but there are plenty of people that are part of the second one. Without them we wouldn't have much of a viable Free Software ecosystem. A significant portion of these people are paid to write and maintain Open Source software but there are still a lot of hobbyists who do it just for fun. In fact, most people I know who are paid to work on Open Source software would still contribute if they had to do it for free (I certainly would). Contributions would just be less frequent.
How do you find yourself contributing to open source projects?
When I was a student I played with internals of various free/open source softwares (including gdb, OpenSSH, arping, some IRC clients, Snort, various Perl modules, some Debian specific packages things,...) and fixed some bugs as well as implementing a few features while doing so. Nothing big in term of SLOC and some of these contributions were rejected but it was still fun and interesting.
I co-founded a Free Software Users Group which has been running for over 4 years now. At meetings I sometimes give technical presentations about free softwares. We also try to regularly attend external events were LUG/FSUG are invited.
I also often buy T-shirts, sweaters and fluffs from projects I like as a mean to give them some financial contribution.
I am now doing technical support at an Open Source company and as such I report bugs and write fixes routinely. And they actually pay me for that. Why choose between contributing to Open Source and having a real job when you can do both?
It's a lot about pride in something you do. Also gaining the confidence when code you do is accepted by peers.
After that initial phase, is a lot about being able to manage code builds and releases, suggesting new ideas and practicing your skills.
Some people in open source projects do them because they feel the freedom they do not get from work is liberating.
I personally try to contribute as much as i can, from documentation to bug fixes. That isn't to say i do much, but i like it when i can.
I have started my project because at that time I couldn't find any application that was what I had in mind. I have made it open source beacuse Sourceforge had an excellent infrastructure I was not willing to cope personally with.
I barely make enough with Google adsense to pay for the domain name and hosting, apart from that it was a lot of fun over the years. And a refreshing experience being in complete control of what you do, which is certainly not the case in my day job.
I earn all my living doing professional projects based on open source web framework (Aida/Web) which author and active contributor I am. The same goes more and more for others in our community as well. They are earning money and at the same time contributing back to the tool which actually enables them earning that money. The loop is therefore closed, to the benefit of all. I'm quite sure that such a model is the best for the open source and many other open source guys are following it as well.
All my OS projects started as real business needs that needed to be satisfied. Once the job is done, I can release the applet or whatever to the public via Google Code. I haven't had anyone submit a bug report so far, and I doubt I ever will. Most of the things I post are fairly small but, hopefully, useful. Personally I don't beleive people who use OS software submit bug reports at all: they just go and donwnload something that actually works.
I do both.
I am not a "major player", but if I can help a little in improving a project that interest me, I do what I can, from adding a bit to the documentation, pointing out some possible improvements, fixing a bug, providing a patch.
I helped a bit to improve a PHP framework, for example. Sometime I provide or improve French translations.
There is at least a project in which I was (still am, although devoting much less time now) quite involved, Scintilla and SciTE (I am near the top of the chronological list of contributors in the SciTE credits). Of course, my main interest is to have an editor fitting my needs and tastes. That's the spirit of open source, to get contributions of people with a strong interest in the project.
I helped, but in the same time, I learned a lot, so it is a good deal for everybody.
I've been working exclusively on Open Source now for three years, in addition before that I did FOSS as "hobby projects". We're using our own Ra-Ajax to get consultancy gigs. This first of all makes it possible for us to create OSS which is very rewarding and fun! Second of all it create better tools for ourselves in addition to that we since we know the tools in and out often can charge better prices then if we were working with some "random thing" which "someone else made"...
How do you find yourself contributing to open source projects?
I think that, like programming itself, it has a lot to do with your passion and interests. If you are working on a project, or are interested in a topic, and find yourself needing a tool or a module that does X, go search it out. Chances are that there is at least one other person who has released an open source project that does it already. Depending on what you find you can:
Use a product and help the owner make it better via bug reports/fixes and feedback.
Improve on the product and submit your changes back to the owner.
Make your own product and release it as open source for others to do the first two with.
Chances are good that when you are first starting out that you won't become and overnight open source rockstar. Like the internet itself there is so much out there that you probably won't be noticed right away. However, just going through the process will teach you enough to make it worth while.
That is where I am. I have not made a name for myself in the open source community. I have learned the names of a handful of key players through reading blogs and just using the code, but that is really missing the point of open source. I have found some really great tools and have improved my knowledge and coding significantly, which is what is important to me.
In my experience, many people I have talked to see open source in one or more of the following ways:
A hobby for super hackers.
Something that people do for charity.
A source of free code examples.
A human right.
A place to find temporary solutions.
I see it as a great opportunity to learn, add tools to your toolbox, find out more about your industry and others in it and have fun all at the same time.
Well, I've started off an OS project on my blog to address some of the perceived shortcomings/process speedups in the Visual Studio XAML process. It's not 100% open source at the moment because I'm the only active developer on the project, but I have had people contribute source to the project which has been a fantastic incentive for me to continue developing it.
On a slightly different note, I've written applications and articles that have been posted on Code Project, so people are free to download them and use them as they see fit. My theory - if I've put it into the public domain, then it's free for you to use as you see fit; I don't want any money for it - that's not why I wrote the article.
Contributing to open source projects is a great way to hone skills that may not be in your main development set, so this is a really good way to improve your CV.
Reported bugs. Written articles. Answered questions on forums/IRC. Even started up my own OSS Project (Which I've handed over to someone else since)
I would really like to contribute to OS projects, however with three kids and a full-time job I never find myself with enough time to do anything but consume OS. Hopefully that will change sometime soon, but I do believe there are at least more than a handful of developers that are in the same boat with me.
Honest answer: Not much.
I've written a lot on my own, but I don't really consider that contribution. The most I've given to other projects is a few bug reports.
Using it.
Promoting it.
Creating a tiny open source project (Natural CLI).
I pretty much active in an open source project named :
JStock - Free Stock Market Software
I can improve my $ncome (by using JStock to perform investment) and write code at the same time :)