Get Involved
So you've read about Open Source software and you are interested in helping the projects to succeed. The next question is, "How do I get involved?". The answer will vary based upon the skills you have to offer. No matter what your first step should be to Join the site. From there the steps will vary.
Participating in the OSA community is a great way to familiarize yourself with the community and to make your interest known. Joining one of our mailing lists (coming soon), participating in our Forums, or joining our Projects will help you to build skills and relationships, it will also raise your (and possibly your business's) profile and the profile of the Armenian IT sector.
Create a New Project
So you're a programmer who has decided to create your own software product. Maybe you're company needs a specific service and you don't feel like developing and maintaining it alone, or maybe it is a personal project. Well whatever it is the first thing you should do is get on Google and SourceForge and try to see if a similar project is underway. While OSA is looking to help host and promote projects, duplicating efforts is not the best way to achieve results. Assuming that you have done your "due diligence" and have decided that this is the project you want to oversee, you should e-mail OSA with the information outlined here. OSA will probably respond with some further questions and comments. Assuming that everything is in order they will then help you get started. As primary maintainer you will be responsible for authoring the software, determining coding style, managing developers, recieving bug reports, writing patches, releasing software, etc. While this may seem like a lot of work don't despair. OSA will offer support in all these areas and the available pool of developers to help you will grow as interest in your project grows. For some pointers on running a project check out the document on Open Source Software Project Management and for design read Erik Raymond's the Art of Unix Programming.
When emailing us a project proposal please include the following information in a concise, yet informative manner:
- Your educational background
- Your professional experience (if any)
- Past projects you've worked on
- Purpose of the project
- Competing projects, and why yours is different
- Information on intended implementation (languages used, OS platforms supported, additional libraries to be used)
Join an Existing Project
So you've surfed the website (or the web in general) and found a project you want to help out on. How quickly you can become an active participant depends almost entirely on how large the project is. The normal protocol is to start by installing the software and submitting bug reports. From there you read the code and the docs to learn the design principles and the coding style. After you've done all that you then begin to submit patches (written in the codes general style) or enhancements to the maintainer(s). They may have a submission policy which you should follow. As you submit more patches/enhancements you may begin to develop a relationship with the developer(s) and you can ask them about taking on more sizable tasks. These tasks may include rewrites, code reviews, major enhancements, whatever. Helping to write documentation will be a welcome contribution to any Open Source project. Eventually you may be promoted to a developer or even a maintainer. You also may recieve the right to check code into the central repository. During this time period you should constantly be participating in the community elements, usually conducted on mailing lists, newsgroups, and/or forums. This is a generalized process for working on big projects, little projects may give you an opportunity to rapidly form a relationship with the maintainer(s) and may end in you taking on more responsibility faster.
Non-Technical Assistance
Non-technical people often assume that there is no way for them to be involved, but in fact many of the important contributions come from the real end users. Software rarely meets the needs of those outside it's "target audience". When a bunch of technical people get together to write a program they may focus on their needs as technicians and savvy users, many bugs, UI improvements, and important new features are developed by people who couldn't write a piece of code if their life depended on it. For these people installing, configuring, and using the software will help them to become better computer users, but it will also help them shape a products future. Users should be warned that sometimes getting things installed is often more difficult then installation on Windows, and they will have to read the documentation and submit good questions. Mako's document on Free Software Project Management, will give a non-technical person something of an overview about how Open Source projects are often run. If you run into serious problems you should try asking for in-person help on the OpenSourceArmenia.com forums. Generally OSS people are more then willing to help if asked. Let's say that you participate for a while, recommending new features, finding bugs and the like, and decide that this computer stuff is for you. Take the time to learn a programming language, any language will do, I personally recommend Python as it is a teaching language and will familiarize you with both Object Oriented and Procedural programming styles.
Don't Take Our Word For It
Here are some resources you may want to check out, many are mentioned above:
Get Involved - New project submission
- Brief description of proposed project - Contact info - Language
- - Background info (education, experience, purpose etc.) - OPTIONAL