1.3. How to contribute

You can help, there are big tasks and small tasks waiting for you.

Here is a suggestion on how you could become part of the ArgoUML Project. This could be perceived as a ladder to climb but remember that if so it is firstly a ladder of levels of commitment and time spent by you. You get no price for climbing higher, you just get more responsibility in the project.

  1. Use ArgoUML.

  2. Report found bugs.

    There are bugs in ArgoUML. When you use ArgoUML you might encounter them where you least expect it. To help, make sure they are known about i.e. that there exists an issue in Issuezilla describing the problem. You need to be a registered user at Tigris to report bugs but notice that to add further comments to the issue you also need to have gotten a Role in the ArgoUML project.

  3. Subscribe to the users' mailing list.

    Discuss how you use ArgoUML in your project and how you promote ArgoUML in your organization. You can also help other users with their ArgoUML-related problems.

  4. Apply for an Observer role.

    This shows that you are committed to the project and also allows you to comment on issues.

  5. Familiarize yourself with the project and how we work.

    Suggestion on how to go about this:

    1. Read through most of the User manual and install and run the latest version of ArgoUML.

    2. Subscribe to the issues list.

      You will get updates on all issues so you can monitor what we are doing in the project. (It could be a lot of mails. If it turns out you don't like watching issues in this way, you unsubscribe!)

    3. Subscribe to the CVS list.

      You will get updates on all changes that are done to code, documentation, and the web site. (It could be a lot of large mails. If it turns out you don't like watching what is going on in the project in this way you unsubscribe.)

    4. Read the process part of the Developers Cookbook at Chapter 12, Processes for the ArgoUML project.

      This will give you the idea of how the ArgoUML project attempts to release with good quality and especially how we use Issuezilla.

    5. Get the Observer role granted.

    6. From this on you can comment on bugs yourself directly in Issuezilla.

      You can also verify issues according to the verification process (see Section 12.5, “How to verify an Issue that is FIXED”).

      This will help you understand the terminology used in the project and also gives you an idea of the current quality of ArgoUML and what needs to be done in the future.

      This is also a very low-commitment level task that could be completed in a couple of minutes (depending on your choice of issue).

    7. Read the rest of the Developers Cookbook.

      There is a lot of stuff discussed in here that is interesting for your understanding of the project and the code.

    8. Check out the source from CVS and build.

  6. Subscribe to the dev list.

    The purpose of this is to see what the developers are discussing in the project.

    Monitor the discussions and as soon as you see something discussed where you have an opinion, jump right in!

  7. Familiarize yourself with the code.

    For this a good knowledge of Java is more or less a prerequisite.

    Suggestion on how to go about this:

    1. Take active part in the discussions on the dev-list.

    2. Solve issues registered in Issuezilla.

    3. Convince someone to commit your changes.

      Establish a relationship with one developer that has volunteered to help you with the commits. That developer will check that your code reaches the quality level that we strive for in the project and obeys the design.

    4. Repeat.

      This can go on until the developer helping you knows that you have good knowledge of the project quality and design and the main problem for you two is that the sending, waiting, committing, updating et.c. is extra work.

  8. Apply for a Developer role.

    This allows you to do commits on your own and you can now increase the pace in which you are working while also increasing your responsibilities in the project.

    This role is granted by the Project leader after he is convinced that you have learned the enough about the project w.r.t.:

    • Understanding and accepting the goals.

    • Understanding where we are in the development process.

    • Understanding the terminology used in the project.

    • Understanding how we use CVS in the project.

    • Understanding the set of tools (ant, JUnit) and how to use them.

  9. Focus your work in a specific area.

    Everybody has different interests and the best contribution is made when someone is allowed to pursue his own interests. Hopefully ArgoUML provides you with interesting challenges to your taste.

  10. Accept responsibility for a specific area.

    With this you are part of the core team developing ArgoUML.