收集有关应用程序使用情况的数据的最佳方法是什么?

时间:2020-03-06 14:49:27  来源:igfitidea点击:

我公司发布了一款小型软件产品,最近我一直在接管开发方面的工作。这是一个CWindows Forms应用程序。

我注意到的一件事是,有关软件使用方式的许多信息都是通过我的上司过滤的,我感到我在某些消息中缺少重要的细节。

我意识到我必须在这种情况下处理管理问题,但是为了对问题提出另一种看法,我一直在考虑技术解决方案。也许类似于" Microsoft客户体验改善计划"。

我想知道是否有人在监视和报告应用程序中的用户行为方面有经验或者建议?

解决方案

我建议我们让应用程序将其"使用信息"写到某个地方,然后在用户许可下,每隔一段时间以电子方式传输它。

请注意上面的重点。根据我们所在的管辖区,我们可能会在未经许可的情况下陷入严重麻烦,无法从他人的计算机传输任何类型的数据。

在以下情况下,我们更有可能获得许可:

1 /我们明确表示,在安装或者更新时,程序将收集信息并仅在获得许可的情况下进行传输。

2 /我们清楚地解释了信息是什么,它仅包含"使用信息",没有可以追溯到软件用户的信息(没有序列号等)。

3 /我们请求允许不频繁传输。如果我有一个讨厌的程序每天问我,我将很快完全停止使用它。

我相信我们已经对技术解决方案的隐私方面的问题收到了很好的答案。

我还要提及的是,我们应该尝试通过普通的80/443端口使用HTTP或者HTTPS,这些端口最不可能引起防火墙和代理问题。使用MS IE代理设置,因为它们通常是正确设置的。

从完全不同的角度来看,我想说的是,了解软件使用情况的最佳方法是检查安装群中是否有"友好"用户并进行采访。
可能是一些合作伙伴公司,或者是我们作为新发行版Beta的"试点组"的人。跟他们说。抓住经理,如果可能的话,花一天时间浏览他们的网站,然后亲自看看他们如何然后单击按钮。做笔记。听取反馈。建立个人关系,以便下次他们直接与我们交谈。

如果应用程序很小,而公司不是Microsoft,那么与用户群保持联系要比收集匿名使用数据好得多,这需要花费大量的精力进行收集和处理,然后还要付出更多的努力来理解。

一种想法是在用户许可下发送匿名统计信息。

另一个想法是在应用程序中提供一个大的报告错误/询问问题按钮,以便他们可以告诉我们何时他们认为不对劲,我们会在报告中发送应用程序状态。

始终清楚要发送的内容,并让用户可以选择非匿名(始终将匿名数据设置为默认值),当通过选择用户获得大量非匿名数据时,我们可能会感到惊讶。

并且要通过使用用户的语言来明确表示,切勿说"我将发送应用程序堆栈和堆当前状态的Blowfish加密内存转储。是/否?"之类的内容,而不会说"发送程序活动列表:单击的按钮以及打开的文件的类型和数量。这将有助于我们为我们创建更好的程序,但我们可以选择希望我们接收的内容。"

免责声明:我是该产品的开发人员,所以我可能对它的出色之处有些偏颇:)

当前市场上有一种产品可以为我们称为.NET和Java应用程序的运行时智能提供此功能。有关详细信息,请参见:http://www.preemptive.com/runtime-intelligence-services.html。

目前,该产品同时适用于.NET和Java,并且Visual Studio 2010中将包含提供有限功能集的免费版本。

可以跟踪应用程序的使用情况,包括高级统计信息,执行次数,哪个操作系统/框架版本,以及单个功能的使用频率。

我们为我们提供了一种在使用情况数据传输中为用户提供选择加入还是选择退出的方式,并且该数据通过SSL(默认)或者标准HTTP发送。对应用程序的性能影响是最小的,我们非常注意不要影响我们代码的响应能力。

该解决方案非常适合评估或者Beta测试,因为我们可以直接跟踪应用程序的使用情况,而不必依靠调查或者猜测用户的行为。

对于已发布的应用程序,这提供了客户体验改善计划的基础,从高层管理人员到开发人员,对累积数据的可见性对每个人都是有价值的。

我们发现,只需花费不到一个小时的时间就可以为基本使用情况报告建立应用程序,而无需更改代码,因为我们可以直接在程序集二进制文件上工作。

有关定价信息或者要获得评估,请联系我们的网站上的销售人员,因为我只是开发人员:)

有关详细的技术信息或者任何其他问题,请随时与我联系。

实际上,我认为我们正在尝试做简单的商业智能。

不要忘记设置"适当的"仪表盘以跟踪我们收集的数据,请仔细考虑将要实施的指标。