I'm the main author of a multiplatform free software/open source GUI program. Although the program gets thousands of direct downloads per month, I have no idea of the number of people regularly using it. It is also included in some Unix distributions and download sites making the counting harder. It would be interesting for me to knowHow many people use it? Should I bother continuing development?Which features of the program (dialogs, import filters, etc) do people most use? This would focus development.I'm considering some form of anonymous feedback (with the user opting-in), where the program sends monthly reports of the time since installation (whole months), the number of times each dialog is used, number of files opened, the version number and platform. The user would be asked the first time this is sent and there would be an option to disable it. I think I would only do this after the first week of usage, to exclude one-off users.Is doing this a good and ethical idea? I'm in the EU, so it's possible that data protection laws may apply.
Is it a good idea to collect anonymous usage statistics in a free program?
ethics;usage statistics
Sending Usage DataI have no negative opinion on sending anonymous data of a software's usage. As long as that this is a op-in only feature. With that said, I only enable such features for products from reputable sources. An unknown vendor would not get my usage data.Instead of monitoring your users. Offer them alternative features that gives you the same data but in different forms.Automatic UpdatesAdding automatic updates allows you to monitor how often the software pulls for new downloads. This gives you an idea of how many activate installations there are of your software. Furthermore, users who op-in for updates checking are committed users. They want to stay on the edge of receiving new features.Error ReportingAdd error reporting features to the software. When there is a problem users can submit a report of what happen. Include options for attaching usage logs, and other debug information to fix the error. This helps ensure a quality problem, and gives you an idea of how many users care that a problem is resolved.Feature RequestsAdd a way for users to easily request features from the software. This gives you better feedback at the time the user has the idea, and ensures better engagement with the user.