How to join the LimeSurvey project team

From LimeSurvey Manual

Revision as of 08:25, 10 January 2017 by Deusdeorum (talk | contribs)

We need you!

So.. you think LimeSurvey is a great product and you would like to contribute?

Hey, you do not have to necessarily write code! You also could be a tester, translator, supporter or all of it. You are welcome! Or maybe you hacked a little in the source and created a nifty new feature and/or you would like to do future development in this project? We love you!

How to become a LimeSurvey developer/translator/team member?

Common requirements

  • Be a team player, nice & polite.
  • Communicate much and often with the other team members. Show up to the development meetings. Show up in our IRC channel ([1]) to get a glimpse what is going on.
  • Share your thoughts. Don't be single minded. Discuss your ideas with the other team members.
  • Real life comes first - but give us a small notice if and for how long you will be gone.
  • Developers come and go in an open source project - that is absolutely normal. However if you leave the project please give us a notice and tell us how far you are, what you did and if there are things still to do so that someone else can pick up your work.
  • Attend to the developers meeting which take place every Tuesday on 14:30 Berlin time in the channel #limesurvey-team on (ask Carsten Schmitz for the password - see below)

First steps

If you agree to the above points please follow these steps:

  1. Create a personal account on the website here (if you don't have one): [2]
  2. Create a personal account on gitHub here (if you don't have one): [3]
  3. Make sure you subscribe to the limesurvey-developer mailing list at [4]. If you want to get notified of any changes in the development source code then subscribe to the limesurvey-git list too.
  4. If you use a Windows System get the Git client SmartGit (there are others but we recommend this one) to access the source code gitHub. You can download it from [5]
  5. Introduce yourself on the limesurvey-developer mailing list and provide the following information:
    1. A short resume (so we can see what your background is)
    2. Tell us why you would like to work in the LimeSurvey project ('I am bored to death!', 'I like your style...') (:wink:)
    3. Tell us in what area you would like to help (coding, patching, support etc.)
  6. Carsten Schmitz will get back to you as soon as possible. He is a very nice guy and will give you an introduction and will provide more information on the next steps.
  7. Visit the official LimeSurvey IRC Channel and SAY HELLO TO US!

Additional information for new developers

LimeSurvey contains a lot of old and mess code - but by now we strictly pay attention to coding guidelines which are very important.

Coding Guidelines and Generic Code Implementation will help you and any developers working on your code at a later time by easier understanding your code and making it more modular.

To ensure this quality we are mentoring new developers using the following steps:

  1. At first we only assign small tasks to the new developer. What task is assigned will be decided together with the new developer.
  2. The developer sends the code to the mentor for review.
  3. If the mentor is satisfied with the code quality the developer may commit the code to the repository.
  4. Rinse and repeat Step 1 to 3 until the mentor states that the new developer is ready to submit patches freely to the repository.

Additional information for new supporters

Giving support is a specialty since you are interacting with lots of different persons, friendly and not so friendly, strict or sloppy, eager or calm.

Therefore we have a special request to persons who give support in the channel or forums:

  • Don't be caught by support burnout.  It's nearly impossible to answer every technical question that is asked in the forum. In many cases, the problem doesn't lie in the technical aspects of the question; cultural barriers may get in the way of communication, or it may be difficult to explain to a newbie just where to begin. When you try to answer every question, regardless of difficulty, you set yourself up for support burnout.
    Support burnout is nearly always accompanied by the feeling that you're losing control of your time, that the people you've set out to help are making unreasonable demands. The problem is that you're taking on too much responsibility; but it begins to appear instead that the problem is the end user who's asking for help.
    Different people react to support burnout in different ways. Some offer malicious advice, some insist that every question a newbie asks should be answered with a URL or by lists of manual references.
    Such arbitrary rule sets tend to grow longer over time, because they don't solve the real problem. You can't answer every question, and you shouldn't try. Be gentle, be courteous, be flexible and be as patient and helpful as you can - but let someone else try to answer questions that you find too frustrating. Don't try to be a superhuman support machine. Also leave room for user-to-user help. If you support every user and answer every question you do not necessarily boost the community thinking because too much activity takes away any other user motivation to help.