Subject: [RFC v2] Git User's Survey 2008

From: Jakub Narebski <[email-masked]>
Date: Wed, 20 Aug 2008 03:08:25 +0200

This is second revision (version) of proposed questions 
for Git User's Survey 2008.

First, it was decided that it would be web based survey; I would use
survs.com (new, in beta), unless free version expires or acquires
unbearable restrictions (like no more than 10 questions, no more than
100 replies some survey sites have for non-paid accounts), because it
has some nice features, and allows export of results to CSV format for
further analysis... but I have not checked if the site that was used
for earlier, 2006 and 2007 surveys (http://www.survey.net.nz) doesn't
have those features now (it didn't have when 2007 survey was run).

Note that new features like "matrix" questions and ability to have
'other' selection for single choice and multiple choice questions
affect a bit form of this survey.

Second, what questions should be put in the survey, and in the case of
single choice and multiple choice questions what possible answers
should be?  I'd rather avoid free-form questions, even if they are
more interesting, as they are PITA to analyze and summarize,
especially to create some kind of histogram from free-form replies
data (some of 2007 free-form responses are not fully summarized even
now).  Below there are proposals for questions for this year survey.
Please comment on them.

By the way, should the survey be divided in pages, or simply use
headers to divide survey into sections?

Third, where to send survey to / where to publish information about the 
survey?  Last year the announcement was send to git mailing list, to
LKML (Linux kernel mailing list), and mailing list for git projects 
found on GitProjects page on GIT wiki.  Now that the number of projects 
using Git as version control system has grown, I don't think it would 
be good idea to "spam" all those mailing list; and if we don't send 
notice to all other projects I'm not sure if we should include LKML.

Last year survey announcement was put on Git Homepage (thanks Pasky), 
and on front page of Git Wiki; info about survey was also put on two 
git hosting sites: kernel.org and repo.or.cz.  It would be nice if it 
was possible to put announcement about Git User's Survey 2008 at front 
pages of other Git hosting sites, like GitHub (one of most popular, I 
think), Gitorious, Freedesktop.org.  If you know some other popular Git 
hosting sites, and even better if you know who to contact about putting 
survey announcement, please write.  Is there some channel that I have 
forgot about?  Should info/announcement about Git User's Survey 2008 be 
sent also to one of on-line magazines like LinuxToday or LWN, or asked 
to put on some blog?  I'll add it as journal entry for #git on Ohloh, 
and try to make it so it would appear in "News" section for Ohloh 
project page for Git: http://www.ohloh.net/projects/git.

Survs.com has nice feature of "channels", which allow to count
responses sent via different means separately; I am using it to
publish URL for 'test' channel - answers from this channel won't be
counted AT ALL!!!

Fourth, how long should the survey last?  When sending announcement we 
should say where notice about Git User's Survey 2008 should be taken 
down.  Last year the survey was meant to take three weeks, but was up 
longer.  I'm thinking about having it last a month, or a month and a
half, starting from September 1.

Below there is second version of announcement email (I should probably
come up also with boilerplate announcement for web pages), and second
version of this year round of questions.  Comments are prefixed by
'+', and would not necessary be included in the survey text.

Questions which were reworked are included in square brackets '[...]',
while old version of answers or comments are prefixed with '!'.

BTW should this survey be divided into pages or not (if it will be
on Survs.com, as it is now)?

----
Hi all,

We would like to ask you a few questions about your use of the Git
version control system. This survey is mainly to understand who is
using Git, how and why.

The results will be published to the Git wiki and discussed on the git
mailing list.

We'll close the survey in <duration> starting from today, <date>.

Please devote a few minutes of your time to fill this simple
questionnaire, it will help a lot the git community to understand your
needs, what you like of git, and of course what you don't like  of it.

The survey can be found here:
  http://www.survs.com/survey?id=M3PIVU72&channel=9XYYGHJ77G

(this is temporary channel URL; responses to this URL would
be, I guess, discarded).
----
About you

   xx. What country are you in?
       (free form; it would be nice to have pre-filled pull-down
        menu, i.e. select form.  Survs.com doesn't support it, yet)
   xx. How old are you (in years)?
       (free form, integer)
   xx. Which programming languages you are proficient with?
       (zero or more: multiple choice)
     - C, shell, Perl, Python, Tcl/Tk, C++, C#, Java, PHP,
       Ruby, Emacs Lisp, Common Lisp or Scheme, Visual Basic,
       Delphi, Assembly, other (please specify), I am not programmer
     ! C, shell, Perl, Python, Tcl/Tk
     + First version included only programming languages used
       by git, and some from contrib area

Getting started with GIT

   xx. How did you hear about Git?
       (single choice?, in 2007 it was free-form)
     - Linux kernel news (LKML, LWN, KernelTrap, KernelTraffic,...),
       news site or magazine, blog entry, some project uses it,
       presentation or seminar (real life, not on-line), SCM research,
       IRC, mailing list, told by friend, word of mouth (off-line),
       other Internet, must be used at job, other off-line, other(*)
     + the problem is with having not very long list (not too many
       choices), but spanning all possibilities.
     + is this question interesting/important to have in survey?
   xx. Did you find GIT easy to learn?
     - very easy/easy/reasonably/hard/very hard
   xx. What helped you most in learning to use it?
       (free form question)
   xx. What did you find hardest in learning Git?
       What did you find hardest in using Git?
       (free form question)
   xx. Which Git version(s) are you using?
       (zero or more, multiple choice:
        one can use different versions on different machines)
     - pre 1.3, 1.3, 1.4, 1.5, 1.6, master, next
     + might be important when checking "what did you find hardest" etc.
     + perhaps we should ask in addition to this question, or in place
       of this question (replacing it) what git version one uses; it
       should be multiple choice, and allow 'master', 'next', 'pu',
       'dirty (with own modifications)' versions in addition.
   xx. How long do you use Git?
     - never/less than month/1-3 months/3-6 months/6-12 months/
       1-2 year/more than 2 years/from the beginning
     ! never/few days/few weeks/month/few months/year/few years/
       from beginning/I wrote it(*)
     + (*) just kidding ;-)
   xx. Does git.git repository include code produced by you?
     - yes/no

Other SCMs (shortened compared with 2007 survey)

   xx. What other SCM did or do you use?
     ! (zero or more: multiple choice)
       (matrix with the following columns: never/used it/still use)
     - SCCS, RCS, CVS, Subversion, Arch or clone (ArX, tla, ...),
       Bazaar-NG, Darcs, Mercurial, Monotone, SVK, AccuRev, Perforce,
       BitKeeper, ClearCase, MS Visual Source Safe, MS Visual Studio
       Team System, PVCS, custom, other (please specify)
   xx. Why did you choose/use Git? (if you use Git)
       What do you like about using Git?
       (free form, not to be tabulated)
   xx. Why did you choose/use other SCMs? (if you use other SCMs)
       What do you like about using other SCMs?
       Note: please write name of SCMs you are talking about.
       (free form, not to be tabulated).
   xx. Do you miss features in git that you know from other SCMs?
       If yes, what features are these (and from which SCM)?
       (free form, not to be tabulated).
     + suggested by Stephan Beyer

How you use Git

  [xx. Do you use Git for work, unpaid projects, or both?
       (single choice)
     - work/unpaid projects/both]
   xx. I use Git for (check all that apply):
     - work projects, unpaid projects, proprietary code development,
       OSS development, private (unpublished) development, personal data,
       documents, website or web app, sharing data, backup, 
       wiki/blog backend, frontend to other SCM (git-svn, git-p4),
       other (if interesting)
     + Answers above are not orthogonal, neither exclusive.
       More than one answer can apply even for single repository.
   xx. How do you obtain Git?
     - binary package/source package or source script(*)/
       source tarball/pull from main repository
       (*) this includes source based distributions like Gentoo
     + added new option: source package or source script
     + should this be multiple choice?
   xx. What operating system do you use Git on?
       (one or more: multiple choice, as one can use more than one OS)
     - Linux, FreeBSD, OpenBSD, NetBSD, MacOS X (Darwin),
       UnixWare, SCO SV, SunOS, Solaris, AIX, IRIX, HP-UX, Other Unix,
       MS Window/Cygwin, MS Windows/msysGit (MINGW), MS Windows/unknown,
       Other (please specify).
     ! Linux, *BSD (FreeBSD, OpenBSD, etc.), MS Windows/Cygwin,
       MS Windows/msysGit, MacOS X, other UNIX, other
     + I have added here all the operating systems explicitly
       specified in "guessing configuration" part of Makefile
     + You can use 'uname' to get the name of operating system on Unices.
   xx. What hardware platforms do you use GIT on?
       (one or more: multiple choice, as one can use more than one machine)
     - 32bit, 64bit, handheld/portable, other (please specify)
     + It is much simplified compared to previous version, and it is
       not a free-form question.  Still not sure if even in such
       simplified form this question is to stay, or should it be removed.
   xx. What editor, IDE or RAD you use working with GIT?
       (zero/one or more: multiple choice with 'other')
     - Eclipse, NetBeans, IntelliJ IDEA, Visual Studio, KDevelop, Anjuta,
       XCode, PIDA, Eric, Dreamweaver, Emacs, Vim, TextMate, Notepad++,
       other (please specify)
     + What choices should be in the list of editors and IDE;
       or should perhaps this question be free-form?
   xx. Which porcelains / interfaces / implementations do you use?
       (zero or more: multiple choice)
     - core-git, Cogito (deprecated), StGIT, Guilt, pg (deprecated),
       TopGit, Pyrite, Easy Git, IsiSetup, jgit, my own scripts,
       other (please specify)
   xx. Which git GUI (commit tool or history viewer, or both) do you use
       (zero or more: multiple choice)
     - CLI, gitk, git-gui, qgit, gitview, giggle, tig, instaweb,
       (h)gct, qct, KGit, git-cola / ugit, GitNub, Pyrite, git.el,
       other (please specify)
   xx. Which (main) git web interface do you use for your projects?
       (zero or more: multiple choice)
     - gitweb, cgit, wit (Ruby), git-php, viewgit (PHP), Gitorious,
       other (please specify)
   xx. Which git hosting site do you use for your projects?
       (zero or more: multiple choice)
     - repo.or.cz, GitHub, Gitorious, kernel.org, freedesktop.org,
       Savannah, Assembla, Unfuddle, Alioth, Fedora Hosted, other
     + of course "if other, which"
     + should some other web hosting sites be included as well?
   xx. How do you publish/propagate your changes?
       (zero or more: multiple choice)
     - push, pull request, format-patch + email, bundle,
       git-svn, foreign SCM (not via git-svn),
       other (see also below)
   xx. If the way you publish your changes is not mentioned above, how
       do you publish your changes?  Please explain.
       (free form, either input field or textarea)
   xx. How often do you use the following forms of git commands or extra
       git tools?
       (matrix form: never/rare/often)
        . git add -i / -p
	. git add -u
        . git am
        . git am -i
	. git apply
        . git archive
        . git bisect
	. git bisect run <cmd>
	. git bisect replay <logfile>
	. git annotate
        . git gui blame
	. git blame
	. git blame -L <start>,<end>
	. git blame -S <revs-file>
        . git bundle
	. git cherry
        . git cherry-pick
        . git cherry-pick -n
        . git citool
        . git clean
        . git commit
        . git commit -a
        . git commit <file>...
	. git commit -i <file>...
	. git commit --amend
	. git count-objects
	. git cvsexportcommit
	. git cvsserver
	. git ... --dirstat
        . git fetch <options>
	. git filter-branch
	. git format-patch
	. git fsck
        . git grep
	. git imap-send
	. git instaweb
        . git log --grep/--author/...
	. git log -S<string>
	. git log --graph
        . git merge
        . git merge with strategy
        . git merge --squash
	. git mergetool
        . git pull
	. git pull <remote>
	. git pull <URL> <ref>
        . git push
	. git relink
        . git rebase
        . git rebase -i
	. git rebase --onto
	. git remote add <name> <URL>
	. git remote show <name>
	. git remote prune <name>
	. git remote update
	. git request-pull
        . git reset --soft
	. git reset [--mixed]
	. git reset --hard
	. git revert
	. git send-email
	. git show-branch
	. git shortlog
	. git shortlog -s
	. git stash
	. git submodule
	. git svn
	. git tag
	. git tag -a/-s
	. git tag -v
	. git whatchanged
        . git gui
	. gitk
	. gitprompt
     + (*)rarely is to mean: a few times, or sometimes (from time to time)
     + the list does not include commands which you _have_ to use,
       like "git add <file>", "git init"/"git clone" etc. 
     + in what order should be those commands; currently they are in
       alphabetical order?
   xx. Which of the following features do you use?
       (zero or more: multiple choice)
     - git-gui or other commit tool, gitk or other history viewer, patch
       management interface (e.g. StGIT), bundle, eol conversion (crlf),
       gitattributes, submodules, separate worktree, reflog, stash,
       shallow clone, detaching HEAD, mergetool, interactive rebase,
       add --interactive or other partial commit helper, commit
       templates, bisect, working with dirty tree, integration with
       IDE/editor, other (not mentioned here)
     + should probably be sorted in some resemblance of order
     + are there any new features which should be listed here?
   xx. Which features do you find unique and useful ones, compared
       to other systems (other SCMs)?
       (zero or more: multiple choice)
     - [same set as in above question, or almost the same set]
   xx. If you use some important Git features not mentioned above,
       what are those?
       (free form, textarea)

What you think of Git

   xx. Overall, how happy are you with Git?
       (single choice)
     - unhappy/not so happy/happy/very happy/completely ecstatic
   xx. How does Git compare to other SCM tools you have used?
       (single choice)
     - worse/equal (or comparable)/better
   xx. What would you most like to see improved about Git?
       (features, bugs, plug-ins, documentation, ...)
   xx. What tools would you like to see Git support in?
       (free form)

Changes in Git (since year ago, or since you started using it)

   xx. Did you participate in previous Git User's Surveys?
       (zero or more, multiple choice)
     - 2006, 2007
   xx. How do you compare current version with version from year ago?
     - current version is: better/worse/no changes/cannot say

Documentation

   xx. Do you use the Git wiki?
    -  yes/no
   xx. Do you find Git wiki useful?
    -  yes/no/somewhat
   xx. Do you contribute to Git wiki?
    -  yes/no/only corrections or spam removal
   xx. Do you find Git's on-line help (homepage, documentation) useful?
    -  yes/no/somewhat
   xx. Do you find help distributed with Git useful
       (manpages, manual, tutorial, HOWTO, release notes)?
    -  yes/no/somewhat
   xx. What could be improved on the Git homepage?
       (free form)
   xx. What could be improved in Git documentation?
       (free form)

Translating Git

   xx. What is your preferred non-programming language?
  (or) What is the language you want computer communicate with you?
   xx. What do you need/want to have translated?
       (zero or more, multiple choice)
     - commands messages, manpages, manual & tutorial etc.,
       technical documentation, HOWTOs, git homepage, git wiki,
       git-gui/gitk, subcommands and long option names

Getting help, staying in touch

   xx. Have you tried to get Git help from other people?
    -  yes/no
   xx. What channel did you use to request help?
       (zero or more: multiple choice)
    -  git mailing list, git users group, IRC, blog post, 
       asking git guru/colleague, other
    +  This is one question which doesn't need, I think, explanation
       of "other" choice
   xx. If yes, did you get these problems resolved quickly
       and to your liking?
    -  yes/no
   xx. Would commercial (paid) support from a support vendor
       be of interest to you/your organization?
    -  yes/no/not applicable
   xx. Do you think it is easy to find out how to do a specific task
       with git?
    -  yes/no/not always
   xx. Do you read the mailing list?
       (multiple choice: zero or more; "none" is just in case)
    -  none/[email-masked]/Git For Human Beings/msysGit
   xx. If yes, do you find it useful?
    -  yes/no/somewhat (optional)
  [xx. Do you find traffic levels on Git mailing list OK.
    -  yes/no? (optional)]
   xx. Do you find the mailing list traffic level to be:
    -  too low/OK/just right/tolerable/intolerable/
       a bit high/absurdly high/I don't read it
   xx. Do you use the IRC channel (#git on irc.freenode.net)?
    -  yes/no
   xx. If yes, do you find IRC channel useful?
    -  yes/no/somewhat (optional)
   xx. Did you have problems getting GIT help on mailing list or
       on IRC channel? What were it? What could be improved?
       (free form)

Open forum

   xx. What other comments or suggestions do you have that are not
       covered by the questions above?
       (free form)
   xx. Should such a survey be repeated next year?
    -  yes/no/no opinion

-- 
Jakub Narebski
Poland