Well, it depends also on the form's structure. If you e.g. have a checkbox for some question, which other questions are dependent of, you might want to have users to automatically skip some of the questions when the user doesn't tick the checkbox.
As an example:
Question 1: "I want to have a sandwich with my coffee"
--> Question 2: "Which fillings you'd want?"
--> Question 3: "Do you have any allergies?"
----> Question 4: "Which allergies?"
Now if the user chooses not to tick the checkbox on Q1, the user won't have to answer the question 2-4. Although you could feel this generates additional questions from "Do you/Don't you?" --> "Which/What?", it's still way faster to finish a form which has only checkboxes than multiselect/free-form text fields.
This functionality is called cascading. You'll get a good overview of the subject, and multiple existing answers, by browsing the tag cascading.
Additional things for you to consider:
- Do users input texts with only a few variations?
- -> Use dropdown-box/radio-button checklist, or use managed metadata field which offers suggestions for input
- Do users input user names from your domain?
- -> Populate the users straight from AD by using People-field instead of manually writing