I know that the default advice for open source projects, and getting started, is to start fixing bugs. But I have a feeling that its the path that one would want to take if they wanted to be a tester/fixer of bugs in the project. How does one become an active contributor of an opensource project? [I.e. on the level of architecture]
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
This is probably going to sound like a bit of a tautology, but if you want to become a major contributor of new features, use the product for a while, find a new feature that would improve it, write up the code to implement the feature, and contribute it.
The reason people are advised to start out with bugfixes is that that gets them to dig around in the codebase and familiarize themselves with the way things work. That'll also get you to participate in the project's discussion community, whatever that may be, (usually a mailing list or forum,) so you'll get a feel for the direction of the project. You'd feel a bit foolish if you get 80% of the way done with your new feature only to find that someone else has been working on it all along and they just finished it!
There are no shortcuts. Open source projects are extremely merit based. When you have shown you are capable of handling smaller tasks, you will eventually be trusted with larger and larger tasks. Open source projects also have a lot of drive by contributors who contribute one or two patches then move on, and even more people who "contribute" one or two grand but unimplemented ideas then move on. If you want to make larger contributions you'll have to show you're in it for the long haul.
That being said, incremental architectural improvements are often welcome, especially if they solve a major bug or performance problem. For example, several years ago one of a handful of patches I contributed to the Cinelerra project was an architectural change to the undo stack that significantly reduced memory consumption and latency for undoable operations.
You're going to find the most success if you're solving a problem you are personally facing, rather than just setting out to "become a contributor to an open source project." When I submitted that patch to Cinelerra, I wasn't trying to contribute an architectural change to a randomly chosen open source project, I was trying to figure out why it took so freaking long to move an in/out point when editing my videos.
You can do this by getting to know those already in that position and demonstrating an interest to join them, which is best accomplished by fixing bugs, finding bugs, and participating in development.