Der gläserne Software Anwender.
Gläsern. Ein unschönes Wort. Keiner will es sein. Auch nicht Du. Wir Menschen werden ungern beobachtet; sind misstrauisch. Fangen dann gleich an den Kopf einzuschalten. Und denken uns das Wildeste. Das Größte. Was wollen die mit meinen Daten? Kann es negative Auswirkungen haben? Auf uns. Auf mich. Auf meine Karriere.
Nein. Soweit muss es ja erst gar nicht kommen. Das Protokollieren der Tätigkeiten bei der Anwendung einer Software kann auch wirklich in einem anderen Licht dargestellt. Ja. In eine positive Betrachtung gerückt werden.
Nutzen aus Sicht des Software Unternehmens
Wenn die vom Anwender der Software getätigten Aktionen überwacht werden, ist es möglich zu erkennen welche Bereiche der Software mehr und welche weniger genutzt werden.
Mit diesen Informationen kann die Wichtigkeit sowie auch die Dringlichkeit von Erweiterungen oder Korrekturen besser eingeschätzt werden. In Verbindung mit der Kategorisierung der Kunden des Software Unternehmens ergeben sich hier besonders spannende Ansätze.
Nutzen auch aus Sicht des Anwenders
Die transparente Protokollierung ermöglicht einen besseren Kundenservice. Schon sobald der Software Anwender sich an den Software Hersteller wendet, ist allen an der Kommunikation beteiligten Personen bekannt in welcher Form die Software angewendet wird. Und so kann eine reibungslose Kommunikation geschehen.
Ressourcen schonend miteinander kommunizieren. Die Gespräche werden zielführender, kürzer – und somit für alle Beteiligten günstiger – und beanspruchen nur wenige Teile des Nervengerüsts des Menschen.
Umsetzung
Hier eine einfache Realisierung in Java. Überwacht werden die Schalter auf der dem Anwender anzeigten Oberfläche. Die umgebene Struktur werde ich in einem weiteren Beitrag zum Thema Software Architektur erläutern. Hier ist jetzt nur der Kern der Überwachung eines Schalters mit dem Hinzufügen eines Listeners dargelegt.
boolean addListener = true;
for (ActionListener listener : button.getActionListeners()) {
if (listener instanceof UISystemPanelButtonActionAdapter) {
addListener = false;
}
}
if (addListener) {
button.addActionListener(new UISystemPanelButtonActionAdapter());
}
Der Listener beinhaltet die actionPerformed Methode. Diese wird nun ausgeführt, wenn der Schalter vom Anwender betätigt wird. Es erfolgt die Ermittelung des Hilfetextes des Schalters, sowie der aktuellen Datum/Zeitangabe und der im System angemeldete Benutzername. Diese 3 Angaben werden in eine einfache CSV Datei geschrieben.
public class UISystemPanelButtonActionAdapter implements java.awt.event.ActionListener {
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
String toolTipText = button.getToolTipText();
String date = new SimpleDateFormat().format(new Date());
String user = System.getProperty("user.name").toLowerCase();
writeToFile(new StringBuffer().append(date).append(";").append(user).append(";").append(toolTipText).toString());
}
private void writeToFile(String content) {
try {
File file = new File("./log/buttons/v1.csv");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.write('\n');
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Diese CSV Datei kann komfortabel mit Microsoft Excel geöffnet werden. Und auf verschiedene Art und Weise an den Software Hersteller übertragen werden. Manuell durch die Anwender der Software oder automatisch mittels E-Mail oder FTP.
Risiken beachten
Die in die Überwachung einfließenden Inhalte müssen mit den Anwender bzw. deren Verantwortlichen abgesegnet werden.
Die im Beispiel enthaltende Angabe des Benutzernamens kann ggf. gegen die Richtlinien des Unternehmens verstoßen. Und somit zu einer Menge Tumult führen. Das muss nun wirklich nicht sein.
Tipp
Kommunizieren Sie als Software Hersteller den Nutzen der Protokollierung und gehen besonders auf die Schonung des Nervengerüsts aller an der Kommunikation beteiligten Personen ein.
Bei besonders betriebswirtschaftlich denkenden Kunden gehen Sie auf die Möglichkeiten der Senkung von Kosten ein. So kann sehr einfach eine Win Win Situation für alle Beteiligten erzielt werden.