01
写在前面
在软件开发领域有这样一种说法:在开发完成的功能中,真正能够发挥作用被相对频繁使用的功能不到20%。
也就是说一个软件产品的功能大部分是闲置的,虽然在开发的时候各方都深度进行了参与设计与实现。
结论确实很扎心,并且这个结论是统计的结果,数据不会骗人,现实就是这么残酷,所以所有开发者应该怀着平常心来看待你一手开发出的你自认为很强大的功能。
那么,如何跟踪功能的使用情况做到心中有数呢,这里介绍一种VBA实现的方法。
02
准备工作
以笔者开发的一款流量跟踪与数据分析工具为例。之所以介绍一种VBA实现方法,原因是这个工具也是VBA实现的,你懂的。
工具的大概功能如下:
从Ribbon菜单可以看出,该工具的功能还是很强大的,基本具备一整套流量跟踪与数据分析的多维度实现方式,那么,对于使用者来说,到底这些功能有没有真正发挥作用?对业务起没起到赋能的作用?不必猜测,让数据说话就好。
03
设计要点
最直接的方案是将对功能菜单的每次点击进行记录,默认为点击一次就是使用一次,逻辑上虽然有点粗糙,但是统计结果应该能够反映实际情况。
既然要把行为记录下来,设计的维度不妨丰富一些,比如记下使用用户,来源IP,功能菜单名,操作时间,操作者电脑主机名,用户名,软件版本号等等。
mysql数据库表结构如下:
04
实现要点
从设计方案看,需要实现的方法主要有获取计算机名、获取用户名、获取IP地址(内网)、数据库插入操作等。
主方法如下:
获取内网ip:
数据库的操作之前笔者专门有总结文章,可点击如下链接查看详情:
将菜单名称作为主方法的参数传入,并在每个点击菜单的事件之前先执行该函数,则操作就会被记录到数据库中,原始数据有了之后,可以根据需要进行统计分析功能菜单使用情况。
05
写在最后
部分统计结果的片段如下,从中可以大概看出,其实用户使用的功能就那几个,其它的几乎没有用过,可见,虽然你给的是一把瑞士军刀,但实际上大部分的刀用户根本没打开过,但是话又说回来,如果用户想用的时候首先想到的会是瑞士军刀,你也同意我这么说吧?!